Aide python tkinter à placer plusieurs points dans des cases
Bonjour,
Je cherche a créer un jeu. J'ai besoin d'aide pour placer les points. Je dois pouvoir poser 2 points dans les colonnes 3 sur les cases du coté et 4 au milieux.
import tkinter as tk wind = tk.Tk() canvas = tk.Canvas(wind, width=500, height=500, highlightthickness = 0,bg = "black") canvas.pack() class Interfaces: def __init__(self): """ Initialise les variables de la classe """ self.config_window() def config_window(self): """ Configuration de la fenêtre graphique """ # Nom de la fenêtre wind.title("Games") # Taille de la fenêtre wind.geometry("700x400") # Couleur de la fenêtre wind.config(background = "black") interface = Interfaces() class Player: def __init__(self, color): """ Initialise les variables de la classe """ self.color = color def change_color(self, square): canvas.itemconfig(square, fill=self.color) class Case: def __init__(self, rows=5, columns=10, players=2): """ Initialise les variables de la classe """ self.rows = rows self.columns = columns self.players = players self.squares = [] self.current_player = 0 self.colors = ["red", "blue", "green", "yellow", "orange", "purple", "pink", "white"] self.players_list = [Player(self.colors[i]) for i in range(self.players)] self.square_colors = {} self.carre() def carre(self, color = "red"): """ Création de la grille à base de case """ for i in range(self.columns): for j in range(self.rows): x1 = i * 50 y1 = j * 50 x2 = x1 + 45 - (1 if i == self.columns - 1 else 0) y2 = y1 + 45 - (1 if j == self.rows - 1 else 0) square = canvas.create_rectangle(x1, y1, x2, y2, fill= "black", outline=color) self.squares.append(square) self.square_colors[square] = "black" canvas.tag_bind(square, "<1>", self.color_square) def color_square(self, event): """ Fonction appelée lorsque un carré est cliqué """ square = event.widget.find_closest(event.x, event.y)[0] if self.square_colors[square] != "black": return x, y = event.x, event.y current_player = self.current_player current_color = self.players_list[current_player].color #calculer les coordonnées du coin supérieur gauche de la case x1, y1, x2, y2 = canvas.coords(square) x = x1 + 5 y = y1 + 5 point = canvas.create_oval(x, y, x + 10, y + 10, fill=current_color) self.square_colors[square] = current_color self.current_player = (self.current_player + 1) % self.players try: self.player_label.destroy() except: pass self.player_label = tk.Label(wind, text=f"Joueur {current_player + 1} {current_color}", font=("Helvetica",12), fg=current_color) self.player_label.pack() class Play: def __init__(self, wind): """ Initialise les variables de la classe """ self.wind = wind self.create_widgets() self.start_button = tk.Button(self.wind, text="Commencez", command=self.start_game) self.start_button.pack() def create_widgets(self): """ I """ row_label = tk.Label(self.wind, text="Lignes:") row_label.pack() self.row_entry = tk.Entry(self.wind) self.row_entry.pack() column_label = tk.Label(self.wind, text="Colonnes:") column_label.pack() self.column_entry = tk.Entry(self.wind) self.column_entry.pack() player_label = tk.Label(self.wind, text="Joueurs:",) player_label.pack() self.player_entry = tk.Entry(self.wind) self.player_entry.pack() def start_game(self): self.rows = int(self.row_entry.get()) self.columns = int(self.column_entry.get()) self.players = int(self.player_entry.get()) self.grid = Case(self.rows, self.columns, self.players) play = Play(wind) wind.mainloop()
Merci
Modération : Merci de mettre le code en forme comme expliqué ici
A voir également:
- Aide python tkinter à placer plusieurs points dans des cases
- Placer des points sur une carte - Guide
- Comment insérer des points de suite sur word - Guide
- Citizen code python avis - Accueil - Outils
- Grille tombola vierge à imprimer 50 cases - Télécharger - Création musicale
- Pourquoi je reçois des points d'interrogation à la place des smileys iphone ✓ - Forum Samsung