Advertisement
PabloMarques

Jogo da Velha Visualg

Mar 27th, 2015
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.81 KB | None | 0 0
  1. algoritmo "JogoVelha"
  2. // Função :
  3. // Autor :
  4. // Data :
  5. dos
  6. var
  7. jogada:inteiro
  8.  
  9. numeros:vetor[1..13,1..6] de caractere
  10. bloco:vetor[1..13,1..6] de caractere
  11. CONT:inteiro
  12. jogador1,jogador2:caractere
  13. turno:inteiro
  14. CONTINUA:logico
  15. jogo:vetor[1..3,1..3] de inteiro
  16. CONT_JOGO:inteiro
  17. resultado:inteiro
  18. msg:caractere
  19. sair:caractere
  20.  
  21. procedimento mostra_tela_inicial()
  22. inicio
  23. limpatela
  24. escreval("|================================================================================|")
  25. escreval("|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|")
  26. escreval("|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|")
  27. escreval("|MMMMMMMM MMMMM MM MMMMMMMMM M MMM MMMMMMMM MMMMM MMMMMMM MMMMMMM|")
  28. escreval("|MMMMMMM MMMMM MMmM MMMMMMM MM MMMMMMMMM MMMMMMMM MMMMM MMMMMM MMMMMM|")
  29. escreval("|MMM MMM MMMMM MMM MMMMMMMMM MMMMMMMM MMMMM MMMMM MMMMM|")
  30. escreval("|MMMMM MMMMM MMMMMMMMM MMM MMMM MMM MMMMMMMM MMMM MMM MMMM|")
  31. escreval("|M MMMMMMM M NMMMM MMMMMMMMM MMMMMMMM MMMMM MMM MMM|")
  32. escreval("|MM MMMMMM MMMMMMMMMMMM MMMMMM MMMMMMMMM MMMMMMMM MMMMM MM MMMMMMM MM|")
  33. escreval("|M MMMMMM MMMMMMMMMMMMMM MMMMMMM MMM MM MMMMM M MMMMMMMMM M|")
  34. escreval("|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|")
  35. escreval("|MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|")
  36. escreval("|================================================================================|")
  37. escreval("")
  38. escreval("")
  39. fimprocedimento
  40.  
  41. procedimento monta_jogo()
  42. inicio
  43. limpatela
  44. escreval(" s++++++++++++++++++++++++++++++++++++++++++++++++++s ")
  45. escreval(" m ' ' m ")
  46. escreval(" m",bloco[1,1] ,"y",bloco[2,1] ,"y",bloco[3,1] ,"m ",bloco[10,1])
  47. escreval(" m",bloco[1,2] ,"y",bloco[2,2] ,"y",bloco[3,2] ,"m ",bloco[10,2])
  48. escreval(" m",bloco[1,3] ,"y",bloco[2,3] ,"y",bloco[3,3] ,"m ",bloco[10,3])
  49. escreval(" m",bloco[1,4] ,"y",bloco[2,4] ,"y",bloco[3,4] ,"m ",bloco[10,4]," ",jogador1)
  50. escreval(" m",bloco[1,5] ,"y",bloco[2,5] ,"y",bloco[3,5] ,"m ",bloco[10,5])
  51. escreval(" m",bloco[1,6] ,"y",bloco[2,6] ,"y",bloco[3,6] ,"m ",bloco[10,6])
  52. escreval(" m .::::::::::::::h::::::::::::::::h::::::::::::::. m ")
  53. escreval(" m",bloco[4,1] ,"y",bloco[5,1] ,"y",bloco[6,1] ,"m ",bloco[11,1])
  54. escreval(" m",bloco[4,2] ,"y",bloco[5,2] ,"y",bloco[6,2] ,"m ",bloco[11,2])
  55. escreval(" m",bloco[4,3] ,"y",bloco[5,3] ,"y",bloco[6,3] ,"m ",bloco[11,3])
  56. escreval(" m",bloco[4,4] ,"y",bloco[5,4] ,"y",bloco[6,4] ,"m ",bloco[11,4]," ",jogador2)
  57. escreval(" m",bloco[4,5] ,"y",bloco[5,5] ,"y",bloco[6,5] ,"m ",bloco[11,5])
  58. escreval(" m",bloco[4,6] ,"y",bloco[5,6] ,"y",bloco[6,6] ,"m ",bloco[11,6])
  59. escreval(" m .::::::::::::::h::::::::::::::::h::::::::::::::. m ")
  60. escreval(" m",bloco[7,1] ,"y",bloco[8,1] ,"y",bloco[9,1] ,"m ",bloco[12,1])
  61. escreval(" m",bloco[7,2] ,"y",bloco[8,2] ,"y",bloco[9,2] ,"m ",bloco[12,2])
  62. escreval(" m",bloco[7,3] ,"y",bloco[8,3] ,"y",bloco[9,3] ,"m ",bloco[12,3])
  63. escreval(" m",bloco[7,4] ,"y",bloco[8,4] ,"y",bloco[9,4] ,"m ",bloco[12,4])
  64. escreval(" m",bloco[7,5] ,"y",bloco[8,5] ,"y",bloco[9,5] ,"m ",bloco[12,5])
  65. escreval(" m",bloco[7,6] ,"y",bloco[8,6] ,"y",bloco[9,6] ,"m ",bloco[12,6])
  66. escreval(" m . . m ")
  67. escreval(" s++++++++++++++++++++++++++++++++++++++++++++++++++s ")
  68. fimprocedimento
  69. procedimento seta_nome_jogada(nome_jogador:caractere)
  70.  
  71. inicio
  72. se (resultado = 1) entao
  73. numeros[12,1] <- " ........ "
  74. numeros[12,2] <- " ........ "
  75. numeros[12,3] <- " ...... O VENCEDOR É"
  76. numeros[12,4] <- " .. "+jogador1
  77. numeros[12,5] <- " .. "
  78. numeros[12,6] <- " .... "
  79. seta_bloco(12,12)
  80. fimse
  81.  
  82. se (resultado = 2) entao
  83. numeros[12,1] <- " ........ "
  84. numeros[12,2] <- " ........ "
  85. numeros[12,3] <- " ...... O VENCEDOR É"
  86. numeros[12,4] <- " .. "+jogador2
  87. numeros[12,5] <- " .. "
  88. numeros[12,6] <- " .... "
  89. seta_bloco(12,12)
  90. fimse
  91.  
  92. se (resultado = 3) entao
  93. numeros[12,1] <- " ?? ?? ";
  94. numeros[12,2] <- " ?????????????? DEU";
  95. numeros[12,3] <- " ?? ?? ";
  96. numeros[12,4] <- " ?? ?? ";
  97. numeros[12,5] <- " ?????????????? VELHA!";
  98. numeros[12,6] <- " ?? ?? ";
  99. seta_bloco(12,12)
  100. fimse
  101.  
  102. se (resultado = 0) entao
  103. numeros[12,1] <- "";
  104. numeros[12,2] <- "--------------------------";
  105. numeros[12,3] <- "Agora é a sua vez de jogar ";
  106. numeros[12,4] <- nome_jogador;
  107. numeros[12,5] <- "--------------------------";
  108. numeros[12,6] <- "";
  109. seta_bloco(12,12)
  110. fimse
  111. fimprocedimento
  112.  
  113. funcao cpu_joga():inteiro
  114. var
  115. linha2,coluna2,i:inteiro
  116. retorno:inteiro
  117. setado:logico
  118. inicio
  119. //SE FOR A PRIMEIRA JOGADA DA CPU
  120. se (CONT_JOGO = 2) entao
  121. se (jogo[2,2] = 0) entao
  122. retorno <- 5
  123. senao
  124. aleatorio on
  125. aleatorio 1,9
  126. //Só passa se for diferente de 5, que é o selecionado pelo jogaror 1
  127. repita
  128. leia(retorno)
  129. ate (retorno <> 5)
  130. aleatorio off
  131. fimse
  132. senao
  133. //SE FOR QUALQUER OUTRA JOGADA DA CPU
  134. se (setado <> verdadeiro) entao
  135. para linha2 de 1 ate 3 faca
  136. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 2) e (jogo[linha2,3] = 0) entao
  137. se (linha2 = 1) entao
  138. retorno <- 1
  139. fimse
  140. se (linha2 = 2) entao
  141. retorno <- 4
  142. fimse
  143. se (linha2 = 3) entao
  144. retorno <- 7
  145. fimse
  146. setado <- verdadeiro
  147. interrompa
  148. fimse
  149. fimpara
  150. fimse
  151. se (setado <> verdadeiro) entao
  152. para linha2 de 1 ate 3 faca
  153. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 1) e (jogo[linha2,3] = 0) entao
  154. se (linha2 = 1) entao
  155. retorno <- 1
  156. fimse
  157. se (linha2 = 2) entao
  158. retorno <- 4
  159. fimse
  160. se (linha2 = 3) entao
  161. retorno <- 7
  162. fimse
  163. setado <- verdadeiro
  164. interrompa
  165. fimse
  166. fimpara
  167. fimse
  168.  
  169. se ( setado <> verdadeiro) entao
  170. para linha2 de 1 ate 3 faca
  171. se (jogo[linha2,1] = 2) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 0) entao
  172. se (linha2 = 1) entao
  173. retorno <- 3
  174. fimse
  175. se (linha2 = 2) entao
  176. retorno <- 6
  177. fimse
  178. se (linha2 = 3) entao
  179. retorno <- 9
  180. fimse
  181. setado <- verdadeiro
  182. interrompa
  183. fimse
  184. fimpara
  185. fimse
  186. se ( setado <> verdadeiro) entao
  187. para linha2 de 1 ate 3 faca
  188. se (jogo[linha2,1] = 1) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 0) entao
  189. se (linha2 = 1) entao
  190. retorno <- 2
  191. fimse
  192. se (linha2 = 2) entao
  193. retorno <- 5
  194. fimse
  195. se (linha2 = 3) entao
  196. retorno <- 8
  197. fimse
  198. setado <- verdadeiro
  199. interrompa
  200. fimse
  201. fimpara
  202. fimse
  203.  
  204. se ( setado <> verdadeiro) entao
  205. para linha2 de 1 ate 3 faca
  206. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 2) entao
  207. se (linha2 = 1) entao
  208. retorno <- 1
  209. fimse
  210. se (linha2 = 2) entao
  211. retorno <- 4
  212. fimse
  213. se (linha2 = 3) entao
  214. retorno <- 7
  215. fimse
  216. setado <- verdadeiro
  217. interrompa
  218. fimse
  219. fimpara
  220. fimse
  221. se ( setado <> verdadeiro) entao
  222. para linha2 de 1 ate 3 faca
  223. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 1) entao
  224. se (linha2 = 1) entao
  225. retorno <- 1
  226. fimse
  227. se (linha2 = 2) entao
  228. retorno <- 4
  229. fimse
  230. se (linha2 = 3) entao
  231. retorno <- 7
  232. fimse
  233. setado <- verdadeiro
  234. interrompa
  235. fimse
  236. fimpara
  237. fimse
  238. se ( setado <> verdadeiro) entao
  239. para coluna2 de 1 ate 3 faca
  240. se (jogo[1,coluna2] = 2) e (jogo[2,coluna2] = 0) e (jogo[3,coluna2] = 0) entao
  241. se (coluna2 = 1) entao
  242. retorno <- 7
  243. fimse
  244. se (coluna2 = 2) entao
  245. retorno <- 8
  246. fimse
  247. se (coluna2 = 3) entao
  248. retorno <- 9
  249. fimse
  250. setado <- verdadeiro
  251. interrompa
  252. fimse
  253. fimpara
  254. fimse
  255. se ( setado <> verdadeiro) entao
  256. para coluna2 de 1 ate 3 faca
  257. se (jogo[1,coluna2] = 0) e (jogo[2,coluna2] = 0) e (jogo[3,coluna2] = 2) entao
  258. se (coluna2 = 1) entao
  259. retorno <- 1
  260. fimse
  261. se (coluna2 = 2) entao
  262. retorno <- 4
  263. fimse
  264. se (coluna2 = 3) entao
  265. retorno <- 7
  266. fimse
  267. setado <- verdadeiro
  268. interrompa
  269. fimse
  270. fimpara
  271. fimse
  272.  
  273. se ( setado <> verdadeiro) entao
  274. para linha2 de 1 ate 3 faca
  275. se (jogo[linha2,1] = 1) e (jogo[linha2,2] = 1) e (jogo[linha2,3] = 0) entao
  276. se (linha2 = 1) entao
  277. retorno <- 3
  278. fimse
  279. se (linha2 = 2) entao
  280. retorno <- 6
  281. fimse
  282. se (linha2 = 3) entao
  283. retorno <- 9
  284. fimse
  285. setado <- verdadeiro
  286. interrompa
  287. fimse
  288. fimpara
  289. fimse
  290. se ( setado <> verdadeiro) entao
  291. para linha2 de 1 ate 3 faca
  292. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 1) e (jogo[linha2,3] = 1) entao
  293. se (linha2 = 1) entao
  294. retorno <- 1
  295. fimse
  296. se (linha2 = 2) entao
  297. retorno <- 4
  298. fimse
  299. se (linha2 = 3) entao
  300. retorno <- 7
  301. fimse
  302. setado <- verdadeiro
  303. interrompa
  304. fimse
  305. fimpara
  306. fimse
  307. se ( setado <> verdadeiro) entao
  308. para linha2 de 1 ate 3 faca
  309. se (jogo[linha2,1] = 1) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 1) entao
  310. se (linha2 = 1) entao
  311. retorno <- 2
  312. fimse
  313. se (linha2 = 2) entao
  314. retorno <- 5
  315. fimse
  316. se (linha2 = 3) entao
  317. retorno <- 8
  318. fimse
  319. setado <- verdadeiro
  320. interrompa
  321. fimse
  322. fimpara
  323. fimse
  324. se ( setado <> verdadeiro) entao
  325. para coluna2 de 1 ate 3 faca
  326. se (jogo[1,coluna2] = 1) e (jogo[2,coluna2] = 1) e (jogo[3,coluna2] = 0) entao
  327. se (coluna2 = 1) entao
  328. retorno <- 7
  329. fimse
  330. se (coluna2 = 2) entao
  331. retorno <- 8
  332. fimse
  333. se (coluna2 = 3) entao
  334. retorno <- 9
  335. fimse
  336. setado <- verdadeiro
  337. interrompa
  338. fimse
  339. fimpara
  340. fimse
  341. se ( setado <> verdadeiro) entao
  342. para coluna2 de 1 ate 3 faca
  343. se (jogo[1,coluna2] = 0) e (jogo[2,coluna2] = 1) e (jogo[3,coluna2] = 1) entao
  344. se (coluna2 = 1) entao
  345. retorno <- 1
  346. fimse
  347. se (coluna2 = 2) entao
  348. retorno <- 2
  349. fimse
  350. se (coluna2 = 3) entao
  351. retorno <- 3
  352. fimse
  353. setado <- verdadeiro
  354. interrompa
  355. fimse
  356. fimpara
  357. fimse
  358. //PRA NÃO TRAVAR
  359. se (jogo[1,1] = 1) e (jogo[1,2] = 0) e (jogo[1,3] = 2) entao
  360. retorno <- 2
  361. setado <- verdadeiro
  362. fimse
  363. se (jogo[2,1] = 1) e (jogo[2,2] = 0) e (jogo[2,3] = 2) entao
  364. retorno <- 5
  365. setado <- verdadeiro
  366. fimse
  367. se (jogo[3,1] = 1) e (jogo[3,2] = 0) e (jogo[3,3] = 2) entao
  368. retorno <- 8
  369. setado <- verdadeiro
  370. fimse
  371.  
  372. se (jogo[1,1] = 2) e (jogo[1,2] = 0) e (jogo[1,3] = 1) entao
  373. retorno <- 2
  374. setado <- verdadeiro
  375. fimse
  376. se (jogo[2,1] = 2) e (jogo[2,2] = 0) e (jogo[2,3] = 1) entao
  377. retorno <- 5
  378. setado <- verdadeiro
  379. fimse
  380. se (jogo[3,1] = 2) e (jogo[3,2] = 0) e (jogo[3,3] = 1) entao
  381. retorno <- 8
  382. setado <- verdadeiro
  383. fimse
  384.  
  385.  
  386. se (jogo[1,1] = 1) e (jogo[1,2] = 1) e (jogo[1,3] = 0) entao
  387. retorno <- 3
  388. setado <- verdadeiro
  389. fimse
  390. se (jogo[2,1] = 1) e (jogo[2,2] = 1) e (jogo[2,3] = 0) entao
  391. retorno <- 6
  392. setado <- verdadeiro
  393. fimse
  394. se (jogo[3,1] = 1) e (jogo[3,2] = 1) e (jogo[3,3] = 0) entao
  395. retorno <- 9
  396. setado <- verdadeiro
  397. fimse
  398. //PRA NÃO PERDER
  399. se (jogo[1,1] = 1) e (jogo[1,2] = 1) e (jogo[1,3] = 0) entao
  400. retorno <- 3
  401. setado <- verdadeiro
  402. fimse
  403. se (jogo[2,1] = 1) e (jogo[2,2] = 1) e (jogo[2,3] = 0) entao
  404. retorno <- 6
  405. setado <- verdadeiro
  406. fimse
  407. se (jogo[3,1] = 1) e (jogo[3,2] = 1) e (jogo[3,3] = 0) entao
  408. retorno <- 9
  409. setado <- verdadeiro
  410. fimse
  411. se (jogo[1,1] = 0) e (jogo[1,2] = 1) e (jogo[1,3] = 1) entao
  412. retorno <- 1
  413. setado <- verdadeiro
  414. fimse
  415. se (jogo[2,1] = 0) e (jogo[2,2] = 1) e (jogo[2,3] = 1) entao
  416. retorno <- 4
  417. setado <- verdadeiro
  418. fimse
  419. se (jogo[3,1] = 0) e (jogo[3,2] = 1) e (jogo[3,3] = 1) entao
  420. retorno <- 7
  421. setado <- verdadeiro
  422. fimse
  423. se (jogo[1,1] = 1) e (jogo[1,2] = 0) e (jogo[1,3] = 1) entao
  424. retorno <- 2
  425. setado <- verdadeiro
  426. fimse
  427. se (jogo[2,1] = 1) e (jogo[2,2] = 0) e (jogo[2,3] = 1) entao
  428. retorno <- 5
  429. setado <- verdadeiro
  430. fimse
  431. se (jogo[3,1] = 1) e (jogo[3,2] = 0) e (jogo[3,3] = 1) entao
  432. retorno <- 8
  433. setado <- verdadeiro
  434. fimse
  435.  
  436. se (jogo[1,1] = 1) e (jogo[2,1] = 1) e (jogo[3,1] = 0) entao
  437. retorno <- 7
  438. setado <- verdadeiro
  439. fimse
  440. se (jogo[1,2] = 1) e (jogo[2,2] = 1) e (jogo[3,2] = 0) entao
  441. retorno <- 8
  442. setado <- verdadeiro
  443. fimse
  444. se (jogo[1,3] = 1) e (jogo[2,3] = 1) e (jogo[3,3] = 0) entao
  445. retorno <- 9
  446. setado <- verdadeiro
  447. fimse
  448. se (jogo[1,1] = 1) e (jogo[2,1] = 0) e (jogo[3,1] = 1) entao
  449. retorno <- 4
  450. setado <- verdadeiro
  451. fimse
  452. se (jogo[1,2] = 1) e (jogo[2,2] = 0) e (jogo[3,2] = 1) entao
  453. retorno <- 5
  454. setado <- verdadeiro
  455. fimse
  456. se (jogo[1,3] = 1) e (jogo[2,3] = 0) e (jogo[3,3] = 1) entao
  457. retorno <- 6
  458. setado <- verdadeiro
  459. fimse
  460. se (jogo[1,1] = 0) e (jogo[2,1] = 1) e (jogo[3,1] = 1) entao
  461. retorno <- 1
  462. setado <- verdadeiro
  463. fimse
  464. se (jogo[1,2] = 0) e (jogo[2,2] = 1) e (jogo[3,2] = 1) entao
  465. retorno <- 2
  466. setado <- verdadeiro
  467. fimse
  468. se (jogo[1,3] = 0) e (jogo[2,3] = 1) e (jogo[3,3] = 1) entao
  469. retorno <- 3
  470. setado <- verdadeiro
  471. fimse
  472.  
  473. se (jogo[3,1] = 0) e (jogo[2,2] = 1) e (jogo[1,3] = 1) entao
  474. retorno <- 7
  475. setado <- verdadeiro
  476. fimse
  477. se (jogo[3,1] = 1) e (jogo[2,2] = 0) e (jogo[1,3] = 1) entao
  478. retorno <- 5
  479. setado <- verdadeiro
  480. fimse
  481. se (jogo[3,1] = 1) e (jogo[2,2] = 1) e (jogo[1,3] = 0) entao
  482. retorno <- 3
  483. setado <- verdadeiro
  484. fimse
  485. se (jogo[1,1] = 0) e (jogo[2,2] = 1) e (jogo[3,3] = 1) entao
  486. retorno <- 1
  487. setado <- verdadeiro
  488. fimse
  489. se (jogo[1,1] = 1) e (jogo[2,2] = 0) e (jogo[3,3] = 1) entao
  490. retorno <- 5
  491. setado <- verdadeiro
  492. fimse
  493. se (jogo[1,1] = 1) e (jogo[2,2] = 1) e (jogo[3,3] = 0) entao
  494. retorno <- 9
  495. setado <- verdadeiro
  496. fimse
  497. se ( setado <> verdadeiro) entao
  498. para linha2 de 1 ate 3 faca
  499. se (jogo[linha2,1] = 2) e (jogo[linha2,2] = 2) e (jogo[linha2,3] = 0) entao
  500. se (linha2 = 1) entao
  501. retorno <- 3
  502. fimse
  503. se (linha2 = 2) entao
  504. retorno <- 6
  505. fimse
  506. se (linha2 = 3) entao
  507. retorno <- 9
  508. fimse
  509. setado <- verdadeiro
  510. interrompa
  511. fimse
  512. fimpara
  513. fimse
  514. se ( setado <> verdadeiro) entao
  515. para linha2 de 1 ate 3 faca
  516. se (jogo[linha2,1] = 0) e (jogo[linha2,2] = 2) e (jogo[linha2,3] = 2) entao
  517. se (linha2 = 1) entao
  518. retorno <- 1
  519. fimse
  520. se (linha2 = 2) entao
  521. retorno <- 4
  522. fimse
  523. se (linha2 = 3) entao
  524. retorno <- 7
  525. fimse
  526. setado <- verdadeiro
  527. interrompa
  528. fimse
  529. fimpara
  530. fimse
  531. se ( setado <> verdadeiro) entao
  532. para linha2 de 1 ate 3 faca
  533. se (jogo[linha2,1] = 2) e (jogo[linha2,2] = 0) e (jogo[linha2,3] = 2) entao
  534. se (linha2 = 1) entao
  535. retorno <- 2
  536. fimse
  537. se (linha2 = 2) entao
  538. retorno <- 5
  539. fimse
  540. se (linha2 = 3) entao
  541. retorno <- 8
  542. fimse
  543. setado <- verdadeiro
  544. interrompa
  545. fimse
  546. fimpara
  547. fimse
  548. se ( setado <> verdadeiro) entao
  549. para coluna2 de 1 ate 3 faca
  550. se (jogo[1,coluna2] = 2) e (jogo[2,coluna2] = 2) e (jogo[3,coluna2] = 0) entao
  551. se (coluna2 = 1) entao
  552. retorno <- 7
  553. fimse
  554. se (coluna2 = 2) entao
  555. retorno <- 8
  556. fimse
  557. se (coluna2 = 3) entao
  558. retorno <- 9
  559. fimse
  560. setado <- verdadeiro
  561. interrompa
  562. fimse
  563. fimpara
  564. fimse
  565. se ( setado <> verdadeiro) entao
  566. para coluna2 de 1 ate 3 faca
  567. se (jogo[1,coluna2] = 0) e (jogo[2,coluna2] = 2) e (jogo[3,coluna2] = 2) entao
  568. se (coluna2 = 1) entao
  569. retorno <- 1
  570. fimse
  571. se (coluna2 = 2) entao
  572. retorno <- 2
  573. fimse
  574. se (coluna2 = 3) entao
  575. retorno <- 3
  576. fimse
  577. setado <- verdadeiro
  578. interrompa
  579. fimse
  580. fimpara
  581. fimse
  582. se ( setado <> verdadeiro) entao
  583. para coluna2 de 1 ate 3 faca
  584. se (jogo[1,coluna2] = 2) e (jogo[2,coluna2] = 0) e (jogo[3,coluna2] = 2) entao
  585. se (coluna2 = 1) entao
  586. retorno <- 2
  587. fimse
  588. se (coluna2 = 2) entao
  589. retorno <- 5
  590. fimse
  591. se (coluna2 = 3) entao
  592. retorno <- 8
  593. fimse
  594. setado <- verdadeiro
  595. interrompa
  596. fimse
  597. fimpara
  598. fimse
  599. se ( setado <> verdadeiro) entao
  600. se (jogo[2,2] = 2) e (jogo[3,3] = 2) e (jogo[3,1] = 0) entao
  601. retorno <- 1
  602. setado <- verdadeiro
  603. fimse
  604. fimse
  605. se ( setado <> verdadeiro) entao
  606. se (jogo[1,1] = 2) e (jogo[3,1] = 2) e (jogo[3,3] = 0) e (jogo[2,3] = 2) entao
  607. retorno <- 9
  608. setado <- verdadeiro
  609. fimse
  610. fimse
  611. se ( setado <> verdadeiro) entao
  612. se (jogo[1,1] = 2) e (jogo[3,3] = 2) e (jogo[2,2] = 1) e (jogo[2,3] = 0) entao
  613. retorno <- 6
  614. setado <- verdadeiro
  615. fimse
  616. fimse
  617. se ( setado <> verdadeiro) entao
  618. se (jogo[1,1] = 2) e (jogo[2,3] = 2) e (jogo[3,3] = 0) entao
  619. retorno <- 9
  620. setado <- verdadeiro
  621. fimse
  622. fimse
  623. se ( setado <> verdadeiro) entao
  624. se (jogo[1,2] = 2) e (jogo[3,3] = 2) e (jogo[3,1] = 0) entao
  625. retorno <- 7
  626. setado <- verdadeiro
  627. fimse
  628. fimse
  629. se ( setado <> verdadeiro) entao
  630. para i de 1 ate 3 faca
  631. para linha2 de 1 ate 3 faca
  632. se (jogo[i,1] = 2) e (jogo[linha2,2] = 2) e (jogo[1,3] = 0) ou (jogo[2,1] = 2) e (jogo[linha2,3] = 2) e (jogo[1,3] = 0)entao
  633. retorno <- 3
  634. setado <- verdadeiro
  635. fimse
  636. fimpara
  637. fimpara
  638. fimse
  639. se ( setado <> verdadeiro) entao
  640. para i de 1 ate 3 faca
  641. para linha2 de 1 ate 3 faca
  642. se (jogo[i,3] = 2) e (jogo[linha2,2] = 2) e (jogo[1,1] = 0) ou (jogo[2,3] = 2) e (jogo[linha2,1] = 2) e (jogo[1,1] = 0) entao
  643. retorno <- 1
  644. setado <- verdadeiro
  645. fimse
  646. fimpara
  647. fimpara
  648. fimse
  649. //PARA GANHAR
  650. se (jogo[1,1] = 2) e (jogo[1,2] = 2) e (jogo[1,3] = 0) entao
  651. retorno <- 3
  652. setado <- verdadeiro
  653. fimse
  654. se (jogo[2,1] = 2) e (jogo[2,2] = 2) e (jogo[2,3] = 0) entao
  655. retorno <- 6
  656. setado <- verdadeiro
  657. fimse
  658. se (jogo[3,1] = 2) e (jogo[3,2] = 2) e (jogo[3,3] = 0) entao
  659. retorno <- 9
  660. setado <- verdadeiro
  661. fimse
  662.  
  663. se (jogo[1,1] = 0) e (jogo[1,2] = 2) e (jogo[1,3] = 2) entao
  664. retorno <- 1
  665. setado <- verdadeiro
  666. fimse
  667. se (jogo[2,1] = 0) e (jogo[2,2] = 2) e (jogo[2,3] = 2) entao
  668. retorno <- 4
  669. setado <- verdadeiro
  670. fimse
  671. se (jogo[3,1] = 0) e (jogo[3,2] = 2) e (jogo[3,3] = 2) entao
  672. retorno <- 7
  673. setado <- verdadeiro
  674. fimse
  675.  
  676. se (jogo[1,1] = 2) e (jogo[1,2] = 0) e (jogo[1,3] = 2) entao
  677. retorno <- 2
  678. setado <- verdadeiro
  679. fimse
  680. se (jogo[2,1] = 2) e (jogo[2,2] = 0) e (jogo[2,3] = 2) entao
  681. retorno <- 5
  682. setado <- verdadeiro
  683. fimse
  684. se (jogo[3,1] = 2) e (jogo[3,2] = 0) e (jogo[3,3] = 2) entao
  685. retorno <- 8
  686. setado <- verdadeiro
  687. fimse
  688.  
  689. se (jogo[1,1] = 2) e (jogo[2,1] = 2) e (jogo[3,1] = 0) entao
  690. retorno <- 7
  691. setado <- verdadeiro
  692. fimse
  693. se (jogo[1,2] = 2) e (jogo[2,2] = 2) e (jogo[3,2] = 0) entao
  694. retorno <- 8
  695. setado <- verdadeiro
  696. fimse
  697. se (jogo[1,3] = 2) e (jogo[2,3] = 2) e (jogo[3,3] = 0) entao
  698. retorno <- 9
  699. setado <- verdadeiro
  700. fimse
  701. se (jogo[1,1] = 2) e (jogo[2,1] = 0) e (jogo[3,1] = 2) entao
  702. retorno <- 4
  703. setado <- verdadeiro
  704. fimse
  705. se (jogo[1,2] = 2) e (jogo[2,2] = 0) e (jogo[3,2] = 2) entao
  706. retorno <- 5
  707. setado <- verdadeiro
  708. fimse
  709. se (jogo[1,3] = 2) e (jogo[2,3] = 0) e (jogo[3,3] = 2) entao
  710. retorno <- 6
  711. setado <- verdadeiro
  712. fimse
  713. se (jogo[1,1] = 0) e (jogo[2,1] = 2) e (jogo[3,1] = 2) entao
  714. retorno <- 1
  715. setado <- verdadeiro
  716. fimse
  717. se (jogo[1,2] = 0) e (jogo[2,2] = 2) e (jogo[3,2] = 2) entao
  718. retorno <- 2
  719. setado <- verdadeiro
  720. fimse
  721. se (jogo[1,3] = 0) e (jogo[2,3] = 2) e (jogo[3,3] = 2) entao
  722. retorno <- 3
  723. setado <- verdadeiro
  724. fimse
  725.  
  726. se (jogo[3,1] = 0) e (jogo[2,2] = 2) e (jogo[1,3] = 2) entao
  727. retorno <- 7
  728. setado <- verdadeiro
  729. fimse
  730. se (jogo[3,1] = 2) e (jogo[2,2] = 0) e (jogo[1,3] = 2) entao
  731. retorno <- 5
  732. setado <- verdadeiro
  733. fimse
  734. se (jogo[3,1] = 2) e (jogo[2,2] = 2) e (jogo[1,3] = 0) entao
  735. retorno <- 3
  736. setado <- verdadeiro
  737. fimse
  738. se (jogo[1,1] = 0) e (jogo[2,2] = 2) e (jogo[3,3] = 2) entao
  739. retorno <- 1
  740. setado <- verdadeiro
  741. fimse
  742. se (jogo[1,1] = 2) e (jogo[2,2] = 0) e (jogo[3,3] = 2) entao
  743. retorno <- 5
  744. setado <- verdadeiro
  745. fimse
  746. se (jogo[1,1] = 2) e (jogo[2,2] = 2) e (jogo[3,3] = 0) entao
  747. retorno <- 9
  748. setado <- verdadeiro
  749. fimse
  750.  
  751. fimse
  752.  
  753. retorne retorno
  754. fimfuncao
  755.  
  756. procedimento seta_bloco(bloc,num:inteiro)
  757. inicio
  758. para CONT de 1 ate 6 faca
  759. bloco[bloc,CONT] <- numeros[num,CONT]
  760. fimpara
  761. fimprocedimento
  762. procedimento seta_jogo(num:inteiro)
  763. inicio
  764. se (num = 1) entao
  765. jogo[1,1] <- turno
  766. seta_bloco(num,turno+9)
  767. fimse
  768. se (num = 2) entao
  769. jogo[1,2] <- turno
  770. seta_bloco(num,turno+9)
  771. fimse
  772. se (num = 3) entao
  773. jogo[1,3] <- turno
  774. seta_bloco(num,turno+9)
  775. fimse
  776. se (num = 4) entao
  777. jogo[2,1] <- turno
  778. seta_bloco(num,turno+9)
  779. fimse
  780. se (num = 5) entao
  781. jogo[2,2] <- turno
  782. seta_bloco(num,turno+9)
  783. fimse
  784. se (num = 6) entao
  785. jogo[2,3] <- turno
  786. seta_bloco(num,turno+9)
  787. fimse
  788. se (num = 7) entao
  789. jogo[3,1] <- turno
  790. seta_bloco(num,turno+9)
  791. fimse
  792. se (num = 8) entao
  793. jogo[3,2] <- turno
  794. seta_bloco(num,turno+9)
  795. fimse
  796. se (num = 9) entao
  797. jogo[3,3] <- turno
  798. seta_bloco(num,turno+9)
  799. fimse
  800. fimprocedimento
  801.  
  802. //VERIFICA SE AINDA NÃO DEU VELHA E SE ALGUÉM GANHOU
  803. funcao velha():logico
  804. var
  805. linha,coluna:inteiro
  806. retorno:logico
  807. inicio
  808.  
  809. retorno <- verdadeiro
  810. para linha de 1 ate 3 faca
  811. para coluna de 1 ate 3 faca
  812. se (jogo[linha,1]=1) e (jogo[linha,2]=1) e (jogo[linha,3]=1) ou (jogo[1,coluna]=1) e (jogo[2,coluna]=1) e (jogo[3,coluna]=1) ou (jogo[1,1]=1) e (jogo[2,2]=1) e (jogo[3,3]=1) ou (jogo[3,1]=1) e (jogo[2,2]=1) e (jogo[1,3]=1) entao
  813. resultado <- 1
  814. retorno <- falso
  815. fimse
  816. fimpara
  817. fimpara
  818. para linha de 1 ate 3 faca
  819. para coluna de 1 ate 3 faca
  820. se (jogo[linha,1]=2) e (jogo[linha,2]=2) e (jogo[linha,3]=2) ou (jogo[1,coluna]=2) e (jogo[2,coluna]=2) e (jogo[3,coluna]=2) ou (jogo[1,1]=2) e (jogo[2,2]=2) e (jogo[3,3]=2) ou (jogo[3,1]=2) e (jogo[2,2]=2) e (jogo[1,3]=2) entao
  821. resultado <- 2
  822. retorno <- falso
  823. fimse
  824. fimpara
  825. fimpara
  826. se (CONT_JOGO = 10) e ((resultado <> 1) OU (resultado <> 2)) entao
  827. resultado <- 3
  828. retorno <- falso
  829. fimse
  830.  
  831. retorne retorno
  832. fimfuncao
  833.  
  834. //FUNÇÃO QUE VERIFICA SE A JOGADA É VÁLIDA OU NÃO
  835. funcao checa_jogada(num:inteiro):logico
  836. var
  837. retorno:logico
  838. inicio
  839. se (num > 0) e (num < 10) entao
  840. se (num = 1) entao
  841. se(jogo[1,1] = 0) entao
  842. retorno <- verdadeiro
  843. senao
  844. retorno <- falso
  845. fimse
  846. fimse
  847. se (num = 2) entao
  848. se(jogo[1,2] = 0) entao
  849. retorno <- verdadeiro
  850. senao
  851. retorno <- falso
  852. fimse
  853. fimse
  854. se (num = 3) entao
  855. se(jogo[1,3] = 0) entao
  856. retorno <- verdadeiro
  857. senao
  858. retorno <- falso
  859. fimse
  860. fimse
  861. se (num = 4) entao
  862. se(jogo[2,1] = 0) entao
  863. retorno <- verdadeiro
  864. senao
  865. retorno <- falso
  866. fimse
  867. fimse
  868. se (num = 5) entao
  869. se(jogo[2,2] = 0) entao
  870. retorno <- verdadeiro
  871. senao
  872. retorno <- falso
  873. fimse
  874. fimse
  875. se (num = 6) entao
  876. se(jogo[2,3] = 0) entao
  877. retorno <- verdadeiro
  878. senao
  879. retorno <- falso
  880. fimse
  881. fimse
  882. se (num = 7) entao
  883. se(jogo[3,1] = 0) entao
  884. retorno <- verdadeiro
  885. senao
  886. retorno <- falso
  887. fimse
  888. fimse
  889. se (num = 8) entao
  890. se(jogo[3,2] = 0) entao
  891. retorno <- verdadeiro
  892. senao
  893. retorno <- falso
  894. fimse
  895. fimse
  896. se (num = 9) entao
  897. se(jogo[3,3] = 0) entao
  898. retorno <- verdadeiro
  899. senao
  900. retorno <- falso
  901. fimse
  902. fimse
  903. senao
  904. retorno <- falso
  905. fimse
  906.  
  907. retorne retorno
  908. fimfuncao
  909.  
  910. inicio
  911. //SETA OS NÚMEROS INICIAIS PARA MOSTRAR NA TELA DO JOGO
  912. numeros[1,1] <- " 111 ";
  913. numeros[1,2] <- " 1111 ";
  914. numeros[1,3] <- " 11 11 ";
  915. numeros[1,4] <- " 11 ";
  916. numeros[1,5] <- " 11 ";
  917. numeros[1,6] <- " 11 ";
  918. numeros[2,1] <- " 2222 ";
  919. numeros[2,2] <- " 2 2 ";
  920. numeros[2,3] <- " 22 ";
  921. numeros[2,4] <- " 22 ";
  922. numeros[2,5] <- " 22 ";
  923. numeros[2,6] <- " 2222222 ";
  924. numeros[3,1] <- " 333333 ";
  925. numeros[3,2] <- " 333 ";
  926. numeros[3,3] <- " 333333 ";
  927. numeros[3,4] <- " 33 ";
  928. numeros[3,5] <- " 33 ";
  929. numeros[3,6] <- " 333333 ";
  930. numeros[4,1] <- " 444 ";
  931. numeros[4,2] <- " 44 44 ";
  932. numeros[4,3] <- " 44 44 ";
  933. numeros[4,4] <- " 44444444 ";
  934. numeros[4,5] <- " 44 ";
  935. numeros[4,6] <- " 44 ";
  936. numeros[5,1] <- " 5555555 ";
  937. numeros[5,2] <- " 55 ";
  938. numeros[5,3] <- " 555555 ";
  939. numeros[5,4] <- " 55 ";
  940. numeros[5,5] <- " 55 ";
  941. numeros[5,6] <- " 555555 ";
  942. numeros[6,1] <- " 6666 ";
  943. numeros[6,2] <- " 666 ";
  944. numeros[6,3] <- " 6666666 ";
  945. numeros[6,4] <- " 66 66 ";
  946. numeros[6,5] <- " 66 66 ";
  947. numeros[6,6] <- " 666666 ";
  948. numeros[7,1] <- " 77777777 ";
  949. numeros[7,2] <- " 77 ";
  950. numeros[7,3] <- " 77 ";
  951. numeros[7,4] <- " 77 ";
  952. numeros[7,5] <- " 77 ";
  953. numeros[7,6] <- " 77 ";
  954. numeros[8,1] <- " 88888 ";
  955. numeros[8,2] <- " 88 88 ";
  956. numeros[8,3] <- " 88 88 ";
  957. numeros[8,4] <- " 88 88 ";
  958. numeros[8,5] <- " 88 88 ";
  959. numeros[8,6] <- " 88888 ";
  960. numeros[9,1] <- " 999999 ";
  961. numeros[9,2] <- " 99 99 ";
  962. numeros[9,3] <- " 99 99 ";
  963. numeros[9,4] <- " 9999999 ";
  964. numeros[9,5] <- " 999 ";
  965. numeros[9,6] <- " 9999 ";
  966. numeros[10,1] <- " oooooo ";
  967. numeros[10,2] <- " oo oo ";
  968. numeros[10,3] <- " oo oo ";
  969. numeros[10,4] <- " oo oo ";
  970. numeros[10,5] <- " oo oo ";
  971. numeros[10,6] <- " oooo ";
  972. numeros[11,1] <- " xx xx ";
  973. numeros[11,2] <- " xx xx ";
  974. numeros[11,3] <- " x x ";
  975. numeros[11,4] <- " x x ";
  976. numeros[11,5] <- " xx xx ";
  977. numeros[11,6] <- " xx xx ";
  978.  
  979. //MOSTRA A TELA INICIAL E SOLICITA O NOME DOS JOGADORES
  980. mostra_tela_inicial()
  981. escreval("Digite o nome dos jogadores")
  982. escreval("")
  983. escreva("\o/ Jogador 1: ")
  984. leia(jogador1)
  985. escreval("")
  986. escreva("\o/ Jogador 2 ('CPU' para jogar contra o computador): ")
  987. leia(jogador2)
  988.  
  989. //SETA OS BLOCOS COM OS NÚMEROS INICIAIS
  990. seta_bloco(1,1)
  991. seta_bloco(2,2)
  992. seta_bloco(3,3)
  993. seta_bloco(4,4)
  994. seta_bloco(5,5)
  995. seta_bloco(6,6)
  996. seta_bloco(7,7)
  997. seta_bloco(8,8)
  998. seta_bloco(9,9)
  999. seta_bloco(10,10)
  1000. seta_bloco(11,11)
  1001.  
  1002. turno <- 1
  1003. se (turno = 1) entao
  1004. seta_nome_jogada(jogador1)
  1005. senao
  1006. seta_nome_jogada(jogador2)
  1007. fimse
  1008.  
  1009. //CONTADOR PARA VER QUANTAS JOGADAS FORAM FEITAS
  1010. CONT_JOGO <- 1
  1011.  
  1012. CONTINUA <- verdadeiro
  1013.  
  1014. msg <- ""
  1015.  
  1016. enquanto (CONTINUA = verdadeiro) faca
  1017.  
  1018. //VERIFICA SE AINDA NÃO DEU VELHA
  1019. CONTINUA <- velha()
  1020. se(CONTINUA = verdadeiro) entao
  1021. //MONTA O JOGO NA TELA
  1022. monta_jogo()
  1023. escreval(msg)
  1024. escreva("Escolha o local da sua jogada: ")
  1025.  
  1026. //VERIFICA SE ESTÁ JOGANDO CONTRA A CPU E FAZ A JOGADA
  1027. se (jogador2 = "CPU") e (turno = 2) entao
  1028. jogada <- cpu_joga()
  1029. senao
  1030. leia(jogada)
  1031. fimse
  1032. //VERIFICA SE É UMA JOGADA VÁLIDA
  1033. se (checa_jogada(jogada) = verdadeiro) entao
  1034. seta_jogo(jogada)
  1035. msg<-""
  1036. //ADICIONA JOGADA AO CONTADOR
  1037. CONT_JOGO <- CONT_JOGO + 1
  1038. //MUDA O TURNO DA JOGADA
  1039. se (turno = 1) entao
  1040. turno <- 2
  1041. senao
  1042. turno <- 1
  1043. fimse
  1044.  
  1045. //SETA NOME DO JOGADOR
  1046. se (turno = 1) entao
  1047. seta_nome_jogada(jogador1)
  1048. senao
  1049. seta_nome_jogada(jogador2)
  1050. fimse
  1051. senao
  1052. msg <- "Você selecionou uma jogada inválida!"
  1053. fimse
  1054.  
  1055. fimse
  1056. fimenquanto
  1057. se (turno = 1) entao
  1058. seta_nome_jogada(jogador1)
  1059. senao
  1060. seta_nome_jogada(jogador2)
  1061. fimse
  1062. //MONTA O JOGO FINALIZADO NA TELA
  1063. monta_jogo()
  1064. //SOLICITA ALGUMA TECLA PARA SAIR
  1065. escreval("Pressione qualquer tecla para sair.")
  1066. leia(sair)
  1067. fimalgoritmo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement