2017-09-03 5 views
0

Bonjour, Je suis un débutant à python et en utilisant python 3. Je souhaite apprendre des modèles et l'impression par exemple étoiles etc. Je veux faire modèle de labyrinthe mais je confus faire labyrinthe no 2-no4Maze Building Pattern en Python

No 1 

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

No 2 

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

No 3 

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

No 4 

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

Ceci est mon code labyrinthe 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)) 
+2

Quel est en particulier le problème auquel vous êtes confronté? – Milk

+0

Je suis confus pour faire du labyrinthe No 2 jusqu'au No 4 – Nabunaga

+1

@Nabunaga Et quelle est la particularité que vous êtes confus? Cela ressemble à des devoirs. – tambre

Répondre

1

vous avez construit Maze 1 en assemblant ligne par ligne, mais les autres labyrinthes semblent avoir des motifs messier quand vous pensez à eux en termes de lignes.

Voici une autre façon de résoudre le problème. Commencez avec un bloc solide, avec les lignes 0..R et les colonnes 0..C (inclus).

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

créer Ensuite vous un envisagent labyrinthe en conduisant un bulldozer à travers elle, ouvrant le chemin que vous allez. Selon cette approche, nous pouvons représenter un labyrinthe comme un ensemble d'instructions de conduite. Par exemple, Maze 1 ressemble à ceci:

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. 

Je pense que Mazes 2 à 4 sera plus facile de penser en ces termes. Idéalement, chacun de ces concepts (aller vers le sud, aller vers l'est, etc.) pourrait être implémenté comme de simples fonctions ou méthodes.