Advertisement
Guest User

Untitled

a guest
May 20th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. //
  2. // Created by pja on 28/02/2019.
  3. //
  4. #include <stdio.h>
  5. #include "estado.h"
  6. #include "interpretador.h"
  7.  
  8.  
  9. char maisPecas (ESTADO* e) {
  10. char c;
  11. int pontX = 0, pontY = 0, i, j;
  12. for (i = 0; i < 8; i++)
  13. for (j = 0; j < 8; j++){
  14. if (e->grelha[i][j] == VALOR_X) pontX += 1;
  15. if (e->grelha[i][j] == VALOR_O) pontY += 1;
  16. }
  17. if (pontX > pontY) c = 'X';
  18. if (pontX < pontY) c = 'O';
  19. return c;
  20. }
  21.  
  22. void fimJogoFinal (ESTADO e){
  23. if (fimJogo1(&e) == 0 || fimJogo2(&e) == 0)
  24. printf ("O Vencedor é: %c\n", maisPecas(&e));
  25. }
  26.  
  27. //tabuleiro completamente preenchido
  28. int fimJogo1 (ESTADO* e){
  29. int i, j, r = 1;
  30. for (i = 0; i < 8; ++i)
  31. for (j = 0; j < 8; ++j) {
  32. if (e->grelha[i][j] == VAZIA || e->grelha[i][j] == VALIDA) break;
  33. }
  34. if (i == 8 && j == 8) r = 0;
  35. return r;
  36. }
  37.  
  38. int fimJogo2 (ESTADO* e){
  39. int i, j, c, k, r = 1;
  40. valida(e);
  41. for (i = 0; i < 8; ++i)
  42. for (j = 0; j < 8; ++j)
  43. if (e->grelha[i][j] == VALIDA) break;
  44. zerarValida(e);
  45. e->peca = peca_dif(e->peca);
  46. valida(e);
  47. for (c = 0; c < 8; ++c)
  48. for (k = 0; k < 8; ++k)
  49. if (e->grelha[i][j] == VALIDA) break;
  50. zerarValida(e);
  51. if (i == 8 && j == 8 && c == 8 && k == 8) r = 0;
  52. return r;
  53. }
  54.  
  55. //Conta as peças de cada jogador
  56. void pontuacao (ESTADO *e){
  57. int i,j,pontX = 0, pontY = 0;
  58. for (i = 0; i < 8; i++)
  59. for (j = 0; j < 8; j++){
  60. if (e->grelha[i][j] == VALOR_X) pontX += 1;
  61. if (e->grelha[i][j] == VALOR_O) pontY += 1;
  62. }
  63. printf("Pontuacao:\nX: %d\nO: %d\n", pontX, pontY);
  64. }
  65.  
  66. //Põe o tabuleiro todo vazio
  67. void tudoZero(ESTADO *e)
  68. {
  69. int i,j;
  70. for (i = 0; i < 8; ++i)
  71. for (j = 0; j < 8; ++j)
  72. e->grelha[i][j] = VAZIA;
  73. }
  74.  
  75.  
  76. //Inicia o jogo
  77. ESTADO grelha_inicial (ESTADO e, char peca, char modo){
  78. tudoZero(&e);
  79. e.grelha [3][4] = VALOR_X;
  80. e.grelha [4][3] = VALOR_X;
  81. e.grelha [3][3] = VALOR_O;
  82. e.grelha [4][4] = VALOR_O;
  83. e.peca = peca;
  84. e.modo = modo;
  85. return e;
  86. }
  87.  
  88.  
  89. //imprimir tabuleiro
  90. void printa(ESTADO e)
  91. {
  92. printf ("\n");
  93. printf ("%c %c\n", e.modo, valorToChar(e.peca));
  94. printf (" 0 1 2 3 4 5 6 7\n");
  95. char c = ' ';
  96. for (int i = 0; i < 8; i++) {
  97. printf("%d ", i);
  98. for (int j = 0; j < 8; j++) {
  99. switch (e.grelha[i][j]) {
  100. case VALOR_O: {
  101. c = 'O';
  102. break;
  103. }
  104. case VALOR_X: {
  105. c = 'X';
  106. break;
  107. }
  108. case VAZIA: {
  109. c = '-';
  110. break;
  111. }
  112. case VALIDA: {
  113. c = '.';
  114. break;
  115.  
  116. }
  117. case SUGESTAO: {
  118. c = '?';
  119. break;
  120. }
  121. }
  122. printf("%c ", c);
  123.  
  124. }
  125. printf("\n");
  126. }
  127. printf ("\n");
  128. pontuacao(&e);
  129. fimJogoFinal(e);
  130. //afds
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement