brbernic 0 Denunciar post Postado Junho 2, 2009 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
VictorCacciari 42 Denunciar post Postado Junho 2, 2009 Ok... e o que você ja tem? Compartilhar este post Link para o post Compartilhar em outros sites
brbernic 0 Denunciar post Postado Junho 2, 2009 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
VictorCacciari 42 Denunciar post Postado Junho 2, 2009 "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
brbernic 0 Denunciar post Postado Junho 11, 2009 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