Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.99 KB | None | 0 0
  1. jogar.bat
  2. @echo off
  3. python jogo_da_velha.py
  4.  
  5. REDAME.md
  6. 4 lines (3 sloc) 328 Bytes
  7.  
  8. jogo_da_velha.py
  9. ################################################
  10. ##### PROGRAMADO POR: LEANDRO MORO #####
  11. ################################################
  12.  
  13. from time import sleep
  14. from random import randint
  15. import sys
  16.  
  17. pts_jogador = 0
  18. pts_pc = 0
  19.  
  20. while True:
  21.  
  22. j = ''
  23. primeiro = ''
  24. p1, p2, p3, p4, p5, p6, p7, p8, p9 = ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
  25. lv = 'livre'
  26. pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9 = lv, lv, lv, lv, lv, lv, lv, lv, lv
  27. jogada = 0
  28. jog_adv = 0
  29. jogada_aleatoria = 0
  30. turnos = 1
  31. vencedor = ''
  32.  
  33. tabuleiro_inicial = '''
  34. --- COMO JOGAR ---
  35. Quando for sua vez, digite o número correspondente à posição no tabuleiro para fazer sua jogada nela.
  36. Por exemplo, digamos que você queira jogar no centro, então você digita 5.
  37. | |
  38. 1 | 2 | 3
  39. _____|_____|_____
  40. | |
  41. 4 | 5 | 6
  42. _____|_____|_____
  43. | |
  44. 7 | 8 | 9
  45. | |
  46. '''
  47.  
  48. print(tabuleiro_inicial)
  49.  
  50. print('Você quer ser o X (xis) ou a O (bola)?', end=' ')
  51.  
  52. while j != 'O' and j != 'X':
  53. j = str(input('Digite X ou O e pressione Enter para escolher: ')).strip().upper()
  54. if j != 'O' and j != 'X':
  55. print('\nEscolha inválida!\n')
  56.  
  57. if j == 'O':
  58. adv = 'X'
  59. print('\nEntão eu fico com o X.')
  60. elif j == 'X':
  61. adv = 'O'
  62. print('\nEntão eu fico com a O.')
  63.  
  64. print('\nQuem joga primeiro?', end=' ')
  65.  
  66. while primeiro != 'EU' and primeiro != 'PC':
  67. instr = 'Digite EU e pressione Enter para você começar, ou digite PC e pressione Enter para eu começar: '
  68. primeiro = str(input(instr)).strip().upper()
  69. if primeiro != 'EU' and primeiro != 'PC':
  70. print('\nEscolha inválida!\n')
  71.  
  72. if primeiro == 'EU':
  73. print('\nEntão você joga primeiro.\n')
  74. elif primeiro == 'PC':
  75. print('\nEntão eu jogo primeiro.\n')
  76.  
  77. def atualizar_tabuleiro():
  78. global p1, p2, p3, p4, p5, p6, p7, p8, p9
  79. tabuleiro = '''
  80. | |
  81. {} | {} | {}
  82. _____|_____|_____
  83. | |
  84. {} | {} | {}
  85. _____|_____|_____
  86. | |
  87. {} | {} | {}
  88. | |
  89. '''.format(p1, p2, p3, p4, p5, p6, p7, p8, p9)
  90. print(tabuleiro)
  91.  
  92. def jogada_j1():
  93. global jogada
  94.  
  95. while True:
  96. try:
  97. jogada = int(input('Digite a posição da sua jogada (1 a 9) e pressione Enter: '))
  98. break
  99. except ValueError:
  100. print('\nValor digitado inválido. Digite um número inteiro de 1 a 9!\n')
  101.  
  102. def rotina_j1():
  103. global jogada
  104. global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
  105.  
  106. msg_ocupado = '\nEste espaço já está ocupado!\n'
  107.  
  108. jogada_j1()
  109.  
  110. while jogada not in range(1, (9 + 1)):
  111. jogada_j1()
  112.  
  113. if jogada not in range(1, (9 + 1)):
  114. print('\nNúmero inválido!\n')
  115.  
  116. while jogada == 1 and pos1 == 'ocupada' or \
  117. jogada == 2 and pos2 == 'ocupada' or \
  118. jogada == 3 and pos3 == 'ocupada' or \
  119. jogada == 4 and pos4 == 'ocupada' or \
  120. jogada == 5 and pos5 == 'ocupada' or \
  121. jogada == 6 and pos6 == 'ocupada' or \
  122. jogada == 7 and pos7 == 'ocupada' or \
  123. jogada == 8 and pos8 == 'ocupada' or \
  124. jogada == 9 and pos9 == 'ocupada':
  125. print(msg_ocupado)
  126. rotina_j1()
  127.  
  128. def atualizar_jogadas_j1():
  129. global jogada
  130. global p1, p2, p3, p4, p5, p6, p7, p8, p9
  131. global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
  132.  
  133. if jogada == 1:
  134. p1 = j
  135. pos1 = 'ocupada'
  136. elif jogada == 2:
  137. p2 = j
  138. pos2 = 'ocupada'
  139. elif jogada == 3:
  140. p3 = j
  141. pos3 = 'ocupada'
  142. elif jogada == 4:
  143. p4 = j
  144. pos4 = 'ocupada'
  145. elif jogada == 5:
  146. p5 = j
  147. pos5 = 'ocupada'
  148. elif jogada == 6:
  149. p6 = j
  150. pos6 = 'ocupada'
  151. elif jogada == 7:
  152. p7 = j
  153. pos7 = 'ocupada'
  154. elif jogada == 8:
  155. p8 = j
  156. pos8 = 'ocupada'
  157. elif jogada == 9:
  158. p9 = j
  159. pos9 = 'ocupada'
  160.  
  161. def atualizar_jogadas_j2():
  162. global jogada, jogada_aleatoria, adv
  163. global p1, p2, p3, p4, p5, p6, p7, p8, p9
  164. global pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8, pos9
  165.  
  166. print('Deixe-me pensar na minha jogada...')
  167. sleep(1.5)
  168. jogada_aleatoria = randint(1, 9)
  169.  
  170. while jogada_aleatoria == 1 and pos1 == 'ocupada' or \
  171. jogada_aleatoria == 2 and pos2 == 'ocupada' or \
  172. jogada_aleatoria == 3 and pos3 == 'ocupada' or \
  173. jogada_aleatoria == 4 and pos4 == 'ocupada' or \
  174. jogada_aleatoria == 5 and pos5 == 'ocupada' or \
  175. jogada_aleatoria == 6 and pos6 == 'ocupada' or \
  176. jogada_aleatoria == 7 and pos7 == 'ocupada' or \
  177. jogada_aleatoria == 8 and pos8 == 'ocupada' or \
  178. jogada_aleatoria == 9 and pos9 == 'ocupada':
  179. jogada_aleatoria = randint(1, 9)
  180.  
  181. print('\nEu jogo na posição {}!'.format(jogada_aleatoria))
  182.  
  183. if jogada_aleatoria == 1:
  184. p1 = adv
  185. pos1 = 'ocupada'
  186. elif jogada_aleatoria == 2:
  187. p2 = adv
  188. pos2 = 'ocupada'
  189. elif jogada_aleatoria == 3:
  190. p3 = adv
  191. pos3 = 'ocupada'
  192. elif jogada_aleatoria == 4:
  193. p4 = adv
  194. pos4 = 'ocupada'
  195. elif jogada_aleatoria == 5:
  196. p5 = adv
  197. pos5 = 'ocupada'
  198. elif jogada_aleatoria == 6:
  199. p6 = adv
  200. pos6 = 'ocupada'
  201. elif jogada_aleatoria == 7:
  202. p7 = adv
  203. pos7 = 'ocupada'
  204. elif jogada_aleatoria == 8:
  205. p8 = adv
  206. pos8 = 'ocupada'
  207. elif jogada_aleatoria == 9:
  208. p9 = adv
  209. pos9 = 'ocupada'
  210.  
  211. def checar_vencedor():
  212. global j, adv, turnos, vencedor, pts_jogador, pts_pc
  213. global p1, p2, p3, p4, p5, p6, p7, p8, p9
  214.  
  215. if p1 == j and p2 == j and p3 == j or \
  216. p1 == j and p4 == j and p7 == j or \
  217. p1 == j and p5 == j and p9 == j or \
  218. p2 == j and p5 == j and p8 == j or \
  219. p3 == j and p5 == j and p7 == j or \
  220. p3 == j and p6 == j and p9 == j or \
  221. p4 == j and p5 == j and p6 == j or \
  222. p7 == j and p8 == j and p9 == j:
  223. print('VOCÊ GANHOU!\n')
  224. pts_jogador += 1
  225. vencedor = 'EU'
  226. turnos = 10
  227.  
  228. if p1 == adv and p2 == adv and p3 == adv or \
  229. p1 == adv and p4 == adv and p7 == adv or \
  230. p1 == adv and p5 == adv and p9 == adv or \
  231. p2 == adv and p5 == adv and p8 == adv or \
  232. p3 == adv and p5 == adv and p7 == adv or \
  233. p3 == adv and p6 == adv and p9 == adv or \
  234. p4 == adv and p5 == adv and p6 == adv or \
  235. p7 == adv and p8 == adv and p9 == adv:
  236. print('EU GANHEI!\n')
  237. pts_pc += 1
  238. vencedor = 'PC'
  239. turnos = 10
  240.  
  241. def atualizar_tudo():
  242. global jogada
  243. global turnos
  244. global vencedor
  245.  
  246. if primeiro == 'EU':
  247. rotina_j1()
  248. atualizar_jogadas_j1()
  249. atualizar_tabuleiro()
  250. checar_vencedor()
  251.  
  252. if turnos == 5:
  253. print('NÓS EMPATAMOS!\n')
  254. turnos = 10
  255. vencedor = 'EMPATE'
  256.  
  257. if vencedor == '':
  258. atualizar_jogadas_j2()
  259. atualizar_tabuleiro()
  260. checar_vencedor()
  261.  
  262. elif primeiro == 'PC':
  263. atualizar_jogadas_j2()
  264. atualizar_tabuleiro()
  265. checar_vencedor()
  266.  
  267. if turnos == 5:
  268. print('NÓS EMPATAMOS!\n')
  269. turnos = 10
  270. vencedor = 'EMPATE'
  271.  
  272. if vencedor == '':
  273. rotina_j1()
  274. atualizar_jogadas_j1()
  275. atualizar_tabuleiro()
  276. checar_vencedor()
  277.  
  278. jogada = 0
  279. turnos += 1
  280.  
  281. while turnos <= 5:
  282. atualizar_tudo()
  283.  
  284. print('-------- PLACAR --------')
  285. print('Você: {} | Computador: {}'.format(pts_jogador, pts_pc))
  286. print('------------------------')
  287.  
  288. while True:
  289. reiniciar = input('\nQuer jogar de novo? Digite S para sim ou N para não: ').lower()
  290.  
  291. if reiniciar in ('s', 'n', '"s"', '"n"'):
  292. break
  293. print('\nResposta inválida!')
  294.  
  295. if reiniciar == 's' or reiniciar == '"s"':
  296. print('\n-----------------------------------------------------')
  297. continue
  298. else:
  299. sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement