'''
,--^----------,--------,-----,-------^--,
`--------' 作者 yty
`+---------------------------^----------
`_,-------, _________________________
XXXXXX `
XXXXXX `
XXXXXX ______(
XXXXXX
XXXXXX
(________(
`------'
'''
'0'
[['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','0','0','0','0','0','0','0','0','0','0','0','0','0','1'],
['1','1','1','1','1','1','1','1','1','1','1','1','1','1','1']]
import time
one = time.time()
def find(ditu,thing):
for i in range(0, len(ditu)):
for j in range(0, len(ditu)):
if ditu[i][j] == thing:
return [i,j]
def show(ditu,a):
a = find(ditu,'M')
if ditu[a[0]][a[1]] == '4' and a == 0 :
show(ditu,a=-1)
return -1
for i in range(0,len(ditu)):
for j in range(0,len(ditu)):
if i == 0 or i == len(ditu)-1:
print('■■',end='')
elif ditu[i][j] == '0':
print(' ',end='')
elif ditu[i][j] == '1':
print('▊▊',end='')
elif ditu[i][j] == '4':
print('▓▓',end='')
elif ditu[i][j] == 'R':
print('☹',end='')
elif ditu[i][j] == 'M':
print('░░',end='')
print()
return 0
'''
w向上移动
A向左移动
S向下移动
D向右移动
'''
def move(fx):
# 向上移动
if fx == 'W' :
zb = find(ditu,'R')
if ditu[zb[0]-1][zb[1]] == '0' :
pepole_zb = find(ditu,'R')
#将people坐标 向上更改
ditu[zb[0]-1][zb[1]] = 'R'
#将原坐标 更改
ditu[zb[0]][zb[1]] = '0'
elif ditu[zb[0]-1][zb[1]] == '4':
box_zb = find(ditu,'4')
print(ditu[box_zb[0]-1][box_zb[1]])
if ditu[box_zb[0]-1][box_zb[1]] != '1':
# box 向上更改
ditu[box_zb[0] - 1][box_zb[1]] = '4'
# 将原坐标 更改
ditu[box_zb[0]][box_zb[1]] = '0'
#移动人物坐标
ditu[zb[0]][zb[1]] = '0'
ditu[box_zb[0]][box_zb[1]] = 'R'
# move('W',-1)
elif fx == 'A' :
zb = find(ditu, 'R')
if ditu[zb[0] ][zb[1]-1] == '0':
pepole_zb = find(ditu, 'R')
# 将people坐标 向上更改
ditu[zb[0]][zb[1]-1] = 'R'
# 将原坐标 更改
ditu[zb[0]][zb[1]] = '0'
elif ditu[zb[0]][zb[1]-1] == '4':
box_zb = find(ditu,'4')
print(ditu[box_zb[0]][box_zb[1]-1])
if ditu[box_zb[0]][box_zb[1]-1] != '1':
# box 向上更改
ditu[box_zb[0]][box_zb[1]-1] = '4'
# 将原坐标 更改
ditu[box_zb[0]][box_zb[1]] = '0'
#移动人物坐标
ditu[zb[0]][zb[1]] = '0'
ditu[box_zb[0]][box_zb[1]] = 'R'
elif fx == 'D' :
zb = find(ditu, 'R')
if ditu[zb[0] ][zb[1]+1] == '0':
pepole_zb = find(ditu, 'R')
# 将people坐标 向上更改
ditu[zb[0]][zb[1]+1] = 'R'
# 将原坐标 更改
ditu[zb[0]][zb[1]] = '0'
elif ditu[zb[0]][zb[1]+1] == '4':
box_zb = find(ditu,'4')
print(ditu[box_zb[0]][box_zb[1]+1])
if ditu[box_zb[0]][box_zb[1]+1] == '0':
# box 向上更改
ditu[box_zb[0]][box_zb[1]+1] = '4'
# 将原坐标 更改
ditu[box_zb[0]][box_zb[1]] = '0'
#移动人物坐标
ditu[zb[0]][zb[1]] = '0'
ditu[box_zb[0]][box_zb[1]] = 'R'
elif fx == 'S' :
zb = find(ditu, 'R')
if ditu[zb[0]+1][zb[1]] == '0':
pepole_zb = find(ditu, 'R')
# 将people坐标 向上更改
ditu[zb[0]+1][zb[1]] = 'R'
# 将原坐标 更改
ditu[zb[0]][zb[1]] = '0'
elif ditu[zb[0]+1][zb[1]] == '4':
box_zb = find(ditu,'4')
print(ditu[box_zb[0]+1][box_zb[1]])
if ditu[box_zb[0]+1][box_zb[1]] != '1':
# box 向上更改
ditu[box_zb[0]+1][box_zb[1]] = '4'
# 将原坐标 更改
ditu[box_zb[0]][box_zb[1]] = '0'
#移动人物坐标
ditu[zb[0]][zb[1]] = '0'
ditu[box_zb[0]][box_zb[1]] = 'R'
if __name__ == '__main__':
ditu = [
['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'],
['1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '4', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '1', '0', '1', '1', '0', '0', '0', '0', 'R', '0', '1'],
['1', '0', '0', '0', '0', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '1', '1', '1', '1', '0', '1', '0', '0', '1', '0', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '0', '0', '1', '0', '1', '0', '0', '1', '0', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '0', '0', '1', '0', '1', '0', '0', '1', '0', '0', '1'],
['1', '0', '1', '0', '0', '0', '1', '0', '0', '0', '1', '0', '1', '1', '1', '1', '0', '0', '1'],
['1', '0', '1', '0', '1', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '1', '0', '0', '1'],
['1', '0', '1', '0', '1', '0', '1', '1', '1', '1', '1', '0', '1', '0', '0', '1', '0', '1', '1'],
['1', '0', '1', '0', '1', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '1', '0', '1', '1'],
['1', '0', '1', '0', '1', '1', '1', '1', '0', '0', '0', '0', '1', '0', '0', '0', '0', '1', '1'],
['1', '0', '1', '0', '0', '0', '0', '1', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '1'],
['1', '0', '1', '0', '1', '0', '0', '1', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '1'],
['1', '0', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '1', '1', '1', '1', '0', '0', '1'],
['1', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1'],
['1', 'M', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '1'],
['1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1']
]
while True:
if show(ditu,a=0) == -1:
tow = time.time()
print(f'游戏结束 你一共用时 {int((tow - one)*100)/100}s')
break
else:
zc = input('请输入操作 W↑ S↓ A← D→ \n\n')
move(zc)
python推箱子游戏
qq3332129724(中职生)2025-04-13 13:00
相关推荐
SHIPKING3934 分钟前
【LangChain少样本提示工程实战】FewShotPromptTemplate原理与应用解析——附运行代码豆豆28 分钟前
day24 学习笔记辰阳星宇41 分钟前
213、【图论】有向图的完全联通(Python)慕卿扬1 小时前
基于python的机器学习(六)—— 数据可视化和数据预处理朗道十戒1 小时前
在ArcGIS Pro中将栅格NoData值修改为特定值LouisCanBe1 小时前
MCP Server 项目发布指南猿小猴子1 小时前
Django3 - 开启Django Hello Worldoscar9991 小时前
Python 基础语法汇总慕卿扬1 小时前
基于python的机器学习(五)—— 聚类(二)小鄒鄒2 小时前
Hello Java!