| Génerer des nombers aléatoirement en C | |
|
|
Auteur | Message |
---|
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 17:59 | |
| Donc oui je me suis mis au C J'utilise Visual C++, et j'avais décidé de commencer en portant ce jeu de Ti que j'ai fait hier(rien de bien grand donc) Mais, je n'arrive pas à faire générer un nombre au hasard et à le stocker dans une variable. J'ai vu qu'avec la bibliothèque time.h pis en utilisant un truc comme ca: - Code:
-
srand(time(NULL)); nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
(Oui MAX et MIN sont déclarées, juste flemme de mettre) c'était apparemment possible, mais quand j'essaie de mettre ceci, oh le zouli message d'erreur en compilant: - Spoiler:
Compilation en cours... main.c c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(12) : warning C4244: 'fonction' : conversion de 'time_t' en 'unsigned int', perte possible de données c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(15) : error C2143: erreur de syntaxe : absence de ';' avant 'type' c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(16) : error C2065: 'Hp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(17) : error C2065: 'Mp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(18) : error C2065: 'HpMax' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(19) : error C2065: 'MpMax' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(20) : error C2065: 'Atk' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(21) : error C2065: 'Def' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(22) : error C2065: 'Xp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(23) : error C2065: 'UntilNext' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(24) : error C2065: 'RegXp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(24) : error C2065: 'Xp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(25) : error C2065: 'Lev' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'mystery' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MAX' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MIN' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MIN' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(34) : error C2065: 'Nowhere' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(36) : error C2065: 'Nowhere' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(41) : error C2065: 'Lev' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(42) : error C2065: 'Hp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(43) : error C2065: 'HpMax' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(44) : error C2065: 'Mp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(45) : error C2065: 'MpMax' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(46) : error C2065: 'Atk' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(47) : error C2065: 'Def' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(48) : error C2065: 'RegXp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(49) : error C2065: 'UntilNext' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(49) : error C2065: 'Xp' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(54) : error C2143: erreur de syntaxe : absence de ';' avant 'type' c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(61) : error C2143: erreur de syntaxe : absence de ';' avant 'case' Le journal de génération a été enregistré à l'emplacement "file://c:\Documents and Settings\SM\Mes documents\Visual Studio 2008\Projects\Vodkasan\Vodkasan\Debug\BuildLog.htm" Vodkasan - 30 erreur(s), 1 avertissement(s) ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
En clair, il me dit que mes variables sont pas déclarées, ce qui est faux. Donc bon, si quelqu'un savait comment fixer ca ou bien en ayant un autre truc pour la géneration de nombres, bon chuis preneur _________________ J'aime le Anime |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 18:36 | |
| comment t'as déclaré tes variables? _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 19:06 | |
| - Code:
-
long Hp, Mp, HpMax, MpMax, Atk, Def, Xp, UntilNext, RegXp, Lev, Nowhere, mystery, MAX, MIN; MAX = 100; MIN = 1; Hp = 100; Mp = 100; HpMax = 100; MpMax = 100; Atk = 10; Def = 8; Xp = 5; UntilNext = 20; RegXp = Xp; Lev = 3;
_________________ J'aime le Anime |
|
| |
nicoulas *Excellent utilisateur*
Messages : 6030 Localisation : Dordogne Projet Actuel : Croustaface Tower Defense
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 19:17 | |
| et t'as bien déclaré nombreMystere ? |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 20:35 | |
| - nicoulas a écrit:
- et t'as bien déclaré nombreMystere ?
Oui, sur le code c'est MYstère je crois D'ailleurs, touts les codes marchent tant que je n'ajoute pas le code pour génerer du random _________________ J'aime le Anime |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 22:19 | |
| ta déclaration, elle est en global (hors de toute fonction)? dans main()? dans une autre fonction? _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 23:19 | |
| main() comme tout le reste d'ailleurs _________________ J'aime le Anime |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Génerer des nombers aléatoirement en C Dim 25 Jan 2009 - 23:43 | |
| et en faisant (juste pour tester) ça : long MIN=0; long BLABLA=12; //etc
ça marche ou pas? et c'est quoi ton compilateur? (devcpp, codeblocks, autre) _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 0:14 | |
| J'avais déjà essayé d'identifier une variable en siolé, marche pas. Sinon je prog/compile sur Visual C++ (Je k'avais dit qur le premier post d'ailleurs il me semble ) _________________ J'aime le Anime |
|
| |
zebdal Utilisateur confirmé: Rang *****
Messages : 2874 Localisation : Chez Vanilla Projet Actuel : Shrapnel
Kanon
Sengoku Rance Online
Vanilla H
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 2:04 | |
| - Citation :
- nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
en tout cas, ce qui est sur, c'est que c'est: _ou une erreur de nommage de variable _ou une variable qui n'existe pas _ou alors un problème de long et float ou signed et unsigned il me semble que rand() retourne un float (ou un double), donc: (rand() % (MAX - MIN + 1)) + MIN retourne ou float si nombreMystere est un long long=float, ca ne marche pas il vaudrait peut etre mieux écrire: - Citation :
- nombreMystere = long((rand() % (MAX - MIN + 1)) + MIN);
ou un truc dans ce genre. sinon: - Citation :
- c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(12) : warning C4244: 'fonction' : conversion de 'time_t' en 'unsigned int', perte possible de données
c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(15) : error C2143: erreur de syntaxe : absence de ';' avant 'type' ... c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MAX' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MIN' : identificateur non déclaré c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(27) : error C2065: 'MIN' : identificateur non déclaré |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 10:32 | |
| non, nombre mystere est automatiquement tronqué pour ressembler à un long, il n'y a pas d'erreur ici, et les erreurs viennent bien de la délcaration... Je crois qu'il faut le code complet pour élucider le mystère _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 13:36 | |
| c:\documents and settings\sm\mes documents\visual studio 2008\projects\vodkasan\vodkasan\main.c(15) : error C2143: erreur de syntaxe : absence de ';' avant 'type'
... Lisez les erreurs que sort le compilo ça aide. Sinon poste le code pour voir. _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
|
| |
Difegue Invité
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 15:37 | |
| J'ai aucun truc appelé type sans un ; après. Cette reeur advient dès que j'inclus time.h
Sinon je posterai le code dans deux heures(lol PC de l'ecole) |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Lun 26 Jan 2009 - 20:00 | |
| - Spoiler:
- Code:
-
/* Ci-dessous, ce sont des directives de préprocesseur. Ces lignes permettent d'ajouter des fichiers au projet, fichiers que l'on appelle "librairies". Grâce à ces librairies, on disposera de fonctions toutes prêtes pour afficher par exemple un message à l'écran */ #include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
//Massive variable declaration long Hp, Mp, HpMax, MpMax, Atk, Def, Xp, UntilNext, RegXp, Lev, Nowhere, AdHp; Hp = 100; Mp = 100; HpMax = 100; MpMax = 100; Atk = 10; Def = 8; Xp = 5; UntilNext = 20; RegXp = Xp; Lev = 3;
printf("Welcome to th:| Woops wrong line\n"); system("PAUSE"); printf("\n || Welcome to...\n"); printf("|..|Vodka-San's\n"); printf("| -|\n"); printf("|__|Silly Adventures!\n"); system("PAUSE");
printf("\nYour goal is to beat Mato who became evil after being possesed by \n(insert evil guy here) \n"); system("PAUSE");
menu: printf("\nWhere do you want to go on your epic adventure? \n 1 to see stats \n 2 to fight on teh Coliseum \n 3 to go shoppin' \n 4 to go to FINAL BOSS BATTLE \n 5 to HEAL \n 6 to leave, loserrr \n/"); scanf_s("%ld", &Nowhere);
switch(Nowhere) { case 1: //stats printf ("\nVodka-San Stats: \n"); printf ("Level %ld \n",Lev); printf ("Hps: %ld",Hp); printf ("/%ld \n",HpMax); printf ("Mps: %ld",Mp); printf ("/%ld \n",MpMax); printf ("Attack: %ld \n",Atk); printf ("Defense: %ld \n",Def); printf ("%ld Exp points \n",RegXp); printf ("%ld pts until next level \n \n \n",UntilNext - Xp ); system("PAUSE"); goto menu; break; case 2: AdHp = 200; printf("\nYou confront a Tomato Translation!\n");
atk: printf("The enemy used PK SexyBeam!\n"); printf("You took 20 damage!\n"); Hp = Hp-20;
atkmenu: if (Hp<=0) { printf("You lost the battle!\n"); goto end; } else { printf("\n 6 to leave, loserrr \n/"); scanf_s("%ld", &Nowhere); }
case 6: system("PAUSE"); break; default: printf("DO A GOOD CHOICE U DUMMY \n"); } end: system("PAUSE"); return 0; }
oui je sais goto c'est le mal mais bon code sans aucune trace de géneration de nombers _________________ J'aime le Anime |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Génerer des nombers aléatoirement en C Mar 27 Jan 2009 - 8:23 | |
| - Death_egg a écrit:
- Spoiler:
- Code:
-
/* Ci-dessous, ce sont des directives de préprocesseur. Ces lignes permettent d'ajouter des fichiers au projet, fichiers que l'on appelle "librairies". Grâce à ces librairies, on disposera de fonctions toutes prêtes pour afficher par exemple un message à l'écran */ #include <stdio.h> #include <stdlib.h>
int main(int argc, char *argv[]) {
//Massive variable declaration long Hp, Mp, HpMax, MpMax, Atk, Def, Xp, UntilNext, RegXp, Lev, Nowhere, AdHp; Hp = 100; Mp = 100; HpMax = 100; MpMax = 100; Atk = 10; Def = 8; Xp = 5; UntilNext = 20; RegXp = Xp; Lev = 3;
printf("Welcome to th:| Woops wrong line\n"); system("PAUSE"); printf("\n || Welcome to...\n"); printf("|..|Vodka-San's\n"); printf("| -|\n"); printf("|__|Silly Adventures!\n"); system("PAUSE");
printf("\nYour goal is to beat Mato who became evil after being possesed by \n(insert evil guy here) \n"); system("PAUSE");
menu: printf("\nWhere do you want to go on your epic adventure? \n 1 to see stats \n 2 to fight on teh Coliseum \n 3 to go shoppin' \n 4 to go to FINAL BOSS BATTLE \n 5 to HEAL \n 6 to leave, loserrr \n/"); scanf_s("%ld", &Nowhere);
switch(Nowhere) { case 1: //stats printf ("\nVodka-San Stats: \n"); printf ("Level %ld \n",Lev); printf ("Hps: %ld",Hp); printf ("/%ld \n",HpMax); printf ("Mps: %ld",Mp); printf ("/%ld \n",MpMax); printf ("Attack: %ld \n",Atk); printf ("Defense: %ld \n",Def); printf ("%ld Exp points \n",RegXp); printf ("%ld pts until next level \n \n \n",UntilNext - Xp ); system("PAUSE"); goto menu; break; case 2: AdHp = 200; printf("\nYou confront a Tomato Translation!\n");
atk: printf("The enemy used PK SexyBeam!\n"); printf("You took 20 damage!\n"); Hp = Hp-20;
atkmenu: if (Hp<=0) { printf("You lost the battle!\n"); goto end; } else { printf("\n 6 to leave, loserrr \n/"); scanf_s("%ld", &Nowhere); }
case 6: system("PAUSE"); break; default: printf("DO A GOOD CHOICE U DUMMY \n"); } end: system("PAUSE"); return 0; }
oui je sais goto c'est le mal mais bon
code sans aucune trace de géneration de nombers goto c'est le refus de la programmation structurée... C'est pas possible de programmer encore avec des goto en C!!! :nezrouge: Mais en gros tu veux insérer où tes nombres aléatoires? _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
|
| |
Difegue Invité
| Sujet: Re: Génerer des nombers aléatoirement en C Mar 27 Jan 2009 - 10:27 | |
| Ben par exemple pour AdHp = 200; J'aurais aimé le faire varier entre 100 et 200
Et puis pour certaines attaques j'avais pensé à ajouter un truc avec des coups critiques et des ratés, du style 1=réussi 2=raté
enfin bon |
|
| |
Death_egg *Excellent utilisateur*
Messages : 3807 Localisation : undefined Projet Actuel : ou qu'elle est passée la barre d'avancement
| Sujet: Re: Génerer des nombers aléatoirement en C Jeu 29 Jan 2009 - 17:52 | |
| awouin y'a personne :hehe: _________________ J'aime le Anime |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Génerer des nombers aléatoirement en C Ven 30 Jan 2009 - 2:55 | |
| non pourquoi? _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Contenu sponsorisé
| Sujet: Re: Génerer des nombers aléatoirement en C | |
| |
|
| |
| Génerer des nombers aléatoirement en C | |
|