Partage
  • Partager sur Facebook
  • Partager sur Twitter

Creer un plateau de N*N

    18 décembre 2016 à 18:28:27

    Bonjour,j'aimerais savoir comment représenter un plateau de jeu (celui du jeu de la vie) avec une liste de liste de booleens? (True pour les cellules vivantes et Falses pour les cellules mortes). Merci
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2016 à 18:44:05

      hm justement avec une liste de liste ? sinon, tu peut utiliser le type array de la bibliothèque numpy.

      -
      Edité par edouard22 18 décembre 2016 à 18:46:03

      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2016 à 22:43:26

        Oui enfin c'est dans la consigne. Je vais regarder avec le type "array"

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 décembre 2016 à 23:22:53

          Un plateau ? lignes et colonnes, double boucle for donc... Quel est le problème ?
          • Partager sur Facebook
          • Partager sur Twitter
            21 décembre 2016 à 16:20:32

            J'ai reussi à créer la liste cependant c'est de la forme d'un tableau et j'arrive pas à installer le module numpy sur mon mac. Y'aurait-il un autre moyen pour afficher la liste sous la forme d'un tableau? Merci
            • Partager sur Facebook
            • Partager sur Twitter
              21 décembre 2016 à 16:24:59

              lasyvegasy a écrit:

              J'ai reussi à créer la liste cependant c'est de la forme d'un tableau et j'arrive pas à installer le module numpy sur mon mac. Y'aurait-il un autre moyen pour afficher la liste sous la forme d'un tableau? Merci

              In [29]: l=[  [ i+j for j in range(10) ] for i in range(10)] 
              
              In [30]: print(*l,sep="\n")
              [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
              [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
              [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
              [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
              [4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
              [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
              [6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
              [7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
              [8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
              [9, 10, 11, 12, 13, 14, 15, 16, 17, 18]


              tu peux faire comme sa.  tu accède à la case (i,j) en faisant l[i][j]

              -
              Edité par edouard22 21 décembre 2016 à 16:30:14

              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2016 à 14:07:47

                J'ai du mal comprendre ton code. Pourrais tu m'aider à modifié mon code? Merci.

                Moi j'ai fais comme ca:

                def plateau(n):
                    lst=[]
                    plateau=[]
                    indice=0
                    for i in range(0,n):
                        for y in range(0,n):
                              lst.append(False)
                        plateau.append(lst)
                        lst=[]
                    return plateau
                
                
                
                    



                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2016 à 18:19:09

                  hm, ton code me semble bon.   cela crée un tableau n*n remplis de False.

                  tu peux l'améliorer en faisant sa :  ( a quoi sert ta variable indice ? )

                  def plateau(n):
                      plateau=[]
                      for i in range(0,n):
                          lst=[]
                          for y in range(0,n):
                                lst.append(False)
                          plateau.append(lst)
                      return plateau



                  -
                  Edité par edouard22 22 décembre 2016 à 18:25:16

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 décembre 2016 à 21:09:20

                    merci mais cela me permet toujours pas d'obtenir un tableau avec des colones... A rien j'ai oublié de la supprimer

                    -
                    Edité par lasyvegasy 22 décembre 2016 à 21:11:01

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 décembre 2016 à 21:27:40

                      lasyvegasy a écrit:

                      merci mais cela me permet toujours pas d'obtenir un tableau avec des colones... A rien j'ai oublié de la supprimer

                      -
                      Edité par lasyvegasy il y a 9 minutes


                      et pourtant tu l'a... après la façon dont tu le représente en sortie, c'est a toi de le faire. print(*l,sep="\n") est une première solution qui affiche quelque chose de propre. mais tu peux installer tkinter, te faire un belle affichage;

                      faire une fonction show qui met en forme dans la console...  

                      In [7]: l=plateau(5)
                      
                      In [8]: print(*l,sep="\n")
                      [False, False, False, False, False]
                      [False, False, False, False, False]
                      [False, False, False, False, False]
                      [False, False, False, False, False]
                      [False, False, False, False, False]

                      perso, j'ai des colonnes.... 

                      perso, j'ai fait un truc comme sa : 

                      def main():
                          fenetre = Tk()
                          
                          global B
                          
                          global canvas 
                          n=100
                      
                          B=plateau(n)
                         
                          canvas = Canvas(fenetre, width=n*6, height=n*6, background='yellow')
                          for k in range(n):
                              ligne1 = canvas.create_line(k*6, 0, k*6, n*6)
                              ligne2 = canvas.create_line(0,k*6, n*6, k*6)
                      # affiche le quadrillage 
                      
                          for i in range(n) :
                              for j in range(n): 
                                  if( B[i,j] ) :
                                      canvas.create_rectangle(j*6, i*6, (j+1)*6, (i+1)*6,fil='red')
                      
                      # colorie la case (i,j) si elle est vivante. 
                          
                          canvas.pack()
                      
                          fenetre.mainloop()

                      -
                      Edité par edouard22 22 décembre 2016 à 21:35:48

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Creer un plateau de N*N

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown