1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
| from turtle import*
# 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 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
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.") |
Partager