Baixe o app para aproveitar ainda mais
Prévia do material em texto
void inicia_matriz (char m[3][3]) { int i, j; for (i=0; i<3; i++) for (j=0; j<3; j++) m[i][j] = ' '; } void imprime_matriz (char m[3][3]) { printf ("%c | %c | %c\n", m[0][0], m[0][1], m[0][2]); printf ("---|-----|----\n"); printf ("%c | %c | %c\n", m[1][0], m[1][1], m[1][2]); printf ("---|-----|----\n"); printf ("%c | %c | %c\n", m[2][0], m[2][1], m[2][2]); } int verifica_velha (char m[3][3]) { int i, j; for (i=0; i<3; i++) for (j=0; j<3; j++) if (m[i][j] == ' ') return 0; return 1; } int ganhou (char m[3][3]) { int i, j; int xLinha = 0; int oLinha = 0; int xColuna = 0; int oColuna = 0; int vazios = 0; for (i=0; i<3; i++) { for (j=0; j<3; j++) { if (m[i][j] == 'X') xLinha++; if (m[i][j] == 'O') oLinha++; if (m[j][i] == 'X') xColuna++; if (m[j][i] == 'O') oColuna++; if (m[i][j] == ' ') vazios++; } if ((xLinha == 3) || (xColuna == 3)) return 1; if ((oLinha == 3) || (oColuna == 3)) return 2; xLinha = 0; oLinha = 0; xColuna = 0; oColuna = 0; } if ((m[0][0] == m[1][1]) && (m[0][0] == m[2][2])) { // se as diagonais forem iguais if (m[0][0] == 'X') return 1; else { if (m[0][0] == 'O') return 2; } } if ((m[0][2] == m[1][1]) && (m[2][0] == m[1][1])) { if (m[0][2] == 'X') return 1; else { if (m[0][2] == 'O') return 2; } } if (vazios > 0) { return 3; } return 0; } void mostraPlacar (int placar[3]) { printf("\n\t\tPlacar Atual: "); printf("%d - %d - %d\n\n",placar[0],placar[1],placar[2]); } int main() { char m[3][3]; int jogador; int jogando; int l, c; int peca[2] = {'X', 'O'}; int i; int situacao; int placar[3] = {0,0,0}; inicia_matriz (m); imprime_matriz (m); jogador = 0; printf("Vez do Jogador %c (entre com: linha-coluna): ",peca[jogador]); scanf ("%d-%d", &l, &c); l--; c--; m[l][c] = peca[jogador]; jogando = 1; while (jogando) { mostraPlacar(placar); imprime_matriz (m); situacao = ganhou(m); if (situacao == 3) { if (jogador == 0) jogador = 1; else jogador = 0; printf("Vez do Jogador %c (entre com: linha-coluna): ",peca[jogador]); i = 1; while (i != 2) { scanf ("%d-%d", &l, &c); l--; c--; if (m[l][c] == ' ') { m[l][c] = peca[jogador]; i=2; } else { // já exite uma peca printf("Ja exite uma peca aqui!! Escolha posicao: "); } } } else { if (situacao == 1) { printf("\n\nO jogador 'X' venceu!!"); placar[0]++; } if (situacao == 2) { printf("\n\nO jogador 'O' venceu!!"); placar[2]++; } if (situacao == 0) { printf("\n\nDeu velha..."); placar[1]++; } inicia_matriz (m); printf("\n\nDeseja jogar novamente?? (1-sim, 0-nao): "); scanf("%d",&jogando); } } getch(); return 0; }
Compartilhar