Skip to content

Instantly share code, notes, and snippets.

@feyli
Last active November 20, 2022 13:50
Show Gist options
  • Save feyli/8fb48471a57accabf1f3c0f2a1374650 to your computer and use it in GitHub Desktop.
Save feyli/8fb48471a57accabf1f3c0f2a1374650 to your computer and use it in GitHub Desktop.
import random
def afficher_tableau(tableau):
for i in range(len(tableau)):
print("|", tableau[i][0] or "_", "|", tableau[i][1] or "_", "|", tableau[i][2] or "_", "|")
def plateau_plein(tableau):
return not any([any([not case for case in ligne]) for ligne in tableau])
def verif(tableau, i, j):
return False if tableau[i][j] else True
def gagner(tableau):
for i in range(3):
if tableau[i][0] == tableau[i][1] == tableau[i][2] != '':
return True
if tableau[0][i] == tableau[1][i] == tableau[2][i] != '':
return True
if tableau[0][0] == tableau[1][1] == tableau[2][2] != '':
return True
if tableau[0][2] == tableau[1][1] == tableau[2][0] != '':
return True
return False
def remplir_tableau(tableau, player, i, j):
nouveau_tableau = tableau
nouveau_tableau[i][j] = player
return nouveau_tableau
def joueur(njoueur, tab, symbole):
i = int(input(f"{njoueur}, veuillez indiquer une ligne : ")) - 1
j = int(input("Veuillez maintenant indiquer une colonne : ")) - 1
while not verif(tab, i, j):
print("Cette case est déjà prise")
i = int(input("Veuillez à nouveau indiquer une ligne : ")) - 1
j = int(input("Veuillez maintenant indiquer une colonne : ")) - 1
remplir_tableau(tab, symbole, i, j)
def empty_cells(tableau):
empty_cells_list = []
for i in range(3):
for j in range(3):
if tableau[i][j] == '':
empty_cells_list.append([i, j])
return empty_cells_list
def jeu():
tab = [['' for i in range(3)] for j in range(3)]
joueur1 = str(input("Joueur 1, veuillez entrer votre nom : "))
joueur2 = str(input("Joueur 2, veuillez entrer votre nom : "))
afficher_tableau(tab)
while not plateau_plein(tab) or not gagner(tab):
joueur(joueur1, tab, "X")
afficher_tableau(tab)
if gagner(tab):
print(f"\n{joueur1} a gagné")
break
elif plateau_plein(tab):
print("\nMatch nul")
break
print("")
joueur(joueur2, tab, "O")
afficher_tableau(tab)
if gagner(tab):
print(f"\n{joueur2} a gagné")
break
elif plateau_plein(tab):
print("Match nul")
break
print("")
print("\nMerci d'avoir joué")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment