Python迷宫游戏(基础版)
# 画地图
map_data = [
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 0, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 2, 1, 0, 0, 0, 0, 0, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 1, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 1, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 1, 0, 1],
[1, 1, 1, 0, 1, 1, 1, 1, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
]
# 定义人所在的位置(初始化)
x = 2
y = 1
endx = 7
endy = 9
# 用字符串重新给地图赋值
def print_map():
for nums in map_data:
for num in nums:
if num == 1:
print(" #",end=" ")
elif(num == 0):
print(" ",end=" ")
else:
print(" $",end=" ")
print("") # 所用到的核心知识 # print("交换前的地图")
# print_map()
# map_data[2][1], map_data[2+1][1] = map_data[2+1][1], map_data[2][1]
# print("交换后的地图")
# print_map() # 先画地图
print_map()
while True:
# 指令的输入
order = input("请输入指令(a: 左,s: 下, d: 右, w: 上):")
# 对用户输入的指令进行判断
# 当用户输入a时执行向左走进行交换(列变行不变 列下标减1)
if order == "a":
y = y-1
# 碰到墙,游戏结束
if map_data[x][y] == 1:
print("游戏结束")
break
else:
map_data[x][y],map_data[x][y+1] = map_data[x][y+1], map_data[x][y] # 进行交换操作
print_map() # 当用户输入s时执行向下走进行交换(列不变行变 行下标加1)
elif order == "s":
x = x + 1
if map_data[x][y] == 1:
print("游戏结束")
break
else:
map_data[x][y], map_data[x-1][y] = map_data[x-1][y], map_data[x][y] # 进行交换操作
print_map() # 当用户输入d时执行向右走进行交换(列变行不变 列下标加1)
elif order == "d":
y = y + 1
if map_data[x][y] == 1:
print("游戏结束")
break
else:
map_data[x][y], map_data[x][y - 1] = map_data[x][y - 1], map_data[x][y] # 进行交换操作
print_map()
if map_data[x][y] == map_data[endx][endy]:
print("恭喜你过关了")
break # 当用户输入w时执行向上走进行交换(列不变行变 行下标减1)
elif order == "w":
x = x - 1
if map_data[x][y] == 1:
print("游戏结束")
break
else:
map_data[x][y], map_data[x + 1][y] = map_data[x + 1][y], map_data[x][y] # 进行交换操作
print_map() # 当用户输入非规则内的指令时的错误提示,并重新输入
else:
print("您输入指令有误,请重新按指令规则输入!")
continue
#
截图:

Python迷宫游戏(基础版)的更多相关文章
- 【python】文件下载---基础版
基于TCP协议的基础版本,不支持大文件 Client.py import socket def main(): # 1. 创建套接字 tcp_socket = socket.socket(socket ...
- 01 基础版web框架
01 基础版web框架 服务器server端python程序(基础版): import socket server=socket.socket() server.bind(("127.0.0 ...
- python tkinter实现俄罗斯方块 基础版
本项目最终效果见本人b站投稿av81480858 简介部分 本项目最终代码已上传github: https://github.com/BigShuang/Tetris 的1_BASIC文件夹 .其中1 ...
- 零基础学python》(第二版)
---恢复内容开始--- 零基础学python>(第二版) python学习手册 可以离线下载, .chn格式, 插入小幽默笑话,在学习累的时候看看笑话 放松一下 欢迎下载转载,请注明出处,谢 ...
- 《Python编程第4版 下》高清PDF|百度网盘免费下载|Python基础编程
<Python编程第4版 下>高清PDF|百度网盘免费下载|Python基础编程 提取码:tz5v 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为这 ...
- 《Python编程第4版 上》高清PDF|百度网盘免费下载|Python基础编程
<Python编程第4版 上>高清PDF|百度网盘免费下载|Python基础编程 提取码:8qbi 当掌握Python的基础知识后,你要如何使用Python?Python编程(第四版)为 ...
- 2015/11/1用Python写游戏,pygame入门(1):pygame的安装
这两天学习数据结构和算法,有时感觉并不如直接做项目来的有趣.刚刚学完python的基本使用,现在刚好趁热打铁做个小项目. 由于本人一直很想制作一款游戏,就想使用Python制作一个基础的游戏.搜了一下 ...
- 笨办法学 Python (第三版)(转载)
笨办法学 Python (第三版) 原文地址:http://blog.sina.com.cn/s/blog_72b8298001019xg8.html 摘自https://learn-python ...
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
随机推荐
- VMware虚拟机环境配置--网络配置
Hadoop集群搭建第一篇. 环境: VMware workstation 12, centos 6.5 配置虚拟机网络连接模式为NAT模式(共享主机的ip地址). 桥接模式: 和主机windows是 ...
- Yara VS2017出现LINK : fatal error LNK1104: 无法打开文件“msvcrt.lib”
解决方法1 搜索msvcrt.lib所在的路径 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MS ...
- LwIP Application Developers Manual1---介绍
1.前言 本文主要是对LwIP Application Developers Manual的翻译 2.读者(应用开发手册的读者) 谁适合读这份手册 网络应用的开发者 想了解lwIP的网络应用开发者 阅 ...
- dubbo源码分析1——SPI机制的概要介绍
插件机制是Dubbo用于可插拔地扩展底层的一些实现而定制的一套机制,比如dubbo底层的RPC协议.注册中心的注册方式等等.具体的实现方式是参照了JDK的SPI思想,由于JDK的SPI的机制比较简单, ...
- XAF 框架中,自定义参数动作(Action),输入参数的控件可定义,用于选择组织及项目
XAF 框架中,如何生成一个自定义参数动作(Action),输入参数的控件可定义? 参考文档:https://documentation.devexpress.com/eXpressAppFramew ...
- Ubuntu 18.04使用sudo pip3报错
在使用sudo pip3 install python库的时候出现如下警告: The directory '/home/lzhu/.cache/pip/http' or its parent dire ...
- ubuntu 远程登录错误
利用 ubuntu 16.04 自带功能远程登录到同事的电脑时,提示如下错误: This file server type is not recognized 百度一下,得知,缺少必要的文件,安装后 ...
- 通过flask实现web页面简单的增删改查
通过flask实现web页面简单的增删改查 # 1.后台程序falsk_web01.py #coding:utf-8 from flask import Flask,render_template,r ...
- SSL For Free 申请免费https SSL 凭证
打开 SSL For Free网站(https://www.sslforfree.com) ,在输入框中填入你要申请 Let’s Encrypt 凭证的网域名称,可以用空白来分隔不同的网址,例如[su ...
- 解决layui选中项下一页清空问题
项目中遇到给用户在所有产品中匹配一部分产品.用layui 第一页选好之后到第二页再选,等回到第一页时之前选择的都没了,解决这个问题的办法如下: //勾选的产品id集合 var chooseAdids ...