Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. leurs code:
  2. import os
  3.  
  4. def afficher(plateau):
  5. """
  6. Affiche le plateau de jeu avec les coups joués par les joueurs et les numéros et lettre pour les lignes et colonnes
  7. :param plateau: liste de liste, 0 pour vide, 1 ou 2 pour joueur
  8. :return: None
  9. """
  10. symboles = ['_', 'X', 'O']
  11. s = '\n'
  12. for i in range(3, -1, -1):
  13. s += ' ' + str(i+1) + ' '
  14. for c in plateau[i]:
  15. s += symboles[c] + ' '
  16. s += '\n\n'
  17. s += ' A B C D\n\n'
  18. os.system('clear')
  19. print(s)
  20.  
  21. def nouveau_plateau():
  22. """
  23. Crée le plateau de jeu
  24. :return: liste de liste de dimension 4x4 contenant des 0
  25. """
  26. plateau = []
  27. for i in range(4):
  28. plateau.append([0]*4)
  29. return plateau
  30.  
  31. def coup(plateau, joueur, dernier_coup):
  32. """
  33. Demande un coup au joueur jusqu'à ce qu'il soit valide et le joue en modifiant le plateau
  34. :param plateau: liste de liste, 0 pour vide, 1 ou 2 pour joueur
  35. :param decalage: list d'entiers, représentent le décalage des lignes du plateau
  36. :param joueur: entier, 1 ou 2
  37. :param dernier_coup: string de deux caractères, dernier coup joué
  38. :return: coup joué lors du tour
  39. """
  40. fini = False
  41.  
  42. # demande au joueur d'entrer son coup, vérifie que le coup est correct, et l'effectue
  43. while not fini:
  44. c = input('joueur ' + str(joueur) + ' > ')
  45.  
  46. if len(c) == 2 and c[0] in ['A', 'B', 'C', 'D'] and c[1] in ['1', '2', '3', '4']:
  47.  
  48. # si pas dernier coup, déchiffre le coup pour le plateau
  49. if c[0:2]==dernier_coup:
  50. print("ce coup vient d'être joué")
  51. else:
  52. i = int(c[1]) - 1
  53. j = ['A', 'B', 'C', 'D'].index(c[0])
  54. if plateau[i][j] != joueur:
  55. plateau[i][j] = joueur
  56. fini = True
  57. else:
  58. print('cette case est déjà de votre couleur')
  59.  
  60. else:
  61. print('commande invalide')
  62. return c[0:2]
  63.  
  64. def fin(plateau):
  65. """
  66. Détermine si quelqu'un a gagné
  67. :param plateau: liste de liste, 0 pour vide, 1 ou 2 pour joueur
  68. :return: int, 0 si pas de gagnant, sinon le numéro du joueur gagnant
  69. """
  70. l = []
  71.  
  72. #lignes et colonnes
  73. for i in range(4):
  74. l.append(set(plateau[i]))
  75. l.append(set( [plateau[j][i] for j in range(4)] ))
  76.  
  77. # diagonales
  78. l.append(set( [plateau[i][i] for i in range(4)] ))
  79. l.append(set( [plateau[3-i][i] for i in range(4)] ))
  80.  
  81. # vérifie si gagnant
  82. for s in l:
  83. if len(s)==1 and s != {0}:
  84. g = list(s)[0]
  85. return g
  86. return 0
  87.  
  88.  
  89. def boucle_jeu():
  90. """
  91. Lance une partie entre joueur et les laisse chacun jouer un coup jusqu'à ce qu'il y ait un gagnant
  92. :return: None
  93. """
  94.  
  95. plateau = nouveau_plateau()
  96. joueur = 1 # 1 ou 2
  97. gagnant = 0
  98. dernier_coup = None
  99.  
  100. # continue jusqu'à ce qu'on ait un gagnant
  101. while gagnant==0:
  102. afficher(plateau)
  103. dernier_coup = coup(plateau, joueur, dernier_coup)
  104. gagnant = fin(plateau)
  105. joueur = (joueur%2) + 1
  106. afficher(plateau)
  107. print('joueur', gagnant, 'gagnant')
  108.  
  109.  
  110. if __name__ == "__main__":
  111. boucle_jeu()
  112.  
  113.  
  114.  
  115.  
  116.  
  117. ton code:
  118. import os
  119. def afficher(plateau):
  120. #os.system(cls)
  121. d = {0: '_', 1: 'X', 2: 'O'}
  122. for i in range(4):
  123. print(4 - i, end='\t')
  124. for j in range(4):
  125. print(d[plateau[3-i][j]], end='\t ')
  126. print()
  127. print(' A B C D')
  128. A
  129.  
  130. def win(plateau):
  131. g = [1, 1, 1, 1], [2, 2, 2, 2]
  132. test = 0
  133. for i in range(4):
  134. if plateau[i] in g or [plateau[j][i] for j in range(4)] in g:
  135. test = 1
  136. if (plateau[0][0]==1 and plateau[1][1]==1 and plateau[2][2]==1 and plateau[3][3]==1 or plateau[0][3]==1 and plateau[1][2]==1 and plateau[2][1]==1 and plateau[3][0]==1 or plateau[0][0]==2 and plateau[1][1]==2 and plateau[2][2]==2 and plateau[3][3]==2 or plateau[0][3]==2 and plateau[1][2]==2 and plateau[2][1]==2 and plateau[3][0]==2):
  137. test=1
  138. return test
  139.  
  140.  
  141. def coup_valide(coup_prec, tour, plateau):
  142. valid = 0
  143. while not valid:
  144. coup = input()
  145. if len(coup) != 2 or coup[0] not in ('A', 'B', 'C', 'D') or coup[1] not in ('1', '2', '3', '4'):
  146. print('coup invalide')
  147. elif coup == coup_prec:
  148. print('tu ne peux pas annuler le dernier coup')
  149. else:
  150. i, j = int(coup[1]) - 1, ord(coup[0]) - 65
  151. if plateau[i][j] == tour:
  152. print("tu ne peux pas changer ta propre case")
  153. else:
  154. valid = 1
  155. return coup,i,j
  156.  
  157.  
  158.  
  159.  
  160. def boucle_jeu():
  161. plateau = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
  162. tour = 0
  163. coup_prec = 0
  164. while not win(plateau):
  165. tour = tour % 2 + 1
  166. if tour%2==1:
  167. print("joueur1>")
  168. coup_prec, i, j = coup_valide(coup_prec, tour, plateau)
  169. plateau[i][j] = tour
  170. afficher(plateau)
  171. if tour%2==0:
  172. print("joueur2>")
  173. coup_prec, i, j = coup_valide(coup_prec, tour, plateau)
  174. plateau[i][j] = tour
  175. afficher(plateau)
  176.  
  177. boucle_jeu()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement