'''
,--^----------,--------,-----,-------^--,
`--------' 作者 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
相关推荐
数据狐(DataFox)28 分钟前
CTE公用表表达式的可读性与性能优化蹦蹦跳跳真可爱58933 分钟前
Python----MCP(MCP 简介、uv工具、创建MCP流程、MCP客户端接入Qwen、MCP客户端接入vLLM)No0d1es35 分钟前
第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2022年1月22日真题MediaTea44 分钟前
Python 库手册:getopt Unix 风格参数解析模块王尼莫啊1 小时前
【立体标定】圆形标定板标定python实现cosX+sinY1 小时前
10 卷积神经网络非极限码农2 小时前
基于Deepseek的语言润色助手API实现与部署指南I love studying!!!2 小时前
python基础:用户输入和 while 循环AndrewHZ3 小时前
【图像处理基石】如何对遥感图像进行实例分割?No0d1es3 小时前
第13届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2021年11月27日真题