Tânia.m 0 Denunciar post Postado Fevereiro 5, 2010 Olá pessoal gostaria de poderia me dar uma dica de como resolvo este problema. Qual o modo de jogo? 1- versus 2- solitario Escolhido o modo versus, seu programa deve alternar as jogadas do primeiro e do segundo jogadores. O primeiro jogador será representado no tabuleiro por um ’X’. O segundo por um ’O’. A cada jogada o seu programa deverá: 1. limpar a tela, para tanto utilize o trecho de código, que funciona tanto no windows quanto no linux, if (system("cls")) system("clear"); este trecho requer a biblioteca stdlib.h Modo solitáio No modo solitário usuário e computador devem alternar suas jogadas. A cada jogada o seu programa deverá: 1. limpar a tela; 2. indicar qual símbolo representa cada um dos jogadores; 3. imprimir uma representação do tabuleiro com as casas ocupadas marcadas com ’X’ ou ’O’; Detalhes de Implementação Seu programa deverá implementar uma função de protótipo: int verifica(char tabuleiro[3][3], char *vitoria); que recebe uma matriz de caracteres 3x3, representando um tabuleiro de jogo da velha contendo ’ ’ nas posições vazias ’X’ ou ’O’ nas posições ocupadas, e decidir se o jogo acabou ou não e quem é o vencedor. A função deve retornar 0 se o jogo ainda não acabou e 1 caso o jogo tenha acabado. Neste caso, altere o valor de *vitoria para ’X’ caso o jogador ’X’ seja o vencedor, para ’O’ caso ’O’ seja o vencedor e para ’ ’ caso haja um empate. Dica Você pode usar a seguinte função para mostrar um tabuleiro: void mostra(char tabuleiro[3][3]) { printf("\n"); printf(" %c | %c | %c \n", tabuleiro[0][0], tabuleiro[0][1], tabuleiro[0][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[1][0], tabuleiro[1][1], tabuleiro[1][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[2][0], tabuleiro[2][1], tabuleiro[2][2]); printf("\n"); } Obrigada... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Fevereiro 5, 2010 Tania, você ja começou o trabalho? O que ja tens pronto? Poste uma dúvida específica, não costumamos fazer trabalhos para membros. Se você quiser, posso mover o tópico para: "Ofertas de emprego". Victor Compartilhar este post Link para o post Compartilhar em outros sites
Brown. 1 Denunciar post Postado Fevereiro 5, 2010 http://www.htmlstaff.org/ver.php?id=4191 Compartilhar este post Link para o post Compartilhar em outros sites
Edultra 13 Denunciar post Postado Fevereiro 5, 2010 Ja fiz isso a muuiiittooo tempo atrás, Pode jogar versus, mas o sistema é quem ira jogar as palavras, para isso crie um vetor de strings, onde você armazenas algumas, utilize a função rand para escolher qual palavra, utilize lenght para ver o tamanho e criar as casas das letras a serem preenchidas. Na area de artigos/tutoriais aqui do forum de C tem um exemplo de jogo da forca. Compartilhar este post Link para o post Compartilhar em outros sites
Tânia.m 0 Denunciar post Postado Fevereiro 5, 2010 Tania, você ja começou o trabalho? O que ja tens pronto? Poste uma dúvida específica, não costumamos fazer trabalhos para membros. Se você quiser, posso mover o tópico para: "Ofertas de emprego". Victor Olá Victor já comecei sim a fazer, só que não estou conseguindo ligar o main com a função pois nunca usei ponteiro. Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Fevereiro 6, 2010 Olá Tania, Poste o que ja tem pronto, para te ajudarmos com o problema. Victor Compartilhar este post Link para o post Compartilhar em outros sites
Tânia.m 0 Denunciar post Postado Fevereiro 6, 2010 Ja fiz isso a muuiiittooo tempo atrás, Pode jogar versus, mas o sistema é quem ira jogar as palavras, para isso crie um vetor de strings, onde você armazenas algumas, utilize a função rand para escolher qual palavra, utilize lenght para ver o tamanho e criar as casas das letras a serem preenchidas. Na area de artigos/tutoriais aqui do forum de C tem um exemplo de jogo da forca. Olá Edultra esta dica foi boa mais não posso usar números randômicos e nem usar a biblioteca string, variáveis e global e lenght. Compartilhar este post Link para o post Compartilhar em outros sites
Tânia.m 0 Denunciar post Postado Fevereiro 8, 2010 Olá Tania, Poste o que ja tem pronto, para te ajudarmos com o problema. Victor #include <stdio.h> #include <stdlib.h> void mostra(char tabuleiro[3][3]) { printf("\n"); printf(" %c | %c | %c \n", tabuleiro[0][0], tabuleiro[0][1], tabuleiro[0][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[1][0], tabuleiro[1][1], tabuleiro[1][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[2][0], tabuleiro[2][1], tabuleiro[2][2]); printf("\n"); } int verifica(char tabuleiro[3][3], char *vitoria); char *vitoria[1]; *vitoria[0]='n'; if (tabuleir[0][0][0]==x) && (tabuleiro[0][1][0]==x) && (tabuleiro[0][2][0]==x)) *vitoria[0]='s'; if (tabuleiro[1][0][0]==x) && (tabuleiro[1][1][0]==x) && (tabuleiro[1][2][0]==x)) *vitoria[0]='s'; if (tabuleiro[2][0][0]==x) && (tabuleiro[2][1][0]==x) && (tabuleiro[1][2][0]==x)) *vitoria[0]='s'; if ((tabuleiro[0][0][0]==x) && (tabuleiro[0][1][0]==x) && (tabuleiro[0][2][0]==x)) *vitoria[0]='s'; if ((tabuleiro[1][0][0]==x) && (tabuleiro[1][1][0]==x) && (tabuleiro[1][2][0]==x)) *vitoria[0]='s'; if ((tabuleiro[2][0][0]==x) && (tabuleiro[2][1][0]==x) && (tabuleiro[2][2][0]==x)) *vitoria[0]='s'; if ((tabuleiro[0][0][0]==x) && (tabuleiro[1][1][0]==x) && (tabuleiro[2][2][0]==x)) *vitoria[0]='s'; if ((tabuleiro[0][2][0]==x) && (tabuleiro[1][1][0]==x) && (tabuleiro[2][0][0]==x)) *vitoria[0]='s'; if (*vitoria[0]=='s') return 1; if (*vitoria[0]=='n') return 0; int main (){ char tabuleiro [3][3]; int opcao, i ,j; int jogador1; int jogador2; printf("\n\tQual o modo do jogo? \n"); printf(" \n \t Versus - 1, Solitario - 2: "); scanf("%d", &opcao); if (opcao == 1){ printf(" \nVersus -1\n"); }else if (opcao == 2){ printf(" \nSolitario\n"); }else{ printf("\n Selecao incorreta\n"); printf(" \n Jogar outra Vez "); } for(i=0; i<3; i++){ for(j=0; j<3; j++){ tabuleiro[i][j] = ' '; } mostra(tabuleiro); if(jogador1 == 'x'); printf("\njogador 1",jogador1); printf("\n linha"); scanf("%d",& i); printf("\n coluna"); scanf("%d\n", &j); tabuleiro[ i-1][j-1]; if (system("cls")) system("clear"); if(jogador2 == '0'); printf("jogador2",jogador2); printf("\n linha"); scanf("%d\n", &i); printf("\n coluna"); scanf("%d\n",& j); tabuleiro[ i-1][j-1]; if (system("cls")) system("clear"); } mostra(tabuleiro); system("pause"); return 0; } ele está com um problema na verificação... Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Fevereiro 8, 2010 Você deveria estudar ponteiros. Acho que alguns conceitos básicos não estão muito claros pra você... Primeiro: na primeira linha da função 'verifica', o que você quer dizer com 'char *vitoria[1]', sendo que 'vitoria' é um parametro? Outra, tabuleiro é do tipo: ponteiro para ponteiro para char, pode ser interpretado como um array BIdimensional, não existe uma terceira componente... o que é 'tabuleiro[2][0][0]' ??? Nas comparações, você está usando uma variável que não foi declarada, chamada x, eu acho que você quis dizer 'x' (com aspas simples) do tipo char. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel... 0 Denunciar post Postado Fevereiro 8, 2010 Tania, O negocio está tenso. Seu código está todo paloso. Sem indentação... E depois está cheio de erros básicos: - você vai verificar uma variavel com um caracter você tem que fazer isso: variavel=='s' e não isso: variavel==s - você está tratando seu tabuleiro como se fosse tridimensional: tabuleiro[0][0][0]=='x' Quando um tabuleiro é bidimensional: tabuleiro[x][y]=? Fiz umas correções nessas coisinhas, agora se vira mocinha: #include <stdio.h> #include <stdlib.h> void mostra(char tabuleiro[3][3]) { printf("\n"); printf(" %c | %c | %c \n", tabuleiro[0][0], tabuleiro[0][1], tabuleiro[0][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[1][0], tabuleiro[1][1], tabuleiro[1][2]); printf("-----------\n"); printf(" %c | %c | %c \n", tabuleiro[2][0], tabuleiro[2][1], tabuleiro[2][2]); printf("\n"); } int verifica(char tabuleiro[3][3], char *vitoria) { if ((tabuleiro[0][0]=='x') && (tabuleiro[0][1]=='x') && (tabuleiro[0][2]=='x')) *vitoria='s'; if ((tabuleiro[1][0]=='x') && (tabuleiro[1][1]=='x') && (tabuleiro[1][2]=='x')) *vitoria='s'; if ((tabuleiro[2][0]=='x') && (tabuleiro[2][1]=='x') && (tabuleiro[1][2]=='x')) *vitoria='s'; if ((tabuleiro[0][0]=='x') && (tabuleiro[0][1]=='x') && (tabuleiro[0][2]=='x')) *vitoria='s'; if ((tabuleiro[1][0]=='x') && (tabuleiro[1][1]=='x') && (tabuleiro[1][2]=='x')) *vitoria='s'; if ((tabuleiro[2][0]=='x') && (tabuleiro[2][1]=='x') && (tabuleiro[2][2]=='x')) *vitoria='s'; if ((tabuleiro[0][0]=='x') && (tabuleiro[1][1]=='x') && (tabuleiro[2][2]=='x')) *vitoria='s'; if ((tabuleiro[0][2]=='x') && (tabuleiro[1][1]=='x') && (tabuleiro[2][0]=='x')) *vitoria='s'; if (*vitoria=='s') return 1; if (*vitoria=='n') return 0; } int main (){ char tabuleiro [3][3]; int opcao, i ,j; int jogador1; int jogador2; printf("\n\tQual o modo do jogo? \n"); printf(" \n \t Versus - 1, Solitario - 2: "); scanf("%d", &opcao); if (opcao == 1){ printf(" \nVersus -1\n"); }else if (opcao == 2){ printf(" \nSolitario\n"); }else{ printf("\n Selecao incorreta\n"); printf(" \n Jogar outra Vez "); } for(i=0; i<3; i++){ for(j=0; j<3; j++){ tabuleiro[i][j] = ' '; } mostra(tabuleiro); if(jogador1 == 'x'); printf("\njogador 1",jogador1); printf("\n linha"); scanf("%d",& i); printf("\n coluna"); scanf("%d\n", &j); tabuleiro[ i-1][j-1]; if (system("cls")) system("clear"); if(jogador2 == '0'); printf("jogador2",jogador2); printf("\n linha"); scanf("%d\n", &i); printf("\n coluna"); scanf("%d\n",& j); tabuleiro[ i-1][j-1]; if (system("cls")) system("clear"); } mostra(tabuleiro); system("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites