Le jeu de KHEN

monaco7K - 5 déc. 2017 à 10:18 - Dernière réponse : mamiemando 28087 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention
- 5 déc. 2017 à 10:47
Bonjour,

J'ai un petit problème. Je dois crée un plateau de 8 cases par 10 constitué de boutons. Je n'arrive pas a créé les boutons pour qu'il aient tous un nom différent. J'utilise acctuellement
tkinter
et je pourrais les créer les un après les autres, mais l'automatiser serait préférable.

Voici le code que j'ai.

from tkinter import *
import tkinter.font as tkfont

Fenetre = Tk() # je cree ma fenetre principale nommer Fenetre
Fenetre.attributes('-topmost')
Fenetre.title("KHET 2.0 Laser Game") # je lui donne un titre

Largeur = Fenetre.winfo_screenwidth()  # je recupere la taille de l'ecran en largeur
Hauteur = Fenetre.winfo_screenheight() # je recupere la taille de l'ecran en hauteur

#################################################################################
################

zone_dessin = Canvas(
    Fenetre,width=Largeur,
    height=Hauteur,
    bg='gray70'
) # je cree un canvas qui est une zonne ou l'on peut dessiner

zone_dessin.pack(side=LEFT) # je la place

plateau = []
for i in range (1, 11):
    for j in range(65, 73):
        plateau.append( [i, chr(j)])
        boutton = Button(
            Fenetre,
            text=' ',
            relief='flat',
            bg='black',
            fg='white',
            width=16,
            height=4,
            command=print(i,j-64)
        )
        boutton_place = zone_dessin.create_window(
            Largeur / 2 - 650 + (i - 1) * 125,
            Hauteur / 2 - 350 + 40 + (j - 65) * 75,
            window=boutton
        )
print(plateau)

Fenetre.mainloop()
Afficher la suite 

1 réponse

Répondre au sujet
mamiemando 28087 Messages postés jeudi 12 mai 2005Date d'inscriptionModérateurStatut 12 décembre 2017 Dernière intervention - 5 déc. 2017 à 10:47
0
Utile
Bonjour,

Merci de soigner l'orthographe et d'utiliser les balises de code (4e bouton au dessus de la boîte dans laquelle tu tapes ton message).

Pour ton problème, je n'ai pas compris si tu parlais du title ou du nom de variable.
- dans le premier cas, il faut juste que tu aies une fonction ou un dictionnaire qui en fonction de i et j t'indique quel titre mettre.
- dans le second cas, il suffit d'enregistrer les boutons dans un dictionnaire

buttons = dict()
for i in range( ... ):
  for j in range( ... ):
    if i not in buttons.keys():
      buttons[i] = dict()
    button = Button( ... )
    buttons[i][j] = button
    ...


Bonne chance
Commenter la réponse de mamiemando