Ir ao conteúdo

Posts recomendados

Postado

Queria um fazer um jogo da adivinhação em linguagem c com comandos simples como printf, scanf, if, while, ja tenho uma base de como gerar um numero aleatorio, só queria fazer algo em cima disso. Como dar continuidade depois q o usuario, digita os valores como um laco repeticao, para dar continuidade ao game

 

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

 

int sortearNumero(int nInicial, int nFinal){

int numeroSorteado;

numeroSorteado = (rand() % (nFinal-nInicial+1) ) + nInicial;

return numeroSorteado;

}

 

int main(void){

int numero, vInicial, vFinal;

 

printf("\nDigite o primeiro valor: ");

scanf("%d", &vInicial);

 

printf("\nDigite o segundo valor: ");

scanf("%d", &vFinal);

 

srand(time(NULL));

numero = sortearNumero(vInicial, vFinal);

 

printf("\nO número sorteado foi: %d\n", numero);

}

  • Curtir 1
Postado

eu acho que já fiz esse joguinho, mas faz um 25 anos...
esses exemplos bem simples podem dar uma ajuda pra você começar:

https://tivideotutoriais.blogspot.com/2020/03/exercicios-antigos-em-linguagem-c.html

 

tem muitos anos que fiz esses exemplo e achei a uns poucos e postei ai.

você mesmo tem que dar o começo.


você cria o espaço dos sorteios de 1 a 100 por exemplo...
você tem que escolher aleatoriamente um valor e esperar o chute do usuário...

no caso quando é o computador quem está jogando, ele faz algo mais ou menos assim:
ele joga de cara 50.
o programa retorna se é maior ou menor.

no caso, fazendo de conta que é menor, ele vai chutar 25. Se a resposta for maior, então você sabe que é um numero que está entre 25 e 50.

Isso se faz ate que se encontre o numero.
 

Postado

existe uma pequena falha ai, fica de exercicio pra você melhorar, mas no geral é isso ai:

 


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	int numero;
	// semente pra não serem os mesmos numeros sempre:
	srand ( time(NULL) );
	
	int escolhi=rand()%9;
	escolhi+=1; // porque não vale zero... 
	//printf("%d\n", escolhi);

	printf("\nVamos jogar... Descubra que numero estou pensando de 1 a 10.");
	do
	{
		printf("\nDigite: \n");
		scanf ("%d", &numero);

		if(numero>escolhi)
			printf("\nÉ menor\n");
		if(numero<escolhi)
			printf("\nÉ maior\n");

	}
	while(escolhi!=numero);
	printf("\nAcertou!\nMinha vez...\n");

	printf("\nVamos jogar... Escolha um numero de 1 a 10...");
	printf("\nPronto? Digite 1 para sim:\n");
	while(numero!=1){ scanf ("%d", &numero); }

	int limiteMenor=1;
	int limiteMaior=10;
	int chute = 5;
	int c;
	do
	{
		printf("eu chuto que é: %i\n"
			"É menor? digite 1\n"
			"Acertei? Digite 2\n"
			"É maior? Digite 3\n\n", chute);

		scanf ("%i", &c);

		if(c==3) 
		{
			limiteMenor=chute;
		}
		else if(c==1) 
		{
			limiteMaior=chute;
		}
		else if(c==2) break;
		chute = limiteMaior-limiteMenor;
		chute= (rand()%chute)+1;// pra não ser zero
		chute+=limiteMenor;
	}while(c==1 || c==3);
	return 0;
}

 

  • 3 semanas depois...
Postado

@codigo rápido, cara muito obrigado pela sua resposta, desculpa a demora, não estava esperando uma resposta tão cedo, eu já consegui fazer de um jeito diferente, mas ainda bagunçado, da uma olhada: 
 

#include <stdio.h>

#include <stdlib.h>

#include <time.h>


int sortearNumero(int nInicial, int nFinal){

int numeroSorteado;

numeroSorteado = (rand() % (nFinal-nInicial+1) ) + nInicial;

return numeroSorteado;

}


int main(void) {



int numero, vInicial, vFinal, tentativa, tentativas=0, reposta_user;



  printf("----------------------\nJOGO DA ADIVINHAÇÃO\n----------------------\n");



  printf("\nDigite o primeiro valor: ");

  scanf("%d", &vInicial);



  printf("\nDigite o segundo valor: ");

  scanf("%d", &vFinal);


  srand(time(NULL));

  numero = sortearNumero(vInicial, vFinal);


  while(tentativa != numero ){

    printf("\nTente acertar um número entre os valores %d e %d: ", vInicial, vFinal);

    scanf("%d", &tentativa);


    if (tentativa == numero){

            printf("\nVocê acertou !!!!\n");

            tentativas++;

            printf("\nTotal de tentativas: %d\n", tentativas);

            printf("Quer jogar novamente? Sim = 1 e não = 2 ");

            scanf("%d", &reposta_user);

            if (reposta_user == 1){

              printf("\nDigite o primeiro valor: ");

              scanf("%d", &vInicial);


              printf("\nDigite o segundo valor: ");

              scanf("%d", &vFinal);

              srand(time(NULL));

              numero = sortearNumero(vInicial, vFinal);

            } else if(reposta_user == 2){

              break;

            }

        } else if(tentativa > numero) {

            printf("\nVocê errou, o número é menor!\n");

            printf("Tente Novamente!");

            tentativas++;

            printf("\nTotal de tentativas: %d\n", tentativas);

            printf("Você quer continuar? Sim = 1 ou não = 2 ? ");

            scanf("%d", &reposta_user);

            if (reposta_user == 1){
              
            } else if(reposta_user == 2){
              break;
            }

        } else if(tentativa < numero){

            printf("\nVocê errou, o número é maior!\n");

            printf("Tente novamente!");

            tentativas++;

            printf("\nTotal de tentativas: %d\n", tentativas);

            printf("Você quer continuar? Sim = 1 ou não = 2 ? ");

            scanf("%d", &reposta_user);

            if (reposta_user == 1){ 
              
            } else if(reposta_user == 2){
              break;
            }
        }
  }

printf("\nO número sorteado foi: %d\n", numero);



return 0;

}




O inicio do game se da ao pedir os primeiros valores, mas ai no momento em q você acerta e quer jogar novamente, eu não achei outra forma, a não ser copiar o inicio nesse mesmo if, assim termina as condicoes e volta para o while. 
Assim, é um jeito meio preguiçoso, mas fazer o que né funciona kkkkkk, 

  • Amei 1

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...