'''
,--^----------,--------,-----,-------^--,
`--------' 作者 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
相关推荐
SelectDB14 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑荣码1 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂金銀銅鐵1 天前
[Python] 基于欧几里得算法,实现分数约分计算器Lyn_Li1 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现小九九的爸爸2 天前
前端想要入门Agent开发,要具备哪些Python基础?阿耶同学2 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构花酒锄作田2 天前
Pydantic校验配置文件hboot2 天前
AI工程师第四课 - 深度学习入门ZhengEnCi3 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器ZhengEnCi3 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器