Problème génération de nombre aléatoire. [C]

Résolu/Fermé
magoadu42 - 21 juin 2010 à 17:45
 magoadu42 - 22 juin 2010 à 16:20
Bonjour,

Alors voilà, cela fait quelques temps que je fait de la programmation en langage C et j'ai voulu créer un programme. Le but est de lancer 2 dé. Si les deux dé on un résultat identique alors le joueur gagne 10euros, sinon il perd la la différence de la valeur absolue des résultats des deux dé. (Soit résultat=|de1-de2|).

Jusque la tout va bien mais il y a un problème: en effet, lorsque je lance le programme à chaque fois les deux résultat sont identiques (ce qui est intéressant pour le joueur mais ce n'est pas le but du programme ^^).

Ainsi je fait appel a vos connaissance pour savoir ce qui ne va pas dans le programme dont voici le code source:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
printf("Ce jeu lance deux dé.\n");
printf("Si les resultats sont identique vous gagner 10euros.\n");
printf("Si les resulats sont differents vous perdez la valeur absolue de la difference entre les deux resultats.\n\n");


int de1 = 0, de2 = 0;
int resultat = 0;



srand(time(NULL));
de1 = rand() % 6;



srand(time(NULL));
de2 = rand() % 6;


if (de1 == de2)
{
resultat = 10;
}

else
{
resultat = fabs(de1 - de2);
}



printf("Premier de: %d\n", de1);
printf("Deuxieme de: %d\n", de2);
printf("Vos gains sont de %d euros\n\n", resultat);



return 0;
}




Je n'ai pas encore creé la boucle qui permettra a l'utilisateur de jouer plusieurs partie a la suite mais je ne pense pas que cela me pose de problème !


Pour info j'utilise code:blocks sous Windows XP
A voir également:

1 réponse

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
Modifié par ghuysmans99 le 21/06/2010 à 19:52
Tadaaaa :

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

int main() 
{ 
 int de1, de2; 
 int resultat; 

 printf("Ce jeu lance deux des. Si les resultats sont identique vous gagner 10 euros.\n"); 
 printf("Sinon, vous perdez la valeur absolue de la difference entre les deux resultats.\n\n"); 

 srand(time(NULL)); 
 //de1 = rand() % 6; 
 //de2 = rand() % 6; 
 de1 = 1 + rand()%5; 
 de2 = 1 + rand()%5; 

 if (de1 == de2) 
  resultat = 10; 
 else 
  resultat = abs(de1-de2); 

 printf("Premier de: %d\n", de1); 
 printf("Deuxieme de: %d\n", de2); 
 printf("Vos gains sont de %d euros\n\n", resultat); 

 system("pause"); 
 return 0; 
} 

Google is your best friend
VB.NET is good ... VB6 is better !
0
Merci beaucoup, maintenant le programme fonctionne comme je voulais ! Même si je dois encore lui ajouter quelques modification avant qu'il soit terminé ^^
0