Jeux morpion

Contenu du snippet

# Définir la grille du jeu de morpion
grille = [
    [" ", " ", " "],
    [" ", " ", " "],
    [" ", " ", " "]
]

# Fonction pour afficher la grille
def afficher_grille(grille):
    for ligne in grille:
        print("|".join(ligne))
    print("n")

# Fonction pour vérifier si une case est vide
def est_vide(x, y):
    return grille[x][y] == " "

# Fonction pour vérifier si un joueur a gagné
def a_gagne(joueur):
    for i in range(3):
        if grille[i][0] == grille[i][1] == grille[i][2] == joueur:
            return True
        if grille[0][i] == grille[1][i] == grille[2][i] == joueur:
            return True
    if grille[0][0] == grille[1][1] == grille[2][2] == joueur:
        return True
    if grille[0][2] == grille[1][1] == grille[2][0] == joueur:
        return True
    return False

# Fonction pour jouer un coup
def jouer_coup(x, y, joueur):
    if est_vide(x, y):
        grille[x][y] = joueur
        return True
    else:
        return False

# Boucle principale du jeu
joueurs = ["X", "O"]
joueur_courant = 0
while True:
    afficher_grille(grille)
    print("Tour du joueur", joueurs[joueur_courant])
    x = int(input("Entrez la coordonnée x : "))
    y = int(input("Entrez la coordonnée y : "))
    if jouer_coup(x, y, joueurs[joueur_courant]):
        if a_gagne(joueurs[joueur_courant]):
            afficher_grille(grille)
            print("Le joueur", joueurs[joueur_courant], "a gagné !")
            break
        elif " " not in [case for ligne in grille for case in ligne]:
            afficher_grille(grille)
            print("Match nul !")
            break
        else:
            joueur_courant = (joueur_courant + 1) % 2
    else:
        print("Cette case est déjà occupée, veuillez choisir une autre case.")

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.