How to Code Snake game Using Python, Tkinter with the help of ChatGPT.
Source Code Here
import tkinter as tk
import random
WIDTH = 400
HEIGHT = 400
SQUARE_SIZE = 20
class SnakeGame:
def __init__(self):
self.root = tk.Tk()
self.root.title(“Snake Game”)
self.canvas = tk.Canvas(self.root, width=WIDTH, height=HEIGHT)
self.canvas.pack()
self.snake = [(100, 100)]
self.food = self.generate_food()
self.direction = “Right”
self.root.bind(“<Key>”, self.change_direction)
self.update()
def generate_food(self):
x = random.randint(0, (WIDTH – SQUARE_SIZE) // SQUARE_SIZE) * SQUARE_SIZE
y = random.randint(0, (HEIGHT – SQUARE_SIZE) // SQUARE_SIZE) * SQUARE_SIZE
return x, y
def change_direction(self, event):
if event.keysym in [“Up”, “Down”, “Left”, “Right”]:
self.direction = event.keysym
def move_snake(self):
x, y = self.snake[0]
if self.direction == “Up”:
y -= SQUARE_SIZE
elif self.direction == “Down”:
y += SQUARE_SIZE
elif self.direction == “Left”:
x -= SQUARE_SIZE
elif self.direction == “Right”:
x += SQUARE_SIZE
self.snake.insert(0, (x, y))
if self.snake[0] == self.food:
self.food = self.generate_food()
else:
self.snake.pop()
def check_collision(self):
x, y = self.snake[0]
if x < 0 or x >= WIDTH or y < 0 or y >= HEIGHT or self.snake[0] in self.snake[1:]:
return True
return False
def update(self):
self.move_snake()
if self.check_collision():
self.canvas.create_text(WIDTH // 2, HEIGHT // 2, text=”Game Over”, font=(“Arial”, 20))
return
self.canvas.delete(“all”)
self.canvas.create_rectangle(*self.food, self.food[0] + SQUARE_SIZE, self.food[1] + SQUARE_SIZE, fill=”red”)
for x, y in self.snake:
self.canvas.create_rectangle(x, y, x + SQUARE_SIZE, y + SQUARE_SIZE, fill=”green”)
self.root.after(100, self.update)
def run(self):
self.root.mainloop()
if __name__ == “__main__”:
game = SnakeGame()
game.run()