Advertisement
Guest User

Python TICTACTOE

a guest
May 25th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. import random
  2.  
  3. def instructions_jeu():
  4. #Instructions et présentation du jeu
  5. print(
  6. """
  7.  
  8. Bienvenue dans mon super morpion !
  9.  
  10. Vous allez jouer en tapant à chaque tour un chiffre du pavé numérique de 1 à 9. Le nombre
  11. correspondant à la grille sera le même que votre pavé numérique :
  12.  
  13. 7 | 8 | 9
  14. ----------
  15. 4 | 5 | 6
  16. ----------
  17. 1 | 2 | 3
  18.  
  19. Attention... ça commence !!!. \n
  20. """
  21. )
  22.  
  23. def dessin_grille(board): #Affichage de la grille du jeu
  24. print("\n\t", board[7], "|", board[8], "|", board[9])
  25. print("\t","----------")
  26. print("\t",board[4], "|", board[5], "|", board[6])
  27. print("\t","----------")
  28. print("\t",board[1], "|", board[2], "|", board[3])
  29.  
  30. def joueur_qui_commence(): #On fait un petit random pour savoir quel joueur commence
  31. if random.randint(0, 1) == 0:
  32. return 'joueur1'
  33. else:
  34. return 'joueur2'
  35.  
  36. def nouvelle_grille(): #On crée une nouvelle grille
  37. board = []
  38. for square in range(NUM_SQUARES):
  39. board.append(EMPTY)
  40. return board
  41.  
  42. def mouvement_ok(board): #Ici on détermine les mouvements autorisés
  43. moves = []
  44. for square in range(NUM_SQUARES):
  45. if board[square] == EMPTY:
  46. moves.append(square)
  47. return moves
  48.  
  49. def gagnant(board): #Ici on détermine les différentes combinaisons gagnantes
  50. coups_gagnants = ((7, 8, 9), #lignes
  51. (4, 5, 6),
  52. (1, 2, 3),
  53. (7, 4, 1), #colonnes
  54. (8, 5, 2),
  55. (9, 6, 3),
  56. (1, 5, 9), #diagonales
  57. (3, 5, 7))
  58. for row in coups_gagnants:
  59. if board[row[7]] == board[row[8]] == board[row[9]] != EMPTY:
  60. winner = board[row[7]]
  61. return winner
  62. if EMPTY not in board:
  63. return TIE
  64. return None
  65.  
  66. def joueur1_move(board, joueur1): #mouvement du joueur
  67. legal = mouvement_ok(board)
  68. move = None
  69. while move not in legal:
  70. move = ask_number("A toi de jouer ! (1 - 9):", 0, NUM_SQUARES)
  71. if move not in legal:
  72. print("\nCette case est déjà utilisé !!! Choisis en une autre.\n")
  73. print("Parfait...")
  74. return move
  75.  
  76. def prochain_tour(turn): #changement de tour
  77. if turn == X:
  78. return O
  79. else:
  80. return X
  81.  
  82. def bravo_gagnant(le_gagnant, joueur1, joueur2): #On affiche et on félicite le gagnant
  83. if le_gagnant != egalité:
  84. print(le_gagnant, "Gagné!\n")
  85. else:
  86. print("Oh non :(!\n")
  87.  
  88. if le_gagnant == joueur1:
  89. print("Joueur 1 gagne !!!. \n" \
  90. "PUn grand bravo !.")
  91.  
  92. elif le_gagnant == joueur2:
  93. print("Joueur2 gagne !!! \n" \
  94. "Bravo joueur 2 !")
  95.  
  96. elif le_gagnant == egalité:
  97. print("Oh non... Egalité !. \n" \
  98. "C'est balot.")
  99.  
  100.  
  101. def manche():
  102. instructions_jeu()
  103. joueur1, joueur2 = instructions_jeu()
  104. turn = X
  105. board = nouvelle_grille()
  106. display_board(board)
  107. while not le_gagnant(board):
  108. if turn == joueur1:
  109. move = joueur1_move(board, joueur1)
  110. board[move] = joueur1
  111. else:
  112. move = joueur2_move(board, joueur2, joueur1)
  113. board[move] = joueur2
  114. display_board(board)
  115. turn = next_turn(turn)
  116.  
  117. le_gagnant = winner(board)
  118. bravo_gagnant(le_gagnant, joueur2, joueur1)
  119.  
  120.  
  121. # On quitte le programme
  122. manche()
  123. input("\n\nAppuyez sur n'importe quelle touche pour quitter")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement