''',--^----------,--------,-----,-------^--,`--------' 作者 yty`+---------------------------^----------`_,-------, _________________________XXXXXX `XXXXXX `XXXXXX ______(XXXXXXXXXXXX(________(`------' ''''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 -1for 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')breakelse:zc = input('请输入操作 W↑ S↓ A← D→ \n\n')move(zc)![]()