Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def instructions_jeu():
- #Instructions et présentation du jeu
- print(
- """
- Bienvenue dans mon super morpion !
- Vous allez jouer en tapant à chaque tour un chiffre du pavé numérique de 1 à 9. Le nombre
- correspondant à la grille sera le même que votre pavé numérique :
- 7 | 8 | 9
- ----------
- 4 | 5 | 6
- ----------
- 1 | 2 | 3
- Attention... ça commence !!!. \n
- """
- )
- def dessin_grille(board): #Affichage de la grille du jeu
- print("\n\t", board[7], "|", board[8], "|", board[9])
- print("\t","----------")
- print("\t",board[4], "|", board[5], "|", board[6])
- print("\t","----------")
- print("\t",board[1], "|", board[2], "|", board[3])
- def joueur_qui_commence(): #On fait un petit random pour savoir quel joueur commence
- if random.randint(0, 1) == 0:
- return 'joueur1'
- else:
- return 'joueur2'
- def nouvelle_grille(): #On crée une nouvelle grille
- board = []
- for square in range(NUM_SQUARES):
- board.append(EMPTY)
- return board
- def mouvement_ok(board): #Ici on détermine les mouvements autorisés
- moves = []
- for square in range(NUM_SQUARES):
- if board[square] == EMPTY:
- moves.append(square)
- return moves
- def gagnant(board): #Ici on détermine les différentes combinaisons gagnantes
- coups_gagnants = ((7, 8, 9), #lignes
- (4, 5, 6),
- (1, 2, 3),
- (7, 4, 1), #colonnes
- (8, 5, 2),
- (9, 6, 3),
- (1, 5, 9), #diagonales
- (3, 5, 7))
- for row in coups_gagnants:
- if board[row[7]] == board[row[8]] == board[row[9]] != EMPTY:
- winner = board[row[7]]
- return winner
- if EMPTY not in board:
- return TIE
- return None
- def joueur1_move(board, joueur1): #mouvement du joueur
- legal = mouvement_ok(board)
- move = None
- while move not in legal:
- move = ask_number("A toi de jouer ! (1 - 9):", 0, NUM_SQUARES)
- if move not in legal:
- print("\nCette case est déjà utilisé !!! Choisis en une autre.\n")
- print("Parfait...")
- return move
- def prochain_tour(turn): #changement de tour
- if turn == X:
- return O
- else:
- return X
- def bravo_gagnant(le_gagnant, joueur1, joueur2): #On affiche et on félicite le gagnant
- if le_gagnant != egalité:
- print(le_gagnant, "Gagné!\n")
- else:
- print("Oh non :(!\n")
- if le_gagnant == joueur1:
- print("Joueur 1 gagne !!!. \n" \
- "PUn grand bravo !.")
- elif le_gagnant == joueur2:
- print("Joueur2 gagne !!! \n" \
- "Bravo joueur 2 !")
- elif le_gagnant == egalité:
- print("Oh non... Egalité !. \n" \
- "C'est balot.")
- def manche():
- instructions_jeu()
- joueur1, joueur2 = instructions_jeu()
- turn = X
- board = nouvelle_grille()
- display_board(board)
- while not le_gagnant(board):
- if turn == joueur1:
- move = joueur1_move(board, joueur1)
- board[move] = joueur1
- else:
- move = joueur2_move(board, joueur2, joueur1)
- board[move] = joueur2
- display_board(board)
- turn = next_turn(turn)
- le_gagnant = winner(board)
- bravo_gagnant(le_gagnant, joueur2, joueur1)
- # On quitte le programme
- manche()
- input("\n\nAppuyez sur n'importe quelle touche pour quitter")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement