Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
926 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Boucle dans un If

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle dans un If

n°1987096
thevinou
Posté le 23-04-2010 à 16:26:12  profilanswer
 

Bonjour !
 
Je suis a la recherche d'une solution pour faire une boucle dans un if.
Je m'explique :
 
Dans un jeu de carte, j'ai tiré une premiere carte, celle ci se compose comme ceci :
hasard_valeur1  
hasard_couleur1 ( valeur pour la valeur de la carte et couleur pour sa couleur ^^ )
 
Une fois la valeur trouvée au hasard par un random, j'envoi la valeur dans la carte definitive :  
 
carte1.valeur = hasard_valeur1  
carte1.couleur = hasard_couleur1
 
Maintenant, je tire une autre carte,
 
hasard_valeur2 et hasard_couleur2
 
Je voudrai verifier que je n'ai pas un "double" ( deux fois AS de COEUR par exemple ) donc je test avec un if,
 
J'ecris l'algorithme pour tenter d'etre clair :D
 

Code :
  1. Si
  2. hasard_valeur1 = hasard_valeur2 ET hasard_couleur1 = hasard_couleur2
  3. ALORS
  4. refaire un random sur hasard_valeur2 et hasard_couleur2
  5.          et REVENIR AU SI
  6. SINON
  7. carte2.valeur = hasard_valeur2
  8. carte2.couleur = hasard_couleur2


 
 
Je suis donc bloqué pour revenir au SI, je ne vois pas trop comment sortir du SI et revenir dedans en cas de "doublon"
 
J'espere avoir été assez clair =)
 
Merci  
 

mood
Publicité
Posté le 23-04-2010 à 16:26:12  profilanswer
 

n°1987098
flo850
moi je
Posté le 23-04-2010 à 16:29:09  profilanswer
 

remplace ton si par un tant que  :
 
tant que ma carte n° est identiqueçà la première, je retente ma chance

n°1987165
thevinou
Posté le 23-04-2010 à 19:41:31  profilanswer
 

J'ai essayé avec tant que, mais il ne vérifie pas les variables, il exécute malgré les instructions, ou alors, ce qui est plus probable, je ne l'ai pas codé correctement :)

n°1987168
gilou
Modérateur
Modzilla
Posté le 23-04-2010 à 19:55:43  profilanswer
 

Montre ton code et on te dira ce qui cloche.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1987177
thevinou
Posté le 23-04-2010 à 21:13:28  profilanswer
 

Code :
  1. int main(int argc, char *argv[])
  2. {
  3.    
  4. // utilisation de srand pour un random different a chaque lancé de jeu
  5. srand(time(NULL));
  6. //Initialisation des valeurs aleatoires pour utilisation durant le jeu
  7. int hasard_valeur1 =0 , hasard_valeur2 =0, hasard_valeur3 =0, hasard_valeur4 =0, hasard_valeur5 =0;
  8. int hasard_couleur1 =0, hasard_couleur2 =0, hasard_couleur3 =0, hasard_couleur4 =0, hasard_couleur5 =0;
  9. //Creation de la structure pour la couleur et valeur des cartes
  10. struct enreg
  11. {
  12. int couleur;
  13. int valeur;
  14. } carte1, carte2, carte3, carte4, carte5;
  15. // tirage 1ere carte
  16. hasard_valeur1 =rand()%(13)+1;
  17. hasard_couleur1 =rand()%(4)+14;
  18. carte1.couleur = hasard_couleur1;
  19. carte1.valeur = hasard_valeur1;
  20. hasard_valeur2 =rand()%(13)+1;
  21. hasard_couleur2 =rand()%(4)+14;
  22. while ( hasard_valeur2 = hasard_valeur1 && hasard_couleur1 = hasard_couleur2 )
  23. {
  24.      
  25. hasard_valeur2 =rand()%(13)+1;
  26. hasard_couleur2 =rand()%(4)+14;
  27.      
  28. }
  29. /* A PLACER :
  30. carte2.couleur = hasard_couleur2;
  31. carte2.valeur = hasard_valeur2; */
  32. system("PAUSE" );
  33.   return 0;
  34. }


 
Mon problème maintenant, c'est que la , ça ne fonctionne pas, j'ai :
ligne 29: invalid lvalue in assignment  
 
La, en corrigeant l'erreur, ça changera la valeur si les 2 hasard_valeur/couleur sont semblables, mais comment faire si les valeur apres le test sont encore sujet au probleme de doublon ?

n°1987178
thevinou
Posté le 23-04-2010 à 21:14:14  profilanswer
 

Désolé pour la qualité de code, c'est mon premier vrai programme ( hors cours ) ;)

n°1987179
thevinou
Posté le 23-04-2010 à 21:16:00  profilanswer
 

Peut etre qu'un DO WHILE serait plus approprié ?

n°1987204
gilou
Modérateur
Modzilla
Posté le 23-04-2010 à 23:34:37  profilanswer
 

Non non, c'est quasiment bon, juste une petite erreur de syntaxe:
while (hasard_valeur2 = hasard_valeur1 && hasard_couleur1 = hasard_couleur2)
au lieu de  
while (hasard_valeur2 == hasard_valeur1 && hasard_couleur1 == hasard_couleur2)
 
A+,


Message édité par gilou le 23-04-2010 à 23:35:04

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Boucle dans un If

 

Sujets relatifs
Substitution dans une boucle forCondition IF ne fonctionne pas.
Action executé periodiquement dans une boucleStructure conditionnelle avec ELSE IF Javascript
Condition non null pour rentrer dasn ma boucle[Résolu] referencer des instances creees par une fonction...
C - attendre n milliseconds entre 2 iterations d'une boucleLecture en boucle d'un FIFO avec un read [réglé]
Boucle For & If ImbriquésMS-DOS : Boucle For, IF et Find imbriqués, probleme d'affectation
Plus de sujets relatifs à : Boucle dans un If


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR