class Jeu:
def __init__(self, N):
self.damier = [[0 for _ in range(N)] for _ in range(N)]
self.N = N
self.damier[N // 2 - 1][N // 2 - 1] = 1
self.damier[N // 2 - 1][N // 2] = 2
self.damier[N // 2][N // 2 - 1] = 2
self.damier[N // 2][N // 2] = 1
def afficher(self):
"""Affiche le damier avec des bordures."""
N = self.N
t = self.damier
print("*" * (N + 4))
print("*" * (N + 4))
for i in range(N):
print("**", end="")
for j in range(N):
if t[i][j] == 0:
print(".", end="")
elif t[i][j] == 1:
print("X", end="")
elif t[i][j] == 2:
print("O", end="")
print("**")
print("*" * (N + 4))
print("*" * (N + 4))
def jouer(self):
"""Permet aux joueurs de jouer à tour de rôle."""
while True:
while True:
try:
joueur = int(input("Qui joue ? (1 ou 2) : "))
if joueur in [1, 2]:
break
else:
print("Veuillez choisir 1 ou 2 uniquement.")
except ValueError:
print("Entrée invalide. Entrez un nombre (1 ou 2).")
while True:
try:
ligne = int(input(f"Donnez le numéro de ligne (1 à {self.N}) : "))
colonne = int(input(f"Donnez le numéro de colonne (1 à {self.N}) : "))
if 1 <= ligne <= self.N and 1 <= colonne <= self.N:
if self.damier[ligne - 1][colonne - 1] == 0:
break
else:
print("La case est déjà occupée. Choisissez une autre.")
else:
print(f"Les coordonnées doivent être entre 1 et {self.N}.")
except ValueError:
print("Entrée invalide. Entrez un nombre.")
self.damier[ligne - 1][colonne - 1] = joueur
self.afficher()
quitter = input("Voulez-vous continuer ? (o/n) : ").lower()
if quitter == "n":
print("Fin de la partie. Merci d'avoir joué !")
break
j = Jeu(6)
j.afficher()
j.jouer()