Python中的迷宫图案构建

时间:2017-09-03 06:38:06

标签: python python-3.x logic maze

您好我是python的新手并使用python 3。 我希望学习模式和打印,例如明星等。我想制作迷宫图案,但我迷惑了迷宫没有2-no4

No 1

    @ @@@@@@@@@@@@@
    @             @
    @@@@@@@@@@@@@ @
    @             @
    @ @@@@@@@@@@@@@
    @             @
    @@@@@@@@@@@@@ @
    @             @
    @ @@@@@@@@@@@@@
    @             @
    @@@@@@@@@@@@@ @
    @             @
    @ @@@@@@@@@@@@@
    @             @
    @@@@@@@@@@@@@ @

No 2

    @ @@@@@@@@@@@@@
    @ @   @   @   @
    @ @ @ @ @ @ @@@
    @ @ @ @ @ @   @
    @ @ @ @ @ @@@ @
    @ @ @ @ @     @
    @ @ @ @ @@@@@@@
    @ @ @ @       @
    @ @ @ @@@@@@@ @
    @ @ @         @
    @ @ @@@@@@@@@@@
    @ @           @
    @ @@@@@@@@@@@ @
    @             @
    @@@@@@@@@@@@@@@

No 3 

    @ @@@@@@@@@@@@@
    @ @           @
    @ @ @@@@@@@@@ @
    @ @ @       @ @
    @ @ @ @@@@@ @ @
    @ @ @ @   @ @ @
    @ @ @ @ @ @ @ @
    @ @ @ @ @ @ @ @
    @ @ @ @@@ @ @ @
    @ @ @     @ @ @
    @ @ @@@@@@@ @ @
    @ @         @ @
    @ @@@@@@@@@@@ @
    @             @
    @@@@@@@@@@@@@@@

No 4 

    @ @@@@@@@@@@@@@
    @ @           @
    @ @ @@@@@@@@@ @
    @ @ @       @ @
    @ @ @ @@@@@ @ @
    @ @ @ @   @ @ @
    @ @ @ @ @ @ @ @
    @ @ @ @ @ @ @ @
    @ @ @ @ @ @ @ @
    @ @ @   @ @ @ @
    @ @ @@@@@ @ @ @
    @ @       @ @ @
    @ @@@@@@@@@ @ @
    @           @ @
    @@@@@@@@@@@@@ @

这是我的代码迷宫no1:

def SimpleMaze(S):
    bool=1
    for i in range(S):
        if (i+1)%2==0:
            print('@'+' '*(S-2)+'@')
        else:
            if bool==1:
                print('@'+' '+'@'*(S-2))
            else:
                print('@'*(S-2)+' '+'@')
            bool=not bool
S= input("Nilai S:")
SimpleMaze(int(S))

1 个答案:

答案 0 :(得分:1)

你通过逐行组装Maze 1来构建Maze 1,但是当你从行中考虑它们时,其他迷宫似乎有更混乱的模式。

这是解决问题的另一种方法。从实体块开始,包含行0..R和列0..C(包括)。

@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@

然后想象自己通过推动推土机创造一个迷宫,随时打开路径。在这种方法下,我们可以将迷宫表示为一组驾驶指令。例如,Maze 1看起来像这样:

Start at r==-1, c==1.
Go South 2 steps.
Go East until c==C-1.
Go South 2 steps.
Go West until c==1.
Repeat ... until r>R.

我认为Mazes 2到4在这些方面更容易思考。理想情况下,每个概念(向南,向东等)都可以实现为简单的功能或方法。