Ir ao conteúdo

Posts recomendados

Postado

Preciso de ajuda com uma questão de codigo em C.

Um jogo de senha onde o jogador 1 digita 4 letras entre (a, b, c, d, e, f) sem repetir em qualquer ordem. O jogador 2 tenta encontrar a sequencia digitada e na ordem digitada.

para cada tentativa o programa retorna “x” ou “o”.
”o” - Acertar a letra mais errou a posição
”x” - Acertar letra e posição 
máximo 10 tentativas.

 

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <string.h>
#include <ctype.h>

int main(void){

int Jogador1,Jogador2;    

char res [6];
    
    int cont_jogadas;
do{
    cont_jogadas = 1;

do{
    //aqui e onde acontecera as jogadas
    printf("\nJogador1 :\n");
     printf ("\nDigite 4 letras de A ate F\n");
    scanf("%s" , &res);

}
while(cont_jogadas<=10);
printf("\nDeseja jogar novamente?[S-N]\n");
scanf("%s",&res);

}while(res=='s');
return 0;
}

 

Fiz isso ate agora, mas tenho certeza que n esta correto, qualquer ajuda sera bem vinda 🙂 ...

  • Curtir 1
Postado

@ghost190 @ghost190     primeiro você precisa então pegar as Quatro letras  e verificar se não se repetem , e depois  as tentativas de acertar ,  e essa primeira parte de informar as quatro letras iniciais , poderia ser assim :

/*
  Um jogo de senha onde o jogador 1 digita 4 letras entre (a, b, c, d, e, f)
  sem repetir em qualquer ordem. O jogador 2 tenta encontrar a
  sequencia digitada e na ordem digitada.
  para cada tentativa o programa retorna “x” ou “o”.
  ”o” - Acertar a letra mais errou a posição
  ”x” - Acertar letra e posição
  máximo 10 tentativas.
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <string.h>
#include <windows.h>
#include <ctype.h>
int main(void)
{
  HANDLE _h = GetStdHandle(STD_OUTPUT_HANDLE);
  int letra_antes, fundo_antes;
  CONSOLE_SCREEN_BUFFER_INFO c;
  if(GetConsoleScreenBufferInfo(_h, &c))
  {
    letra_antes = ( c.wAttributes & 0xFF) & 0x0F;    /// as cores antes
    fundo_antes = ((c.wAttributes & 0xFF) >> 4) & 0x0F;
  }
  int Jogador1,Jogador2,j,i;
  char res[7] = {0};
  int cont_jogadas,cont = 0,flg;
  do
  {
    cont_jogadas = 0;
    do                                                ///aqui e onde pega as quatro letra
    {                                                 /// escolher os Quatrol numerus
      l1:
      printf("Jogador1 :\n");
      printf ("Digite a %d Letra , das 4 letras de A ate F ",cont + 1 );
      scanf("%s" , & res[cont]);                      /// string não precisa do & de endereco da variavel
      if(res[cont] < 'a' || res[cont] > 'f' )goto l1; /// se a letra estiver fora de faixa
      flg = 0;
      for(j=0; j<6; j++)
      {
        if(res[j] == res[cont] && j != cont)          /// se a letra já foi inserida
        {
          flg = 1;                                    /// marca como repetida
          break;                                      /// sai desse loop
        }
      }
      if(flg == 1)goto l1;                            /// se a letra ja foi inserida volta e pega outra
      cont++;                                         /// incrementa a posicao no vetor
    } while( cont < 4 );                              /// serao Quatros numero
    SetConsoleTextAttribute(_h , 15 + ( 12 << 4 ) );
    printf("\n\nAs Letras InformaDas\n\n");
    for(i=0 ; i<4; i++)printf("%3c   \n",res[i]);
    printf("\n");


    /// aqui e onde acontecera as jogadas
    /// pegar as Letras do outro usuArio
    /// testar se confere ou não


    printf("\nDeseja jogar novamente ?  [ S - N ]  ");
    scanf("%s", & res[6] );
    SetConsoleTextAttribute(_h , 11 + ( 0 << 4 ) );
  } while( res[6] == 's' || res[6] == 'S' );
  SetConsoleTextAttribute(_h , letra_antes + ( fundo_antes << 4 ) );
  return 0;
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!