2015-06-17 24 views
-5

对于我的计算课,我必须用我选择的语言制作一个迷宫,我选择了python。我试过,但我不能工作了这里是我们得到的指示: 这个表格可以表示为一个二维整数数组:如何制作迷宫?

DECLARE maze AS ARRAY OF ARRAY OF INTEGER INITIALLY [] 

SET maze TO [ [] ] * 9 # array with 9 elements, each an empty array 
DECLARE maze AS ARRAY OF ARRAY OF INTEGER INITIALLY [] 

#This loop fills the 2-D array with the value -1. 

SET maze TO [ [] ] * 9 # array with 9 elements, each an empty array 
FOR counter FROM 0 TO 8 DO 
    maze[ counter ] = [0] * -1 

    # Update each element to be a 4-element array of -1s 

END FOR 

一旦一个二维数组或数组的数组已经初始化,如果你想打印出它的内容,因为它可能与此代码来完成一个表:

FOR column FROM 0 TO 8 DO 
    FOR row FROM 0 TO 3 DO 
     SEND maze[column] [row] TO DISPLAY 
    END FOR 
    <print new line> 
END FOR 

这个计算构建物通常被称为嵌套循环。

我们现在可以用一组语句来设置需要包含房间号的单元格。

SET maze[0][1] TO 1 
SET maze[1][1] TO 2 
SET maze[1][2] TO 4 
SET maze[2][2] TO 5 
SET maze[2][3] TO 1 .... etc. 

一旦这组命令完成后,从房间到另一个房间移动的结果可以用一个过程来进行编码。

程序ChangeRoom(INTEGER室,INTEGER方向)

DECLARE newRoom INITIALLY 0 
IF maze[room][direction] = -1 THEN 
    SEND "you have hit a wall" TO DISPLAY 
    ELSE 
    SET newRoom TO maze[room][direction] 
    SEND "You are now in room "& newRoom TO DISPLAY 
END IF 
    SET room TO newRoom 

END PROCEDURE 
+5

这是某种形式的帕斯卡/ PLSQL /诸如此类的东西,而不是Python的。问题在哪里? –

+1

我不认为他们在他们的例子中使用任何语言,这是一种伪代码,据我所知,无论如何,他们说在python中这样做。 –

+0

复制粘贴你的任务在这里与“我试过但我无法解决”不是一个问题。做你自己的作业。 – TigerhawkT3

回答

1

这应该让你开始:

import random 
def init_maze(): 
    maze = [[]] * 9 
    for counter in range(0, 9): 
     maze[counter] = [-1] * 4 
    return maze 

def print_maze(maze): 

    for column in range(0, 9): 
     for row in range(0, 4): 
      print maze[column][row], 
     print '' 

def set_cells(maze): 
    for column in range(0, 9): 
     for row in range(0, 4): 
      maze[column][row] = random.randint(1,5) 
    return maze 

def change_room(room, direction): 
    newRoom = 0 
    if maze[room][direction] == -1: 
     print "you have hit a wall" 
    else: 
     newRoom = maze[room][direction] 
     print "You are now in room {0}".format(newRoom) 
    room = newRoom 

maze = init_maze() 
print_maze(maze) 
print 'Randomizing...' 
maze = set_cells(maze) 
print 'Done' 
print_maze(maze)