用Python设计一个走迷宫游戏
时间: 2023-11-19 15:04:38 浏览: 169
python迷宫小游戏
5星 · 资源好评率100%
好的,下面是一个简单的走迷宫游戏的Python代码示例:
```python
import random
# 定义迷宫地图
maze = [
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#'],
['#', '.', '.', '.', '#', '.', '.', '.', '.', '#'],
['#', '.', '#', '.', '#', '.', '#', '#', '.', '#'],
['#', '.', '#', '.', '0', '.', '.', '.', '.', '#'],
['#', '.', '#', '#', '#', '#', '#', '#', '.', '#'],
['#', '.', '.', '.', '.', '.', '.', '#', '.', '#'],
['#', '#', '#', '#', '#', '#', '#', '#', '#', '#']
]
# 定义方向常量
UP = 0
DOWN = 1
LEFT = 2
RIGHT = 3
# 定义方向对应的坐标变化
directions = {
UP: (-1, 0),
DOWN: (1, 0),
LEFT: (0, -1),
RIGHT: (0, 1)
}
# 获取起点和终点坐标
def get_start_and_end(maze):
start = None
end = None
for i in range(len(maze)):
for j in range(len(maze[i])):
if maze[i][j] == '0':
start = (i, j)
elif maze[i][j] == '.':
end = (i, j)
return start, end
# 判断某个坐标是否合法
def is_valid_coordinate(maze, x, y):
if x < 0 or x >= len(maze) or y < 0 or y >= len(maze[x]):
return False
if maze[x][y] == '#':
return False
return True
# 获取当前可行的方向
def get_valid_directions(maze, x, y):
valid_directions = []
for direction in directions:
dx, dy = directions[direction]
if is_valid_coordinate(maze, x + dx, y + dy):
valid_directions.append(direction)
return valid_directions
# 随机选择一个方向
def get_random_direction(maze, x, y):
valid_directions = get_valid_directions(maze, x, y)
if len(valid_directions) > 0:
return random.choice(valid_directions)
else:
return None
# 移动到下一个坐标
def move_to(maze, x, y, direction):
dx, dy = directions[direction]
return x + dx, y + dy
# 主函数
def main():
start, end = get_start_and_end(maze)
x, y = start
while True:
direction = get_random_direction(maze, x, y)
if direction is not None:
x, y = move_to(maze, x, y, direction)
maze[x][y] = 'x' # 标记已经走过的路径
if (x, y) == end:
print('恭喜你,已经走出迷宫!')
break
# 运行主函数
if __name__ == '__main__':
main()
```
运行后,代码会自动从起点开始随机走迷宫,直到走到终点为止。其中,`#` 表示墙壁,`.` 表示可行走的路径,`0` 表示起点,`x` 表示已经走过的路径。
阅读全文