/* Desenvolvido por Adriano Rocha Pereira */ /* e-mail: maxprimenumber@gmail.com */ /* Home Page: http://br.geocities.com/arpmaxprimenumber */ #include void joga_na_tela ( char v[], int a, int k, int *lancefeito ); int main () { int i, k, n, a, entra, analisa, lancefeito; char v[9]; entra=1; while ( entra ) { analisa=3; for ( i = 0 ; i < 9 ; i++ ) v[i]=' '; printf("\n"); printf(" J O G O D A V E L H A \n"); printf("\n"); printf("\n"); printf(" Desenvolvido por |AstroRei| \n"); printf("\n"); printf(" H H \n"); printf(" A1 H A2 H A3 \n"); printf(" H H \n"); printf(" ==================== \n"); printf(" H H \n"); printf(" A4 H A5 H A6 \n"); printf(" H H \n"); printf(" ==================== \n"); printf(" H H \n"); printf(" A7 H A8 H A9 \n"); printf(" H H \n"); for ( i = 0 ; i < 4 ; i++ ) printf("\n"); printf(" O Jogador1 joga com 'X' e o Jogador2 joga com 'O'. \n"); printf("\n"); printf("\n"); printf(" Jogador1, por gentileza, qual lance deseja fazer? A"); scanf("%d", &a); k=0; joga_na_tela ( v, a, k, &lancefeito ); k++; n=1; while ( n ) { printf(" Jogador%d, por gentileza, qual lance deseja fazer? A", ((k%2)+1)); scanf("%d", &a); joga_na_tela ( v, a, k, &lancefeito ); if ( lancefeito ) while ( lancefeito ) { printf(" Esta jogada ja foi feita, por gentileza, escolha outro lance. A"); scanf("%d", &a); joga_na_tela ( v, a, k, &lancefeito ); } k++; if ( ( (v[0] == 'X') && (v[1] == 'X') && (v[2] == 'X') ) || ( (v[3] == 'X') && (v[4] == 'X') && (v[5] == 'X') ) || ( (v[6] == 'X') && (v[7] == 'X') && (v[8] == 'X') ) || ( (v[0] == 'X') && (v[3] == 'X') && (v[6] == 'X') ) || ( (v[1] == 'X') && (v[4] == 'X') && (v[7] == 'X') ) || ( (v[2] == 'X') && (v[5] == 'X') && (v[8] == 'X') ) || ( (v[0] == 'X') && (v[4] == 'X') && (v[8] == 'X') ) || ( (v[2] == 'X') && (v[4] == 'X') && (v[6] == 'X') ) ) { n=0; analisa=0; } if ( ( (v[0] == 'O') && (v[1] == 'O') && (v[2] == 'O') ) || ( (v[3] == 'O') && (v[4] == 'O') && (v[5] == 'O') ) || ( (v[6] == 'O') && (v[7] == 'O') && (v[8] == 'O') ) || ( (v[0] == 'O') && (v[3] == 'O') && (v[6] == 'O') ) || ( (v[1] == 'O') && (v[4] == 'O') && (v[7] == 'O') ) || ( (v[2] == 'O') && (v[5] == 'O') && (v[8] == 'O') ) || ( (v[0] == 'O') && (v[4] == 'O') && (v[8] == 'O') ) || ( (v[2] == 'O') && (v[4] == 'O') && (v[6] == 'O') ) ) { n=0; analisa=1; } if ( k == 9 ) n=0; } if ( analisa == 0 ) { printf(" !!!!! O Jogador1 foi o Grande Vencedor !!!!! \n"); printf("\n"); printf("\n"); } else if ( analisa == 1 ) { printf(" !!!!! O Jogador2 foi o Grande Vencedor !!!!! \n"); printf("\n"); printf("\n"); } else { printf(" !!!!! O Jogo Terminou Sem Vencedor !!!!! \n"); printf("\n"); printf("\n"); } printf("Digite '1' para iniciar um novo jogo, ou '0' para sair "); scanf("%d", &entra); } return 0; } void joga_na_tela ( char v[], int a, int k, int *lancefeito ) { int i, lance; a=a-1; lance=0; if ( ( v[a] == 'X' ) || ( v[a] == 'O' ) ) lance=1; if ( lance == 0 ) { if ( (k%2) == 0 ) v[a]='X'; else v[a]='O'; for ( i = 0 ; i < 5 ; i++ ) printf("\n"); printf(" H H \n"); printf(" %c H %c H %c \n", v[0], v[1], v[2]); printf(" H H \n"); printf(" ================= \n"); printf(" H H \n"); printf(" %c H %c H %c \n", v[3], v[4], v[5]); printf(" H H \n"); printf(" ================= \n"); printf(" H H \n"); printf(" %c H %c H %c \n", v[6], v[7], v[8]); printf(" H H \n"); for ( i = 0 ; i < 8 ; i++ ) printf("\n"); *lancefeito=lance; } else *lancefeito=lance; }