import tkinter as tkdef create_maze(root, canvas, maze): for i in range(10): for j in range(10): if maze[j][i] == 1: canvas.create_rectangle(i60, j60, (i+1)*60, (j+1)*60, fill="black")def move_player(event, canvas, player, player_pos, maze): x, y = player_pos if event.char == "w" and y > 0 and maze[y-1][x] == 0: canvas.move(player, 0, -60) player_pos[1] -= 1 elif event.char == "s" and y < 9 and maze[y+1][x] == 0: canvas.move(player, 0, 60) player_pos[1] += 1 elif event.char == "a" and x > 0 and maze[y][x-1] == 0: canvas.move(player, -60, 0) player_pos[0] -= 1 elif event.char == "d" and x < 9 and maze[y][x+1] == 0: canvas.move(player, 60, 0) player_pos[0] += 1 # Check if player reached the goal if player_pos == [9, 9]: canvas.create_text(300, 300, text="You Win!", font=("Arial", 50), fill="blue")def create_game(): root = tk.Tk() canvas = tk.Canvas(root, width=600, height=600) canvas.pack() maze = [ [0, 0, 1, 0, 1, 0, 1, 0, 0, 0], [1, 0, 1, 0, 1, 0, 1, 0, 1, 0], [1, 0, 0, 0, 0, 0, 0, 0, 1, 1], [1, 1, 0, 1, 1, 1, 0, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 1, 1, 0, 1, 1, 0], [1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [1, 1, 0, 1, 0, 1, 1, 1, 1, 1], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [1, 1, 0, 1, 1, 0, 0, 0, 0, 0], ] create_maze(root, canvas, maze) player = canvas.create_rectangle(0, 0, 60, 60, fill="green") goal = canvas.create_rectangle(540, 540, 600, 600, fill="red") player_pos = [0, 0] root.bind("", lambda event: move_player(event, canvas, player, player_pos, maze)) root.mainloop()create_game()
这段代码是一个使用Python的tkinter库创建迷宫游戏的程序。程序中定义了一个名为create_maze的函数,用于在画布上绘制迷宫和玩家。同时还定义了一个名为move_player的函数,用于控制玩家在画布上的移动。在主函数create_game中,首先创建了一个窗口和画布,并设置了画布的大小为600x600像素。然后定义了一个10x10的二维数组maze,用于表示迷宫的结构。接着调用create_maze函数,在画布上绘制出迷宫和玩家。最后通过绑定键盘事件,实现玩家的移动和判断是否到达终点的功能。如果玩家到达终点,会在画布上显示“You Win!”的字样。