Le jeu de KHEN

Fermé
monaco7K - Modifié le 5 déc. 2017 à 10:42
mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 - 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()
A voir également:

1 réponse

mamiemando Messages postés 33363 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 16 novembre 2024 7 801
5 déc. 2017 à 10:47
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
0