bloodsucker_20 Posted January 1, 2011 at 02:10 PM Report #361107 Posted January 1, 2011 at 02:10 PM pessoal eu tou com um problema e precisava resolver ainda hoje,pois tenho este projecto para entregar ainda hoje... É o seguinte, fiz este jogo do galo para dois jogadores, mas preciso pô-lo para ser jogado contra o computador e não estou a conseguir..alguem me pode ajudar??plz..urgente #include <stdio.h> #include <stdlib.h> #include <conio.h> char matriz[3][3]; char verifica(void) { int i; for(i=0; i<3; i++) //verifica as linhas if(matriz[i][0]==matriz[i][1] && matriz[i][0]==matriz[i][2]) return matriz[i][0]; for(i=0; i<3; i++) //verifica as colunas if(matriz[0][i]==matriz[1][i] && matriz[0][i]==matriz[2][i]) return matriz[0][i]; for(i=0; i<3; i++) // verifica a diagonal if(matriz[0][0]==matriz[1][1] && matriz[1][1]==matriz[2][2]) return matriz[0][0]; for(i=0; 1<3; i++)// verifica a diagonal if(matriz[0][2]==matriz[1][1] && matriz[1][1]==matriz[2][0]) return matriz[0][2]; for(i=0; i<3; i++) // verifica se ha empate if(matriz[0][0]!=' ' && matriz[0][1] !=' ' && matriz[0][2]!=' ' && matriz[1][0] !=' ' && matriz[1][1]!=' ' && matriz[1][2] !=' ' && matriz[2][0]!=' ' && matriz[2][1] !=' ' && matriz[2][2]!=' '); return 'v'; return ' '; } void inicio(void) { int i, j; for(i=0; i<3; i++) for(j=0; j<3; j++) matriz[i][j]=' '; } void jogador1(void) { int x,y; printf("\nVez do jogador 1(Linha/coluna)-> X: \n"); scanf("%d%d", &x, &y); x--; y--; if(matriz[x][y] !=' ') { printf("\n\nPosicao invalida, tenta novamente!! \n\n"); jogador1(); } else matriz[x][y]='x'; } void mostra_matriz(void) { int i; for(i=0; i<3; i++) { printf(" %c | %c | %c ", matriz[i][0], matriz[i][1], matriz[i][2]); if(i!=2) printf("\n ---|---|---\n"); } printf("\n\n\n"); } void jogador2(void) { mostra_matriz(); int x,y; printf("\nVez do jogador 2(Linha/coluna)-> O: \n"); scanf("%d%d", &x, &y); x--; y--; if(matriz[x][y]!=' ') { printf("\n\nPosicao invalida, tenta novamente!!\n\n"); jogador2(); } else matriz[x][y]='o'; } int main (void) { char fim; fim=' '; inicio(); do { printf(" ### J O G O D O G A L O ###\n\n\n"); mostra_matriz(); jogador1(); fim=verifica(); system("cls"); printf(" ### J O G O D O G A L O ###\n\n\n"); if(fim!=' ') break; jogador2(); fim = verifica(); system("cls"); }while(fim==' '); if(fim=='x') { printf("\n\n\n\n\n\n\n\n\n\n ###O JOGADOR 1 GANHOU!!!###\n"); getch();} else if(fim=='o') { printf("\n\n\n\n\n\n\n\n\n\n ###O JOGADOR 2 GANHOU!!!###\n"); getch();} else { printf("\n\n\n\n\n\n\n\n\n\n ###EMPATE!!!###\n"); getch();} main(); getchar(); getchar(); return 0; }
Localhost Posted January 1, 2011 at 03:27 PM Report #361114 Posted January 1, 2011 at 03:27 PM Quais são as dúvidas...? Queres algo muito complexo, com AI avançada? here since 2009
bloodsucker_20 Posted January 1, 2011 at 03:36 PM Author Report #361115 Posted January 1, 2011 at 03:36 PM não nada muito complexo...queria só acrescentar a função (rand()%9)+1 para fazer com que o cpu jogue em vez do jogador 2,mas não sei onde nem como encaixa-la... e tenho que entregar isto aida hoje 😉
bubulindo Posted January 1, 2011 at 03:37 PM Report #361116 Posted January 1, 2011 at 03:37 PM Tá-me a parecer que vais falhar o prazo... include <ai se te avio> Mãe () { }
bloodsucker_20 Posted January 1, 2011 at 03:39 PM Author Report #361117 Posted January 1, 2011 at 03:39 PM então?achas que ninguem me consegue ajudar? 😉 pode até nem ser com essa função mas desde que não seja algo muito elaborado que faça só o jogo ficar "jogador vs computador" já vos fico muito agradecido...
bubulindo Posted January 2, 2011 at 01:49 AM Report #361176 Posted January 2, 2011 at 01:49 AM Eu posso estar errado... mas se te deram um trabalho de programação para fazeres o jogo do Galo com a possibilidade de ser contra o computador, certamente que o professor pretendia que tu programasses um algoritmo para que o computador ganhasse o jogo do Galo e não fazeres a interface gráfica com printfs... Ou achas que, usar a função rand() para o computador jogar é interessante? Para responder à tua dúvida, fazeres algo na interface gráfica a perguntar se vai ser um jogo a dois ou contra o computador, será o primeiro passo. Depois, baseado na escolha do início, quando chamares a função jogador2 vês se é um jogo a dois ou contra o computador para chamar a tua função. Aproveito para te dar uma dica, mesmo que consigas fazer a função toda XPTO para ganhar o jogo do Galo, usares duas funções idênticas, com o mesmo objectivo e com nomes diferentes vai-te render uma chamada de atenção do prof... Quanto à função XPTO, como decides que movimento fazer no jogo do Galo? include <ai se te avio> Mãe () { }
bloodsucker_20 Posted January 2, 2011 at 02:34 AM Author Report #361179 Posted January 2, 2011 at 02:34 AM obrigado pela atenção mas já consegui resolver... 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now