
在程序的最后加一个条件语句:
若之前pr过程(也就是你的路径输出过程)没被执行过,那么 输出"NO"
当然,在pr过程中要加入一个标记记录这个过程是否被执行了。
还有,你的程序对于题目的输入是不能正常读入的,输出也不符合标准,需要修改。
另外,宽搜尽量用UNTIL语句写,比较好调试。
祝你早日成为编程高手!
c#界面绘制的时候,底层重绘每次会清除画布背景,然后再全部重新绘制,这才是导致闪烁最主要的原因。于是重载消息发送函数 *** 作,禁掉这条消息。代码如下:
protected override void WndProc(ref Message m)
{
if (mMsg == 0x0014) // 禁掉清除背景消息
return;
baseWndProc(ref m);
}
具体是什么情况呢
# -- coding: utf-8 --
matrix = []
row, col = 0, 0
def LoadData():
global matrix
file = open("mazetxt")
lines = filereadlines()
for line in lines:
matrixappend(linestrip())
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 = cmdstrip()
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'):
lappend('N')
if col + 1 < len(matrix[0]) and matrix[row][col + 1] in ('O', 'F'):
lappend('E')
if row + 1 < len(matrix) and matrix[row + 1][col] in ('O', 'F'):
lappend('S')
if col - 1 >= 0 and matrix[row][col - 1] in ('O', 'F'):
lappend('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
以上就是关于pascal实现走迷宫程序全部的内容,包括:pascal实现走迷宫程序、C语言编程 迷宫问题(队列)、Python 解决一个简单的迷宫问题 在线等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)