def main(): tk = Tk() tk.title('Snake') tk.resizable(0, 0) tk.wm_attributes('-topmost', 1) manager = GameManager() settings = GameSettings() canvas = Canvas(tk, width=settings.width, height=settings.height, bd=0, highlightthickness=0, background='black') canvas.pack() textLabel = Label( tk, text='Press ENTER to begin.\nPress ESCAPE at anytime to exit.') textLabel.pack() tk.update() canvas.bind_all("<Return>", manager.startGame) canvas.bind_all("<space>", manager.pauseGame) canvas.bind_all("<Escape>", manager.closeGame) while manager.gameRunning: while manager.inStartMenu: if not manager.gameRunning: break tk.update_idletasks() tk.update() sleep(settings.gameSpeed) canvas.delete("all") food = Food(canvas, settings) manager.foodPlaced = False snake = Snake(canvas, settings) textID = canvas.create_text( settings.width - 45, 20, text=f'Segments: {str(len(snake.segments))}', fill='yellow') while not manager.inStartMenu: if not manager.gameRunning: break elif manager.gameOver: manager.inStartMenu == True elif not manager.gamePaused: textLabel.configure(text='Press SPACE to pause game!') gameLoop(tk, canvas, manager, settings, snake, food) canvas.itemconfig(textID, text=f'Segments: {str(len(snake.segments))}') else: textLabel.configure(text='GAME PAUSED!') tk.update_idletasks() tk.update() sleep(settings.gameSpeed) textLabel.configure( text='GAME OVER!\nPress ENTER to start a new game!') tk.destroy()