# Créé par mateo, le 20/01/2024 en Python 3.7 from turtle import* speed(0) # La fonction dessiner_grille() dessine une grille vide dans la fenêtre de la tortue def quadrillage(): up() goto(x_base,y_base) down() # traits horizontaux : for i in range(8): forward(7*largeur) up() goto(x_base,y_base+i*largeur) down() # traits verticaux : up() goto(x_base,y_base) setheading(90) down() for i in range(9): forward(6*largeur) up() goto(x_base+i*largeur,y_base) down() # affiche le numéro des colonnes sous la grille : for i in range(7): up() goto(x_base+i*largeur+largeur//2,y_base-largeur//2) down() write(str(i)) x_base = -170 y_base = -150 largeur = 50 # Affiche la grille sur l'interface turtle quadrillage() def quadrillage_vide(): g = [[0 for i in range(7)] for i in range(6)] return g # La fonction dessiner_pion(x,y,couleur) ajoute un pion dans la case (a,b ; allant de respectivement de 0 à 6 et 0 à 5 def dessiner_jeton(x, y, couleur): up() goto(x_base + (x + 1) * largeur - largeur // 8, y_base + (y + 1) * largeur - largeur // 2) down() if couleur == 1: # pion ROUGE si couleur=1 : color('red') else: # pion JAUNE si couleur=2 : color('yellow') begin_fill() circle(largeur / 2.5) end_fill() def coup_possible(g,c): return g[5][c]==0 def jouer(g,j,c): l=5 while l>0 and g[l-1][c]==0: l=l-1 g[l][c]=j def vert(g,j,l,c): for i in range(4): if g[l+i][c] != j: return False return True def horiz(g,j,l,c): for i in range(4): if g[l][c+i] != j: return False return True def diag1(g,j,l,c): for i in range(4): if g[l + i][c - i] != j: return False return True def diag2(g,j,l,c): for i in range(4): if g[l + i][c - i] != j: return False return True def victoire(g,j): for l in range(6): for c in range(7): if (c<4 and horiz(g,j,l,c)) or (l<3 and vert(g,j,l,c)) or (c<4 and l<3 and diag1(g,j,l,c)) or (c<2 and l<3 and diag2(g,j,l,c)): return True return False def quadrillage_plein(g): for c in range(7): if g[5][c]==0: return False return True quadrillage = quadrillage_vide() (quadrillage) joueur_actuel = 1 while not (victoire(quadrillage, 1) or victoire(quadrillage, 2) or quadrillage_plein(quadrillage)): (quadrillage) colonne = int(input("choisissez une colonne ")) -1 def afficher_grille(g): for l in range(6): for c in range(7): if g[l][c] != 0: couleur = 1 if g[l][c] == 1 else 2 dessiner_jeton(c, l, couleur) if 0 <= colonne < 7 and coup_possible(quadrillage, colonne): jouer(quadrillage, joueur_actuel, colonne) if victoire(quadrillage, joueur_actuel): (quadrillage) print("Le joueur", {joueur_actuel},"4 a gagné !") elif quadrillage_plein(quadrillage): (quadrillage) print("La partie est nulle.") else: if joueur_actuel == 1: joueur_actuel = 2 else: joueur_actuel = 1 else: print("Coup invalide. Choisissez une colonne valide.") print("Fin de la partie.")