Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tânia.m

Jogo da velha

Recommended Posts

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.