pascal实现走迷宫程序

pascal实现走迷宫程序,第1张

程序的最后加一个条件语句:

若之前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 解决一个简单的迷宫问题 在线等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9502328.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存