# ########################################################################### # Projet : Jeu de dames # Version 1 : programmé par l'humain # Programmeurs : Amine, Chaïma et Moïse # Mai 2026 # nsi.gecif.net # ########################################################################### #FONCTION ET CLASSE from csv import * from turtle import * from time import * setup(800,900) class case: def __init__(self,lettre,chiffre,x,y,couleur): self.présent=0 self.chiffre=chiffre self.lettre=lettre self.x=x self.y=y self.nom =[(self.lettre),self.chiffre] self.couleur=couleur def tracer(self,couleur,taille): up() goto(self.x,self.y) down() color(couleur) down() begin_fill() for i in range(4): fd(taille) rt(90) end_fill() def supprimer(self): goto(self.x,self.y) begin_fill() color('black') for i in range(4): fd(60) rt(90) end_fill() class joueur: def __init__(self,gris,blanc): self.gris=gris self.blanc=blanc class pion: def __init__(self,couleur,x,y,lettre,chiffre): self.couleur=couleur self.x=x self.y=y self.lettre=lettre self.chiffre=chiffre def tracer(self): color(self.couleur) begin_fill() circle(20) end_fill() def paire(nombre): return nombre%2==0 def afficher_les_coordonnée(x, y): for c in cases: if (c.x <= x <= c.x + dizaine) and (c.y - dizaine <= y <= c.y): print("Case cliquée :", c.nom) print("Coordonnées :", x, y) break def pion_supprimer(x,y): """ Paramètres : x=coordonnée du click Valeur renvoyée : y= coordonnée du click""" global pion_lettre_supprimer,pion_couleur_supprimer,pion_chiffre_supprimer for case in cases: if (case.x <= x <= case.x + dizaine) and (case.y - dizaine <= y <= case.y): if joueur1.blanc==1: for pion in pion_blanc: if case.lettre==pion.lettre and case.chiffre==pion.chiffre and case.présent==1: case.supprimer() pion_lettre_supprimer=case.lettre """renvoie les valeur du pion qui à été supprimer""" pion_couleur_supprimer=pion.couleur pion_chiffre_supprimer=case.chiffre elif joueur1.gris==1: for pion in pion_grey: if case.lettre==pion.lettre and case.chiffre==pion.chiffre and case.présent==1: case.supprimer() pion_lettre_supprimer=case.lettre pion_couleur_supprimer=pion.couleur pion_chiffre_supprimer=case.chiffre def pion_placer(x,y): for case in cases: if (case.x <= x <= case.x + dizaine) and (case.y - dizaine <= y <= case.y) : if pion_couleur_supprimer=='white' and case.couleur=='black' and case.présent==0: for pion in pion_blanc: if pion.lettre == chr(ord(pion_lettre_supprimer)+1) and pion.chiffre in (pion_chiffre_supprimer+1,pion_chiffre_supprimer-1): pion.tracer() else: for pion in pion_gris: if pion.lettre == chr(ord(pion_lettre_supprimer)-1) and pion.chiffre in (pion_chiffre_supprimer+1,pion_chiffre_supprimer-1): pion.tracer() pion.tracer() ''' lettre=case.lettre chiffre=case.chiffre def pion_placer(x,y): for case in cases: if (case.x <= x <= case.x + dizaine) and (case.y - dizaine <= y <= case.y): if joueur1.couleur=='grey': pion_blanc.append(pion('white',cases.x,cases.y,case.lettre,case.chiffre))''' def enregistrer(): with ('fichier_de_ jeux','w') as f : for case in cases: write=f.write(f) writerow([case.lettre,case.chiffre,case.présent]) #------------------------------------------------------------------------------# #PROGRAMME PRINCIPAL tracer(0) hideturtle() taille=600 speed(500) demi=taille//2 dizaine=taille//10 cases=[] #définition des 100 case du plateaux dans la liste jeux up() setposition(demi,-demi) variant=0 #------------------------------------------------------------------------------# for g in range(10): lettre = chr(ord('a')+ g) for i in range(10): chiffre = i+1 goto((demi-(dizaine)*(i+1)),(-demi+(dizaine)*(g+1))) x,y=pos() if paire(g)==True : if paire(i)==True: cases.append(case(lettre,chiffre,x,y,1)) cases[variant].tracer('black',dizaine) else: cases.append(case(lettre,chiffre,x,y,0)) cases[variant].tracer('white',dizaine) else: if paire(i)==True: cases.append(case(lettre,chiffre,x,y,0)) cases[variant].tracer('white',dizaine) else: cases.append(case(lettre,chiffre,x,y,1)) cases[variant].tracer('black',dizaine) variant+=1 up() for i in range(10): y = demi - dizaine/2 - i*dizaine goto(demi + 10, y) lettre=chr(ord('j')-i) write(lettre) for i in range(10): x = -demi + dizaine/2 + i*dizaine goto( x , -demi-20) write(10-i) goto(-300,300) for i in range(4): down() fd(600) rt(90) ################################################################################# # ZONE D'INSTANTION DES PIONS---------------------------------------------------# ################################################################################# pion_blanc=[] pion_gris=[] variant_1=0 variant_2=0 up() for case in cases: if case.couleur==1 and case.lettre in ('j','i','h'): case.présent=1 x,y=case.x,case.y goto(x+30,y-50) z,w=pos() pion_gris.append(pion('grey',z,w,case.lettre,case.chiffre)) pion_gris[variant_1].tracer() variant_1+=1 for case in cases: if case.couleur==1 and case.lettre in ('a','b','c'): case.présent=1 x,y=case.x,case.y goto(x+30,y-50) z,w=pos() pion_blanc.append(pion('white',z,w,case.lettre,case.chiffre)) pion_blanc[variant_2].tracer() variant_2+=1 ################################################################################ #DETERMINE LES JOUEURS ################################################################################ print(time) appel=input('choisisser 1 si vous voulez jouer les blanc') if int(appel)==1:#VERIFIE QUEL JOUEUR JOUE LES BLANC ET LES NOIR print('le joueur 1 joue les blanc') joueur1=joueur(0,1) joueur2=joueur(1,0) elif int(appel)==0: print('le joueur 1 joue les gris') joueur1=joueur(1,0) joueur2=joueur(0,1) print(len(cases)) a=time() temps=time()-a print(temps) onscreenclick(pion_supprimer,1) onscreenclick(pion_placer,3) onscreenclick(enregistrer,2) print(cases[3].nom) done()