Jeu de scrabble
RésoluTheo_0055 Messages postés 273 Date d'inscription Statut Membre Dernière intervention -
É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
- 1
- 2
- 3
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.
-
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 ? -
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 -
comment faire pour bien placer chacun à sa place
Que veux tu dire ? -
Je parle parle la des bonus
MT
MD
LD
LT -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
Ah ok , tu parles de faire ça graphiquement : dessiner les cases rouges MT sur un damier
de 15 x 15 cases ? -
-
As-tu commencé à coder ? ne serait-ce que pour afficher le damier, par exemple ...
Tu peux afficher ton code ici, en respectant les balises de code, le mode d'emploi ici:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :
def test(): print('test') test() -
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("") -
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
-
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 ? -
Oui je l'ai fait. C'est pourquoi j'ai dit j'arrive à bien placer MT et les chaînes vides mais pas LD
-
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', '', '', '', '', ''] -
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 -
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 -
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.... -
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 ... -
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)] -
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] = ...) -
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