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

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 ?
    0
    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
      0
      1. comment faire pour bien placer chacun à sa place

        Que veux tu dire ?
        0
        1. Je parle parle la des bonus
          MT
          MD
          LD
          LT
          0
          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
            0
            1. Ah ok , tu parles de faire ça graphiquement : dessiner les cases rouges MT sur un damier
              de 15 x 15 cases ?
              0
              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("")
                0
                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
                  0
                  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 ?
                    0
                    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
                      0
                      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', '', '', '', '', '']
                        0
                        1. 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
                          0
                          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.
                            0
                        2. 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....
                          0
                          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 ...
                            0
                            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)]
                              0
                              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] = ...)
                                0
                                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
                                  0
                                  • 1
                                  • 2
                                  • 3