Jeu du Morpion

Un jeu de morpion où l'utilisateur joue contre une IA.

Code Python :



# Jeu du Morpion - contre l'ordinateur

import random

# Initialisation du plateau (une liste de 9 cases vides)
plateau = [" " for _ in range(9)]

def afficher_plateau():
    """Affiche le plateau du morpion avec les numéros des cases libres"""
    print()
    for i in range(9):
        case = plateau[i] if plateau[i] != " " else str(i+1)
        end_char = " | " if (i % 3) != 2 else "\n"
        print(case, end=end_char)
        if i in [2,5]:
            print("---------")
    print()

def verifier_victoire(symbole):
    """Vérifie si le joueur avec 'symbole' a gagné"""
    combinaisons = [
        (0,1,2), (3,4,5), (6,7,8),  # lignes
        (0,3,6), (1,4,7), (2,5,8),  # colonnes
        (0,4,8), (2,4,6)            # diagonales
    ]
    for a,b,c in combinaisons:
        if plateau[a] == plateau[b] == plateau[c] == symbole:
            return True
    return False

def plateau_plein():
    """Vérifie si le plateau est plein"""
    return " " not in plateau

def coup_ia():
    """L'IA choisit une case libre au hasard"""
    cases_libres = [i for i in range(9) if plateau[i] == " "]
    return random.choice(cases_libres)

# Les Symboles : 
joueur_humain = "X"
joueur_ia = "O"

while True:
    afficher_plateau()
    # Tour du joueur humain
    try:
        coup = int(input(f"Votre tour (joueur {joueur_humain}), choisissez une case (1-9) : ")) - 1 # -1 vu que c'est in range(9) (donc de 0-8)
        if coup < 0 or coup > 8 or plateau[coup] != " ":
            print("Case invalide, réessayez.")
            continue
        plateau[coup] = joueur_humain
    except ValueError:
        print("Veuillez entrer un nombre valide.")
        continue

    if verifier_victoire(joueur_humain):
        afficher_plateau()
        print("Vous avez gagné !")
        break

    if plateau_plein():
        afficher_plateau()
        print("Match nul !")
        break

    # Tour de l'IA
    print("Tour de l'ordinateur...")
    ia_move = coup_ia()
    plateau[ia_move] = joueur_ia

    if verifier_victoire(joueur_ia):
        afficher_plateau()
        print("L'ordinateur a gagné !")
        break

    if plateau_plein():
        afficher_plateau()
        print("Match nul !")
        break


  
Télécharger le script Python

Pour utiliser ce script : télécharge le fichier, puis lance-le avec Python sur ton ordinateur, ou colle le dans ton IDE (ex : Visual Studio Code).