问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python 解决一个简单的迷宫问题 在线等

发布网友 发布时间:2022-04-18 09:21

我来回答

3个回答

热心网友 时间:2022-04-18 10:50

具体是什么情况呢

# -*- coding: utf-8 -*-

matrix = []
row, col = 0, 0

def LoadData():
global matrix
file = open("maze.txt")
lines = file.readlines()
for line in lines:
matrix.append(line.strip())

def Init():
r = len(matrix)
c = len(matrix[0])
global row, col
for cc in xrange(c):
for rr in xrange(r):
if matrix[rr][cc] in ('O', 'F'):
row, col = rr, cc
OutputPos()
return

def OutputPos():
print "You are at position (%d, %d)" % (row, col)

def Move(d):
global row, col
m = (0, 0)
if d == 'N':
m = (-1, 0)
elif d == 'E':
m = (0, 1)
elif d == 'S':
m = (1, 0)
elif d == 'W':
m = (0, -1)

if row + m[0] >= 0 and row + m[0] < len(matrix) and col + m[1] >= 0 and col + m[1] < len(matrix[0]) and matrix[row + m[0]][col + m[1]] in ('O', 'F'):
row = row + m[0]
col = col + m[1]
OutputPos()
else:
print "You can't go in that direction"

def Input():
cmd = raw_input("Command: ")
cmd = cmd.strip()
if cmd == '?':
print '''\
? - Help.
N - move North one square.
S - move South one square.
E - move East one square.
W - move West one square.
R - Reset to the beginning.
B - Back up a move.
L - List all possible legal directions from the current position.
Q - Quit.'''
OutputPos()
elif cmd in ('N', 'E', 'S', 'W'):
Move(cmd)
if matrix[row][col] == 'F':
print "Congratulations - you made it"
elif cmd == 'L':
l = []
if row - 1 >= 0 and matrix[row - 1][col] in ('O', 'F'):
l.append('N')
if col + 1 < len(matrix[0]) and matrix[row][col + 1] in ('O', 'F'):
l.append('E')
if row + 1 < len(matrix) and matrix[row + 1][col] in ('O', 'F'):
l.append('S')
if col - 1 >= 0 and matrix[row][col - 1] in ('O', 'F'):
l.append('W')
for i, x in enumerate(l):
if i > 0:
print ",",
print x,
print ""
elif cmd == 'R':
Init()
elif cmd == 'Q':
if raw_input("Are you sure you want to quit? [y] or n:").strip() == 'y':
return False
else:
print "Invalid Command:", cmd
OutputPos()
return True

if __name__ == "__main__":
LoadData()
Init()
while Input():
pass

热心网友 时间:2022-04-18 12:08

问题补充:大概能有一页的样子 谢谢了 =这个是某次应求帮人写的程序#调用上面定于的sparse方法。其实简单的处理用不着这么做的……单纯为了扩展性,cQupyI
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 r语言identify3d在哪个包 r语言identify怎么退出 递归调用的return位置问题.高手赐教 c++编写在派生类Student中加入Identify身份证类的子对象,并修改Student类的构造函数完成对其的初始化。 先用主成分分析然后进行聚类分析r编程。主成分的,和聚类的我都分别已写好,只要修改一下复制黏贴就行。 请教个问题 鸽子蛋下完拿出来在什么温度可以长时间存放还可以孵化 鸽蛋放置多长时间不能孵化?? 鸽子蛋常温下能放多久 云南打隧道的部队有哪些 中巍(青岛)房地产开发有限公司电话是多少? 电脑磁盘共享起来在同一个网络里面别人访问不了是什么原因 庭院鱼池多深为好 庭院假山鱼池要做在什么方位 庭院鱼池设计风水效果图 使用左手法则&#47;右手法则摸墙法(左手或右手在迷宫中始终不离开墙)写一个python程序解迷宫 covsm080功放怎么连接蓝牙? 主机选择什么主板比较好? 乙炔气瓶的介绍 恶势力最轻判几年 乙炔气瓶空瓶需要防倾倒吗 乙炔气瓶能不能当煤气罐来炒菜用呢?为什么呢? 吕不韦什么时候被封相父 在重农抑商的背景下,吕不韦怎会成为丞相? 正规无纸化彩票来袭,你准备好了吗 什么叫吕不韦 腰椎横突左 L1 L2 L3 被人打骨折,这个如果做伤情鉴定算是轻伤还是重伤? android系统文件删除失败 请问为什么我的手机(安卓系统)在手机助手里面删除不了文件(操作无法完成,系统不允许源文件或文件夹) 腰椎横突L3骨折符合轻伤二级标准吗还是轻微伤? android5.0文件管理的文件无法删除 0 荣耀50pro的Android文件怎么删除不了 我被人殴打致L1L2L3左腰椎横突骨折,属于轻伤还是重伤?可以追究其刑事吗? L3横突骨折能构成轻伤吗。 Android文件夹删不掉怎么解决。 被人殴打导致腰椎横突骨折在法医鉴定时属于哪个级别的伤害?求解答 安卓删除文件报错。这个文件无法移动、重命名、无法对其进行操作。如何删除这个文件? 为什么删除安卓手机存储卡里的文件时,总提示“删除失败”和“文件受系统保护”。。。 安卓手机莫名其妙就出现无法删除文件,并且那时也无法添加文件 安卓删除系统文件提示无法删除,也无法修改权限,已root Australia的复数形式是什么? they are australian什么意思