1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python实现迷宫小游戏(附源码 简单易懂)

python实现迷宫小游戏(附源码 简单易懂)

时间:2021-08-28 05:22:07

相关推荐

python实现迷宫小游戏(附源码 简单易懂)

需要源码请点赞关注收藏后评论区留言~~~

接下来用python实现一个控制台的迷宫小游戏 游戏规则如下

输入exit退出游戏

输入8为向上走

输入5为向下走

输入4为向左走

输入6为向右走

游戏地图如下

Y即为玩家,输入对应数字后可以变换位置,当撞墙时位置不变

部分源码如下

import time# 导入时间模块# 模拟迷宫地图的二维列表map_list=[[" ","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@"],["=>","Y"," "," ","@","@"," "," "," "," "," "," ","@"," "," "," ","@","@"," "," "," ","@"," ","@"," ","@"," ","@"," ","@","@"],[" ","@"," "," ","@","@","@"," ","@"," ","@"," ","@","@","@"," "," "," "," ","@"," ","@"," ","@","@","@"," ","@","@","@","@"],[" ","@"," ",""@","@","@"],[" ","@","@","@","@","@"," ","@"," ","@","@"," "," ","@"," ","@","@","@","@","@"," ","@","@"," "," "," "," ","@","@","@","@"],[" ","@"," "," "," ","@"," ","@","@","@","@","@"," ","@"," "," "," ","@","@","@"," ","@"," ","@"," ","@"," "," "," "," ","@"],[" ","@"," ","@"," ","@"," ","@","@"," ","@","@","@"," "," ","@","@"," "," "," "," ","@","@","@"," ","@"," ","@","@","@","@"],[" ","@"," ","@"," "," "," ","@","@"," "," "," ","@","@","@","@","@","@","@","@","@","@","@"," ","@","@","@"," "," "," ","@"],[" ","@"," ","@","@","@","@","@","@"," ","@"," ","@","@","@","@","@"," "," "," "," "," "," "," "," "," "," "," ","@"," ","@"],[" ","@"," "," "," "," "," "," "," "," ","@"," ","@"," "," "," "," "," ","@","@","@","@","@"," ","@","@","@"," ","@"," "," ","=>"],[" ","@"," ","@","@","@","@","@","@","@","@"," ","@","@","@","@","@"," ","@","@","@","@","@"," ","@","@","@"," ","@","@","@"],[" ","@"," "," "," "," "," ","@"," ","@","@"," ","@","@","@","@","@"," ","@","@","@"," "," "," "," "," "," "," ","@","@","@"],[" ","@","@","@","@","@"," ","@"," ","@","@"," ","@"," "," "," "," "," "," ","@","@","@","@","@","@","@","@"," ","@"," ","@"],[" ","@"," "," "," "," "," ","@"," ","@","@"," ","@","@"," ","@","@","@"," "," "," "," "," "," "," "," ","@"," "," "," ","@"],[" ","@"," ","@"," ","@","@","@"," "," "," "," "," "," "," ","@","@","@","@","@","@"," ","@","@","@","@","@","@","@"," ","@"],[" ","@"," "," "," "," "," "," "," ","@","@"," ","@","@"," "," "," "," "," "," ","@"," "," "," "," "," "," "," "," "," ","@"],[" ","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@","@"]]# 更新地图def up_map():# 打印小标题并指定打印区域的文字以及背景颜色print("\033[1;30;42m ----------小迷宫-----------")for i,values in enumerate(map_list): # 遍历二维列表中的18个子列表for j in range(len(values)): # 遍历子列表中的元素# 打印每个子列表中的所有元素,并且不换行打印print(map_list[i][j], end="")print("") # 每打印一个子列表所有元素,换行一次print("\033[0m",end="")# 背景色结束位置if __name__ == '__main__':x = 1 # 横向坐标默认值y = 1 # 纵向坐标默认值step_number = 0 # 记录行走步数的变量up_map() # 更新模拟地图start = time.time() # 获取开始时的时间戳while True:# 判断当小人走到迷宫出口时,打印胜利文字,跳出循环if x == 30 and y == 10:print("\033[31m恭喜您!走出了迷宫!\033[0m")print("\033[31m共计行走了",step_number,"步!\033[0m")print("\033[31m共计用时",int(time.time()-start),"秒!\033[0m")breakprint("\033[31m请输入行走的方向(输入exit将退出游戏!)\033[0m")# 获取输入的行走方向8为上、5为下、4为左、6为右direction = input("\033[31m8为上、5为下、4为左、6为右:\033[0m")# 当用户输入5,控制人物向下走if (direction == '5'):if map_list[y+1][x] != "@": # 判断行走位置不是墙时,@(表示墙)map_list[y][x] = " "# 将小人原来的位置设置为空y += 1 # 修改Y坐标位置map_list[y][x] = "Y"# 将移动后的位置设置为Y(表示小人)step_number+=1 # 修改小人移动步数else:print('\033[31m碰到墙壁!\033[0m') # 当用户输入的位置是墙时,做出提示up_map() # 更新地图# 当用户输入6,控制人物向右走elif (direction == '6'):if map_list[y][x + 1] != "@":map_list[y][x] = " "x += 1map_list[y][x] = "Y"step_number += 1 # 修改小人移动步数else:print('\033[31m碰到墙壁!\033[0m')up_map() #更新地图# 当用户输入8,控制人物向上走elif (direction == '8'):if map_list[y - 1][x] != "@":map_list[y][x] = " "y -= 1物向左走elif (direction == '4'):if map_list[y][x - 1] != "@":map_list[y][x] = " "x -= 1map_list[y][x] = "Y"step_number += 1 # 修改小人移动步数else:print('\033[31m碰到墙壁!\033[0m')up_map() # 更新地图# 当用户输入退出命令,跳出循环elif (direction == "exit"):print("游戏退出。")break

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。