Amélioration d'un code

Utilisateur anonyme - Modifié le 1 mars 2022 à 08:25
yg_be Messages postés 22679 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2024 - 26 févr. 2022 à 19:34
Bonjours à tous je suis nouveau dans ce forum et j'aurais besoin de votre aide s'il vous plait. Récemment on a programmé un jeux de dame en cours est j'ai trouver sa vraiment passionnant, et j'ai décidé de reprendre le code et de l'amélioré, c'est-à-dire faire un jeux de dame à deux joueurs.
1) Les pions doivent être que sur les cases noirs
2) les pions du joueur 1 doivent être placés en haut du damier et les pions du 2 -ème doivent être placés en bas du damier

Logiciel utilisé : Python/tkinter
Voici le code actuel :

# -*- coding: utf-8 -*-


# Dessin d'un damier, de deux joueurs

from tkinter import *
from random import randrange

def damier():
    "dessiner dix lignes de carrés avec décalage alternés"
    y = 0
    while y<10:
        if y % 2 == 0:
            x = 0
        else:
            x = 1
        ligne_de_carres(x*c, y*c)
        y += 1
        
def ligne_de_carres(x,y):
    "dessiner une ligne de carés, de centre (x,y)"
    i = 0
    while i < 5:
        can.create_rectangle(x, y, x+c, y+c, fill='black')
        i += 1
        x += c*2
        
def cercle(x, y, r, coul):
    can.create_oval(x-r, y-r, x+r, y+r, fill=coul)
def pion1():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'red')
def pion2():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'blue')
    
c = 30  # Taille des carrés

fen = Tk()
can = Canvas(fen, width =c*10, height =c*10, bg ='ivory')
can.pack(side =TOP, padx =5, pady =5)
b1 = Button(fen, text ='damier', command =damier)
b1.pack(side =LEFT, padx =3, pady =3)
b2 = Button(fen, text ='pions2', command =pion2)
b2.pack(side =RIGHT, padx =3, pady =3)
b3 = Button(fen, text ='pions1', command =pion1)
b3.pack(side =RIGHT, padx =3, pady =3)
b4 = Button(fen, text="quitter",  command=fen.destroy)
b4.pack()
fen.mainloop()

2 réponses

Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 655
26 févr. 2022 à 09:18
Bonjour
En Python, l’indentation est primordiale, or par défaut le site ne la conserve pas.
Pour la conserver il faut utiliser les balises de code. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
On pourra commencer à essayer de t’aider quand tu auras reposté correctement ton code.
0
Utilisateur anonyme
26 févr. 2022 à 15:20
from tkinter import *
from random import randrange

def damier():
    "dessiner dix lignes de carrés avec décalage alternés"
    y = 0
    while y<10:
        if y % 2 == 0:
            x = 0
        else:
            x = 1
        ligne_de_carres(x*c, y*c)
        y += 1
        
def ligne_de_carres(x,y):
    "dessiner une ligne de carés, de centre (x,y)"
    i = 0
    while i < 5:
        can.create_rectangle(x, y, x+c, y+c, fill='black')
        i += 1
        x += c*2
        
def cercle(x, y, r, coul):
    can.create_oval(x-r, y-r, x+r, y+r, fill=coul)
def pion1():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'red')
def pion2():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'blue')
    
c = 30  # Taille des carrés

fen = Tk()
can = Canvas(fen, width =c*10, height =c*10, bg ='ivory')
can.pack(side =TOP, padx =5, pady =5)
b1 = Button(fen, text ='damier', command =damier)
b1.pack(side =LEFT, padx =3, pady =3)
b2 = Button(fen, text ='pions2', command =pion2)
b2.pack(side =RIGHT, padx =3, pady =3)
b3 = Button(fen, text ='pions1', command =pion1)
b3.pack(side =RIGHT, padx =3, pady =3)
b4 = Button(fen, text="quitter",  command=fen.destroy)
b4.pack()
fen.mainloop()
0
yg_be Messages postés 22679 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2024 > Utilisateur anonyme
26 févr. 2022 à 19:34
bonjour,
as-tu une question ou un soucis avec ce programme?
0
Utilisateur anonyme
26 févr. 2022 à 10:58
Après réctification voici le code :

from tkinter import *
from random import randrange

def damier():
    "dessiner dix lignes de carrés avec décalage alternés"
    y = 0
    while y<10:
        if y % 2 == 0:
            x = 0
        else:
            x = 1
        ligne_de_carres(x*c, y*c)
        y += 1
        
def ligne_de_carres(x,y):
    "dessiner une ligne de carés, de centre (x,y)"
    i = 0
    while i < 5:
        can.create_rectangle(x, y, x+c, y+c, fill='black')
        i += 1
        x += c*2
        
def cercle(x, y, r, coul):
    can.create_oval(x-r, y-r, x+r, y+r, fill=coul)
def pion1():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'red')
def pion2():
    x = c/2 + randrange (10) * c
    y = c/2  + randrange(10) * c
    cercle(x, y, c/3, 'blue')
    
c = 30  # Taille des carrés

fen = Tk()
can = Canvas(fen, width =c*10, height =c*10, bg ='ivory')
can.pack(side =TOP, padx =5, pady =5)
b1 = Button(fen, text ='damier', command =damier)
b1.pack(side =LEFT, padx =3, pady =3)
b2 = Button(fen, text ='pions2', command =pion2)
b2.pack(side =RIGHT, padx =3, pady =3)
b3 = Button(fen, text ='pions1', command =pion1)
b3.pack(side =RIGHT, padx =3, pady =3)
b4 = Button(fen, text="quitter",  command=fen.destroy)
b4.pack()
fen.mainloop()
0
Rejoignez-nous