Velha Jedi  1.1
Jogo da velha invencível
ia_util.cpp
Vá para a documentação deste arquivo.
1 
8 #include"ia_util.hpp"
9 #include"../gui/resultado.hpp"
10 
16 bool velha(char tabuleiro[TAM]){
17  int i;
18  for(i=0; i<TAM; ++i)
19  if(tabuleiro[i] == '_')
20  return FALSE;
21  return TRUE;
22 }
23 
31 int analise_do_tabuleiro(GtkWidget **casas, int vez){
32  char *tabuleiro = converte_widgets_para_chars(casas);
33  if (velha(tabuleiro) == TRUE){
34  Resultado resultado(VELHA);
35  return TRUE;
36  }
37  if (fim_de_jogo(tabuleiro) == TRUE){
38  if(vez == PC){
39  Resultado resultado(PC);
40  return TRUE;
41  }else{
42  Resultado resultado(PC);
43  return TRUE;
44  }
45  }
46  return FALSE;
47 }
48 
59 int e_vitoria(char *t, int tipo_peca, int i){
60  char temp[TAM];
61  temp[0] = '\0';
62  sprintf(temp, "%s", t);
63  if(tipo_peca == O)
64  temp[i] = 'O';
65  else
66  temp[i] = 'X';
67  return fim_de_jogo(temp);
68 }
69 
76 int fim_de_jogo(char vetor_t[TAM]){
77  int i;
78  char matriz_t[3][3];
79 
80  converte_vetor_para_matriz(vetor_t, matriz_t);
81 
82  for(i=0; i<3; ++i){
83  if((matriz_t[i][0] == matriz_t[i][1])
84  && (matriz_t[i][0] == matriz_t[i][2])
85  && (matriz_t[i][0] != '_'))
86  return TRUE;
87  if((matriz_t[0][i] == matriz_t[1][i])
88  && (matriz_t[0][i] == matriz_t[2][i])
89  && (matriz_t[0][i] != '_'))
90  return TRUE;
91  }
92  if((matriz_t[0][0] == matriz_t[1][1])
93  && (matriz_t[0][0] == matriz_t[2][2])
94  && (matriz_t[1][1] != '_'))
95  return TRUE;
96  if((matriz_t[0][2] == matriz_t[1][1])
97  && (matriz_t[0][2] == matriz_t[2][0])
98  && (matriz_t[1][1] != '_'))
99  return TRUE;
100  return FALSE;
101 }
char * converte_widgets_para_chars(GtkWidget **casas)
Definition: util.cpp:20
int analise_do_tabuleiro(GtkWidget **casas, int vez)
Definition: ia_util.cpp:31
void converte_vetor_para_matriz(char v[TAM], char m[3][3])
Definition: util.cpp:36
Header para ia_util.cpp.
Classe da janela de resultado.
Definition: resultado.hpp:16
int e_vitoria(char *t, int tipo_peca, int i)
Definition: ia_util.cpp:59
int fim_de_jogo(char vetor_t[TAM])
Definition: ia_util.cpp:76
bool velha(char tabuleiro[TAM])
Definition: ia_util.cpp:16