Ir para conteúdo

POWERED BY:

Arquivado

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

brbernic

[Resolvido] Jogo de dados

Recommended Posts

Boa tarde

Estou em duvida em um exercicio proposto pela minha escola

se alguem puder me ajudar ficarei muito grato.

 

O exercicio é:

Dois jogadores lançam ao mesmo tempo um dado. O jogador que tem o maior resultado

marca um ponto. O jogo termina quando um dos jogadores obtiver 11 pontos. Escrever um

programa que simule este jogo de dados. Dica: use a função rand() para gerar os números

resultantes dos lançamentos dos dados de cada um dos jogadores.

 

Se possivel, no programa, mostrar o valor de cada dado que foi jogado por cada um dos 2 jogadores.

 

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Minha tentativa de fazer nao deu muito certo hehe

gostaria que, se possivel alguem que conhece bem a linguagem c refizesse de uma maneira que funcione para que eu possa estuda-la.

obrigado

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int dado1, dado2, jog1, jog2;
for (jog1=0; jog1<11; jog1++){
for (jog2=0; jog2<11; jog2++){
srand ( time(NULL) );
dado1 = rand() % 6;
dado2 = rand() % 6;
if(dado1>dado2){
printf("\njogador 1 marcou ponto\n");}
else{
printf("\njogador 2 marcou ponto\n");}
if (dado1==11){
printf("\njogador 1 ganhou!\n");}
else{
printf("\njogador 2 ganhou!\n");}
}
}
system("pause");
 }

Compartilhar este post


Link para o post
Compartilhar em outros sites

"dado1" nunca será igual a 11...

 

Falta uma variável que conte os pontos... por exemplo:

if(dado1>dado2){
	printf("\njogador 1 marcou ponto\n");
	pontos_jogador1++;
}
else
{
	printf("\njogador 2 marcou ponto\n");
	pontos_jogador2++;
}

if (pontos_jogador1 == 11)
{
	printf("\njogador 1 ganhou!\n");}
else if (pontos_jogador2 == 11)
{
	printf("\njogador 2 ganhou!\n");}
}

O seu loop está errado também....

você pode fazer:

while (pontos_jogador1 <= 11 || pontos_jogador2 <= 11)

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe a demora para responder, minha placa de video queimou e só hoje eu fui comprar uma nova.

Muito obrigado pela ajuda, depois de ver aqui e estudar um pouco eu consegui.

main()
{
	  int dado1 = 0, dado2 = 0, jog1=0, jog2=0, jogada=1;
	  srand(time(NULL));
	  while((jog1 < 11)&&(jog2 < 11))
	  {
				  dado1=0;
				  dado2=0;
				  
				  dado1 = rand()% 6 + 1;
				  dado2 = rand()% 6 + 1;	  
				  
				  jogada++;
				  printf("\n\njogada %i", jogada);
				  printf("\ndado1 %i", dado1);
				  printf("\ndado2 %i", dado2);
				  if(dado1 == dado2){
						   printf("\nnenhum marcou ponto nessa\n\n");}
				  if(dado1>dado2){				  
				  jog1++;}
				  if(dado1<dado2){		 
				  jog2++;}
				  printf("\nPlacar: jogador 1: %i   x   jogador 2: %i\n", jog1, jog2);
	  }
	  if(jog1>jog2)
	  {
					 printf("\n\nJOGADOR 1 VENCEU !!\n\n");
	  }
	  if(jog1<jog2)
	  {
					printf("\n\nJOGADOR 2 VENCEU !!\n\n");
	  }
	  system("pause");
}

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.