Last active
November 20, 2022 13:50
-
-
Save feyli/8fb48471a57accabf1f3c0f2a1374650 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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