Jeu de scrabble

Résolu
Bonjour, je rencontre beaucoup de difficultés dans une question en particulière de mon projet. Vous pouvez m'aider s'il vous plaît à la résoudre

Écrire une fonction bonus() qui initialise et renvoie une liste de listes de caracteres, contenant les bonus des
cases du plateau.
A faire avoir fait(ci dessous), je bloque j'arrive pas à manipuler tous ses colonnes et lignes. Même placer les éléments correctement MT et LD sur la ligne d'indice 0 j'y arrive
Votre aide me sera très utile

cases_MT = [[0,0],[0,7],[0,14],[7,0],[7,14],[14,0],[14,7],[14,14]]
cases_MD = [[1,1],[1,13],[2,2],[2,12],[3,3],[3,11],[4,4],[4,10],[7,7],[10,4],[10,10],[11,3],[11,11],[12,2],[12,12],[13,1],[13,13]]
cases_LT = [[1,5],[1,9],[5,1],[5,5],[5,9],[5,13],[9,1],[9,5],[9,9],[9,13],[13,5],[13,9]]
cases_LD = [[0,3],[0,11],[2,6],[2,8],[3,0],[3,7],[3,14],[6,2],[6,6],[6,8],[6,12],[7,3],[7,11],[8,2],[8,6],[8,8],[8,12],[11,0],[11,7],[11,14],[12,6],[12,8],[14,3],[14,11]]

45 réponses

  • Votes
  • Date
  • Date décroissante
Résumé de la discussion

Le problème porte sur l'écriture d'une fonction bonus() qui initialise et renvoie une liste de listes représentant un plateau 15x15 avec des bonus placés sur des positions données par des listes de coordonnées. Pour y parvenir, l'approche courante consiste à démarrer avec un tableau vide et à remplir uniquement les cases concernées avec les chaînes 'MT', 'MD', 'LT' ou 'LD'. Des boucles imbriquées ou des listes en compréhension ont été proposées pour construire le plateau puis assigner les éléments selon les coordonnées, notamment MT sur la ligne 0 et LD sur 0,3 et 0,11. En cas de progression, l'idée est aussi de prévoir une fonction init jetons() qui crée les cases vides et facilite ensuite le remplissage sélectif des bonus.

Bobot (l’IA à votre service)
  1. Bonjour Theo,

    Même placer les éléments correctement MT et LD sur la ligne d'indice 0 j'y arrive

    Ben si tu y arrives, pas de problème ...

    C'est quoi ta question précisément ?
    1. Ma question c'est comment faire pour bien placer chacun à sa place les bonus parceque c'est pas écrire une liste de liste de leur position qui va m'aider
      Ou dois je commencer pouf réussir à le faire
      1. comment faire pour bien placer chacun à sa place

        Que veux tu dire ?
        1. Par exemple comment faire pour bien placer sur la ligne d'indice 0,les 3 MT(colonne 0,colonne7 et colonne 14)
          LD(colonne 3 et colonne 11)
          Et les chaînes de caractères vides dans les cases contenant aucun bonus
          1. Ah ok , tu parles de faire ça graphiquement : dessiner les cases rouges MT sur un damier
            de 15 x 15 cases ?
            1. Moi comme je vous dit j'arrive même pas à faire la ligne 0
              J'arrive à bien placer par exemple MT et les chaînes vides mais pas LD

              L=[] 
              for i in range(0,14,7):
              L.append("MT")
              for j in range(1,6):
              L.append("")
              1. Bon ça c'est juste un essai. Si j'arrive pas déjà à comprendre comment bien placer chaque élément sur la 1er ligne, aucune chance que j'y arrive pour 15 lignes et 15 colonnes
                1. L=[] 
                  for i in range(0,14,7):
                         L.append("MT")


                  As-tu essayé de faire un print(L) pour voir ce qu'il contient exactement ?
                  1. Oui je l'ai fait. C'est pourquoi j'ai dit j'arrive à bien placer MT et les chaînes vides mais pas LD
                    1. moi, quand je fait
                       print(L)


                      je vois ça : ['MT', 'MT'] une liste de 2 chaines de caractères MT

                      c'est quoi l'intérêt ?

                      En plus ta boucle sur (0,14,7) ne sert à rien, tu ferais

                      L=[] 
                      for i in range(0,2):
                             L.append("MT")


                      ca donnerait exactement le même résultat ...

                      et à la fin de tes 2 boucles, ca donne ça:

                      ['MT', 'MT', '', '', '', '', '']
                      1. Le code que j'ai copié collé c'est pas le bon, j'ai supprimé le bon et je me souviens plus comment j'avais trouvé vi que je testait comme ça sans arrêt jusqu'à tomber sur le bon

                        Quescequ'il faut faire pour trouver la solution, un indice pour que je puisse avancer
                      2. Moi mon problème principale c'est comment on place chaque jeton à sa place
                        Par e emple à la ligne 0,il faut que j'ai
                        [MT, "", "", LD, "", "", "", MT, "", "", "", LD, "", "", MT{
                        ..
                        Je dois faire la même chose pour chaque ligne.
                        Ensuite je dois tout mettre dans une grande liste(liste de liste)

                        Mais d'abord, il faut que j'arrive d'abord à comprendre comment faire pour la ligne 0,avant d'espérer trouver pour les autres lignes
                        1. Contributeur
                          est-ce ton premier exercice avec des listes en Python?
                          as-tu déjà fait des exercices avec des index?

                          l'exercice que tu fais suppose que tu maitrises cela.
                      3. Oui bien sur, c'est une question concernant un projet que je dois rendre
                        Oui les indices je les maîtrises
                        Par exemple MT pour la ligne 0 est en indice 0, 7 et 14....
                        1. ah ok, tu nous balances un code pas bon, comme ça, au hasard

                          des fois qu'on aurait une boule de cristal !

                          Il faut croire que tu ne maitrises pas

                          Tu devrait chercher sur internet comment créer un tableau à 2 dimensions, ici 15 lignes par 15

                          colonnes avec des "listes en compréhension" par exemple

                          Ensuite tu pourrais le remplir en adressant ligne et colonne :

                          tableau[0][7] = 'MT', etc ...
                          1. Je sais comment faire, le principe mais l'appliquer c'est dure
                            En tout cas pour les liste compréhension je sais qu'on doit faire
                            Exemple :MT dans toutes les cases
                            [["MT"for j in range(15)]for i in range(15)]
                            1. hé ben voila...

                              on y arrive tout doucement ...

                              sauf qu'au départ il faut faire un tableau comme tu le fais mais entièrement vide et ensuite, il

                              n'y a plus qu'à remplir uniquement ce qui doit l'être avec 'MT', 'MD', etc ...

                              comme je t'ai montré dans mon message précédent (tableau[ligne][colonne] = ...)
                              1. Tableau=[]
                                for lignes in tableau:
                                    for colonnes in tableau:
                                        Tableau[lignes][colonnes]==
                                        


                                Je peux remplacer certes ligne et collonne par leur valeurva la main et e rire ceci égale ceci mais ça va être un peu long et je pense pas que c'est la bonne méthode

                                Du coip les listes MT,LT,MD et LD que je vous ai donné plus haut,peux t il m'aider ici dans ce cas?Si oui comment puis je m'en servir
                                • 1
                                • 2
                                • 3