Language C: Tirez un nombre au hasard ...
Résolu
Dabron
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
bizu53 Messages postés 1274 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de créer mon 1er jeu avec le langage C.
Je bloque au moment ou arrive mon 1er combat.
Voila mon bout de code bourré de faute:
printf("Alors que vous etiez sur le point de vous enfuir, un gobelin vous barre la sortie !");
printf("Que faite-vous?\n");
printf("1.Vous essayez de le raisonner\n");
printf("2.Vous engager le combat\n"); // Choix combat
scanf("%ld", &Choix);
if (Choix ==1)
{
printf("Matal Del Nep Tai !!!!!\nLe gobelin ne comprenant pas votre langue vous a assener un coup de dague !\n");
printf("Vous perdez 3 pts de vie.\n");
PtsDeVie = PtsDeVie-3 ;
printf("PV=%ld / 20\n\n", PtsDeVie); // Attaque gobelin
printf("N'ayant plus le choix vous decidez d'engager le combat.\n");
}
else if (Choix ==2)
printf("Vous prenez position et lancer votre 1ere attaque!\n");
rand()%10; [ <<<---- LE PROBLEME SE SITUE ICI !!!!! ]
if (Attaque=<5)
{
printf("L'attaque a echouer,le gobelin vous contre et vous inflige 2 pts de degats !\n");
PtsDeVie = PtsDeVie-2 ;
printf("PV=%ld / 20\n\n", PtsDeVie);
}
else if (Attaque>5)
{
printf("L'attaque a reussi, vous infligez rand()%10 de degats au gobelins!\n");
}
------------------------
Ce que je souhaiterais c'est qu'un jet de dés aléatoire soit fait (entre 1 et 10), si le chiffre est égale ou inférieur à 5 le coup est raté et si il est supérieur a 5 le coup réussi.
J'ai trouver la fonction rand pour le jet aléatoire (je ne suis meme pas sur que c'est la bonne) mais comment se servir du résultat donner ????
Si quelqu'un avait une réponse, cela m'eviterait de m'arracher les cheveux!
Merci d'avance !!
Je suis en train de créer mon 1er jeu avec le langage C.
Je bloque au moment ou arrive mon 1er combat.
Voila mon bout de code bourré de faute:
printf("Alors que vous etiez sur le point de vous enfuir, un gobelin vous barre la sortie !");
printf("Que faite-vous?\n");
printf("1.Vous essayez de le raisonner\n");
printf("2.Vous engager le combat\n"); // Choix combat
scanf("%ld", &Choix);
if (Choix ==1)
{
printf("Matal Del Nep Tai !!!!!\nLe gobelin ne comprenant pas votre langue vous a assener un coup de dague !\n");
printf("Vous perdez 3 pts de vie.\n");
PtsDeVie = PtsDeVie-3 ;
printf("PV=%ld / 20\n\n", PtsDeVie); // Attaque gobelin
printf("N'ayant plus le choix vous decidez d'engager le combat.\n");
}
else if (Choix ==2)
printf("Vous prenez position et lancer votre 1ere attaque!\n");
rand()%10; [ <<<---- LE PROBLEME SE SITUE ICI !!!!! ]
if (Attaque=<5)
{
printf("L'attaque a echouer,le gobelin vous contre et vous inflige 2 pts de degats !\n");
PtsDeVie = PtsDeVie-2 ;
printf("PV=%ld / 20\n\n", PtsDeVie);
}
else if (Attaque>5)
{
printf("L'attaque a reussi, vous infligez rand()%10 de degats au gobelins!\n");
}
------------------------
Ce que je souhaiterais c'est qu'un jet de dés aléatoire soit fait (entre 1 et 10), si le chiffre est égale ou inférieur à 5 le coup est raté et si il est supérieur a 5 le coup réussi.
J'ai trouver la fonction rand pour le jet aléatoire (je ne suis meme pas sur que c'est la bonne) mais comment se servir du résultat donner ????
Si quelqu'un avait une réponse, cela m'eviterait de m'arracher les cheveux!
Merci d'avance !!
A voir également:
- Language C: Tirez un nombre au hasard ...
- Windows display language french - Guide
- Vistalizator language pack windows 7 - Télécharger - Traduction
- Language binaire - Guide
- Autocad 2008 language pack french - Forum AutoCAD
- Photoshop cs6 french language pack - Forum Photoshop
5 réponses
https://c.developpez.com/faq/#NOMBRES_random_bornes
Basez-vous sur cette explication et vous devriez y arriver.
Basez-vous sur cette explication et vous devriez y arriver.
Le modulo est le reste de la division.
Donc si tu fais %10, tu vas te retrouver avec un nombre compris entre 0 et 9 (inclus).
Donc si tu veux entre 1 et 10 tu fais +1 derrière (mais au final je pense que tu t'en fous puisque tu fais les condition derrières donc ça ne change pas grand chose que tu fasses +1 avec ta condition par rapport à 5, ou ne pas faire +1 et faire ta comparaison par rapport à 4).
Sinon concernant l'aléatoire, il faut que tu initialises où tu te places dans ta liste de nombre pseudo-aléatoire en appelant la fonction srand(). La plupart du temps on l'appelle avec l'heure (en seconde) pour que ça soit différent d'une exécution à une autre.
Pour résumer
Juste derrière tes déclarations de variable :
srand(time(NULL));
Et dans ton code, récupère ta valeur dans un int (préalablement déclaré) :
toto = rand%10; (ou avec le +1)
Donc si tu fais %10, tu vas te retrouver avec un nombre compris entre 0 et 9 (inclus).
Donc si tu veux entre 1 et 10 tu fais +1 derrière (mais au final je pense que tu t'en fous puisque tu fais les condition derrières donc ça ne change pas grand chose que tu fasses +1 avec ta condition par rapport à 5, ou ne pas faire +1 et faire ta comparaison par rapport à 4).
Sinon concernant l'aléatoire, il faut que tu initialises où tu te places dans ta liste de nombre pseudo-aléatoire en appelant la fonction srand(). La plupart du temps on l'appelle avec l'heure (en seconde) pour que ça soit différent d'une exécution à une autre.
Pour résumer
Juste derrière tes déclarations de variable :
srand(time(NULL));
Et dans ton code, récupère ta valeur dans un int (préalablement déclaré) :
toto = rand%10; (ou avec le +1)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question