Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.54 KB | None | 0 0
  1. print("Szanowni Gracze oto najwspanialsza na świecie wersja gry w kółko i krzyżyk.Plansza składa się z\
  2. 9 pól które są ponumerowe od 1 do 9\n Będziecie na zmianę proszeni o wybór pola. Pierwszy gracz\
  3. będzie używać krzyżyków, drugi gracza będzie używać kółek.\
  4. Pola ponumerowane są według schematu poniżej")\
  5.  
  6. line_1=["1","2","3"]
  7. line_2=["4","5","6"]
  8. line_3=["7","8","9"]
  9.  
  10. def print_board():
  11. print(line_1)
  12. print(line_2)
  13. print(line_3)
  14.  
  15. print_board()
  16. what_is_actually_in_field = []
  17. what_is_not_actually_in_field = ["0","1", "2", "3", "4", "5", "6", "7", "8", "9"]
  18.  
  19.  
  20.  
  21. def is_field_taken():
  22. if move in what_is_actually_in_field: #Move nie jest argumentem funkcji make_move, tylko wartością zmienną w tej funkcji
  23. return True
  24. else:
  25. return False
  26.  
  27. def win_check(current_player):
  28.  
  29. if line_1 == (current_player,current_player,current_player):
  30. return True
  31. elif line_2 == (current_player,current_player,current_player):
  32. return True
  33. elif line_3 == (current_player,current_player,current_player):
  34. return True
  35. elif line_1[0] == current_player and line_2[0] == current_player and line_3[0] == current_player:
  36. return True
  37. elif line_1[1] == current_player and line_2[1] == current_player and line_3[1] == current_player:
  38. return True
  39. elif line_1[2] == current_player and line_2[2] == current_player and line_3[2] == current_player:
  40. return True
  41. elif line_1[0] == current_player and line_2[1] == current_player and line_3[2] == current_player:
  42. return True
  43. elif line_1[2] == current_player and line_2[1] == current_player and line_3[0] == current_player:
  44. return True
  45.  
  46.  
  47. def make_move (player):
  48. global what_is_actually_in_field
  49. global prompt_begin
  50. global sign
  51. global move
  52.  
  53. if player == "X":
  54. prompt_begin = "Pierwszy"
  55. sign = "X"
  56. else:
  57. prompt_begin = "Drugi"
  58. sign = "O"
  59. move = input("{} graczu wybierz prosze cyfre od 1 do 9 aby dodac {}: ".format(prompt_begin,sign))
  60.  
  61. def check_which_field_is_taken (player):
  62. global line_1
  63. global line_2
  64. global line_3
  65. k = 0
  66. while k < 100:
  67. if move == "1":
  68. if is_field_taken() == False:
  69. line_1[0] = player
  70. what_is_actually_in_field.append(move)
  71. what_is_not_actually_in_field.remove(move)
  72. break
  73. else:
  74. print("Pole jest już zajęte")
  75. make_move(player)
  76. elif move == "2":
  77. if is_field_taken() == False:
  78. line_1[1] = player
  79. what_is_actually_in_field.append(move)
  80. what_is_not_actually_in_field.remove(move)
  81. break
  82. else:
  83. print("Pole jest już zajęte")
  84. make_move(player)
  85. elif move == "3":
  86. if is_field_taken() == False:
  87. line_1[2] = player
  88. what_is_actually_in_field.append(move)
  89. what_is_not_actually_in_field.remove(move)
  90. break
  91. else:
  92. print("Pole jest już zajęte")
  93. make_move(player)
  94. elif move == "4":
  95. if is_field_taken() == False:
  96. line_2[0] = player
  97. what_is_actually_in_field.append(move)
  98. what_is_not_actually_in_field.remove(move)
  99. break
  100. else:
  101. print("Pole jest już zajęte")
  102. make_move(player)
  103. elif move == "5":
  104. if is_field_taken() == False:
  105. line_2[1] = player
  106. what_is_actually_in_field.append(move)
  107. what_is_not_actually_in_field.remove(move)
  108. break
  109. else:
  110. print("Pole jest już zajęte")
  111. make_move(player)
  112. elif move=="6":
  113. if is_field_taken() == False:
  114. line_2[2] = player
  115. what_is_actually_in_field.append(move)
  116. what_is_not_actually_in_field.remove(move)
  117. break
  118. else:
  119. print("Pole jest już zajęte")
  120. make_move(player)
  121. elif move =="7":
  122. if is_field_taken() == False:
  123. line_3[0] = player
  124. what_is_actually_in_field.append(move)
  125. what_is_not_actually_in_field.remove(move)
  126. break
  127. else:
  128. print("Pole jest już zajęte")
  129. make_move(player)
  130. elif move == "8":
  131. if is_field_taken() == False:
  132. line_3[1] = player
  133. what_is_actually_in_field.append(move)
  134. what_is_not_actually_in_field.remove(move)
  135. break
  136. else:
  137. print("Pole jest już zajęte")
  138. make_move(player)
  139. elif move == "9":
  140. if is_field_taken() == False:
  141. line_3[2] = player
  142. what_is_actually_in_field.append(move)
  143. what_is_not_actually_in_field.remove(move)
  144. break
  145. else:
  146. print("Pole jest już zajęte")
  147. make_move(player)
  148. else:
  149. print("Graczu wybrałeś cyfrę z poza zakresu 1-9. Spróbuj jeszcze raz")
  150.  
  151. k+= 1
  152.  
  153. ooo_move_digit = 0
  154.  
  155. def ooo_xxx_move (current_player):
  156. global ooo_move_digit
  157. if line_1[0] == current_player and line_1[1] == current_player and "3" not in what_is_actually_in_field:
  158. ooo_move_digit = "3"
  159. # Gdy zamiast funkcji próbuję tylko podać wartość computer_move pojawia się błąd
  160. elif line_1[0] == current_player and line_1[2] == current_player and "2" not in what_is_actually_in_field:
  161. ooo_move_digit = "2"
  162. elif line_1[1] == current_player and line_1[2] == current_player and "1" not in what_is_actually_in_field:
  163. ooo_move_digit = "1"
  164. elif line_2[0] == current_player and line_2[1] == current_player and "6" not in what_is_actually_in_field:
  165. ooo_move_digit = "6"
  166. elif line_2[0] == current_player and line_2[2] == current_player and "5" not in what_is_actually_in_field:
  167. ooo_move_digit = "5"
  168. elif line_2[1] == current_player and line_2[2] == current_player and "4" not in what_is_actually_in_field:
  169. ooo_move_digit = "4"
  170. elif line_3[0] == current_player and line_3[1] == current_player and "9" not in what_is_actually_in_field:
  171. ooo_move_digit = "9"
  172. elif line_2[2] == current_player and line_3[2] == current_player and "3" not in what_is_actually_in_field:
  173. ooo_move_digit = "3"
  174. elif line_1[2] == current_player and line_2[1] == current_player and "3" not in what_is_actually_in_field:
  175. ooo_move_digit = "3"
  176. elif line_3[0] == current_player and line_3[2] == current_player and "8" not in what_is_actually_in_field:
  177. ooo_move_digit = "8"
  178. elif line_3[1] == current_player and line_3[2] == current_player and "7" not in what_is_actually_in_field:
  179. ooo_move_digit = "7"
  180. elif line_1[0] == current_player and line_2[0] == current_player and "7" not in what_is_actually_in_field:
  181. ooo_move_digit = "7"
  182. elif line_1[0] == current_player and line_3[0] == current_player and "4" not in what_is_actually_in_field:
  183. ooo_move_digit = "4"
  184. elif line_2[0] == current_player and line_3[0] == current_player and "1" not in what_is_actually_in_field:
  185. ooo_move_digit = "1"
  186. elif line_1[1] == current_player and line_2[1] == current_player and "8" not in what_is_actually_in_field:
  187. ooo_move_digit = "8"
  188. elif line_1[1] == current_player and line_3[1] == current_player and "5" not in what_is_actually_in_field:
  189. ooo_move_digit = "5"
  190. elif line_2[1] == current_player and line_3[1] == current_player and "2" not in what_is_actually_in_field:
  191. ooo_move_digit = "2"
  192. elif line_1[2] == current_player and line_2[2] == current_player and "9" not in what_is_actually_in_field:
  193. ooo_move_digit = "9"
  194. elif line_1[2] == current_player and line_3[2] == current_player and "6" not in what_is_actually_in_field:
  195. ooo_move_digit = "6"
  196. elif line_1[0] == current_player and line_2[1] == current_player and "9" not in what_is_actually_in_field:
  197. ooo_move_digit = "9"
  198. elif line_1[0] == current_player and line_3[2] == current_player and "5" not in what_is_actually_in_field:
  199. ooo_move_digit = "5"
  200. elif line_2[1] == current_player and line_3[2] == current_player and "1" not in what_is_actually_in_field:
  201. ooo_move_digit = "1"
  202. elif line_1[2] == current_player and line_2[1] == current_player and "7" not in what_is_actually_in_field:
  203. ooo_move_digit = "7"
  204. elif line_1[2] == current_player and line_3[0] == current_player and "5" not in what_is_actually_in_field:
  205. ooo_move_digit = "5"
  206. else:
  207. None
  208.  
  209.  
  210. def random_move ():
  211. import random
  212. random_move = random.choice(what_is_not_actually_in_field)
  213. random_move = str(random_move)
  214. applying_automated_move ("O",random_move)
  215.  
  216.  
  217. def automated_move ():
  218. ooo_xxx_move("O")
  219. if ooo_move_digit != 0:
  220. applying_automated_move("O", ooo_move_digit) #Błąd
  221. return
  222. ooo_xxx_move("X")
  223. if ooo_move_digit != 0:
  224. applying_automated_move("O", ooo_move_digit)
  225. return
  226. random_move()
  227.  
  228.  
  229. def applying_automated_move (current_player,computer_move):
  230. global line_1
  231. global line_2
  232. global line_3
  233. global what_is_actually_in_field
  234.  
  235. if computer_move == "1":
  236. line_1[0] = current_player
  237. elif computer_move == "2":
  238. line_1[1] = current_player
  239. elif computer_move == "3":
  240. line_1[2] = current_player
  241. elif computer_move == "4":
  242. line_2[0] = current_player
  243. elif computer_move == "5":
  244. line_2[1] = current_player
  245. elif computer_move == "6":
  246. line_2[2] = current_player
  247. elif computer_move == "7":
  248. line_3[0] = current_player
  249. elif computer_move == "8":
  250. line_3[1] = current_player
  251. elif computer_move == "9":
  252. line_3[2] = current_player
  253. print ("Comp move:", computer_move)
  254. what_is_actually_in_field.append(computer_move)
  255. what_is_not_actually_in_field.remove(computer_move)
  256.  
  257.  
  258.  
  259. def automated_last_move (player,last_move):
  260. global line_1
  261. global line_2
  262. global line_3
  263. global what_is_actually_in_field
  264.  
  265. k = 0
  266. while k < 100:
  267.  
  268. if last_move == "1":
  269. line_1[0] = player
  270. what_is_actually_in_field.append(last_move)
  271. break
  272. elif last_move == "2":
  273. line_1[1] = player
  274. what_is_actually_in_field.append(last_move)
  275. break
  276. elif last_move == "3":
  277. line_1[2] = player
  278. what_is_actually_in_field.append(last_move)
  279. break
  280. elif last_move == "4":
  281. line_2[0] = player
  282. what_is_actually_in_field.append(last_move)
  283. break
  284. elif last_move == "5":
  285. line_2[1] = player
  286. what_is_actually_in_field.append(last_move)
  287. break
  288. elif last_move == "6":
  289. line_2[2] = player
  290. what_is_actually_in_field.append(last_move)
  291. print ("znacznik 1")
  292. break
  293. elif last_move == "7":
  294. line_3[0] = player
  295. what_is_actually_in_field.append(last_move)
  296. break
  297. elif last_move == "8":
  298. line_3[1] = player
  299. what_is_actually_in_field.append(last_move)
  300. break
  301. elif last_move == "9":
  302. line_3[2] = player
  303. what_is_actually_in_field.append(last_move)
  304. break
  305.  
  306.  
  307. k+= 1
  308. i = 0
  309. while i < 4:
  310.  
  311. print (what_is_actually_in_field)
  312. print(what_is_not_actually_in_field)
  313. make_move("X")
  314. check_which_field_is_taken("X")
  315. print_board()
  316. if win_check("X") == True:
  317. print("Graczu pierwszy wygrałeś. Gratulacje!!!")
  318. break
  319.  
  320. print (what_is_actually_in_field)
  321. print(what_is_not_actually_in_field)
  322. automated_move()
  323. print ("Pole do ataku lub obrony: ", ooo_move_digit)
  324. print ("Wolne pola: ",what_is_not_actually_in_field)# Ruch automatyczny musi zostać wykonany przed ruchem manualnym
  325. print_board()
  326. if win_check("O") is True:
  327. print("Graczu drugi wygrałeś. Gratulacje!!!")
  328. break
  329. i+= 1
  330.  
  331.  
  332. if i == 4:
  333. for last_move in range(1,10):# Mam tu inty od 1 do 9
  334. last_move = str(last_move) # last_move staje się tu stringiem
  335. if last_move not in what_is_actually_in_field:
  336. automated_last_move("X", last_move) # W tej funkcji cyfry są stringami
  337. if win_check("X") is True:
  338. print("Graczu pierwszy wygrałeś. Gratulacje!!!")
  339. else:
  340. print("Żaden z graczy nie wygrał")
  341.  
  342. print_board()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement