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

  FORUM HardWare.fr
  Programmation
  C

  Jeu du 421, besoin d'aide !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Jeu du 421, besoin d'aide !!

n°2195968
artiis
Posté le 29-06-2013 à 14:01:18  profilanswer
 

Bonjour, Je suis debutant en C et je viens de realiser un petit programme sur emacs.C'est le jeu du 421.
Les règles sont simples, on a 4 essais pour réaliser avec les 3 dés un jet donnant 421.
Le programme lance les dés et affiche le résultat.
Si c'est un 421, on affiche "Gagné", sinon on demande à l'utilisateur d'appuyer sur la touche R pour relancer.
Au bout du 4ème essai, au lieu de proposer de relancer, on affichera "Perdu" et le programme se terminera, sauf que la console m'affiche des erreurs au niveau de la fonction random, enfin c'est ce que je crois.
Merci si vous pouvez me donner un petit coup de pouce. :D
 

Code :
  1. #include <stdio.h>
  2. #include <curses.h>
  3. #include <stdlib.h>
  4. main()
  5. {
  6.   int de1, de2, de3;
  7.   int gagne;
  8.   int essai;
  9.   gagne=0;
  10.   essai=0;
  11.   random ();
  12. do
  13.   {
  14.     clear ();
  15.     de1 = random (6) + 1;
  16.     de2 = srandom (6) + 1;
  17.     de3 = random (6) + 1;
  18.     printf("Lancer:\n" );
  19.     printf("[%d] [%d] [%d]",de1,de2,de3);
  20.     getchar();
  21.     if (de1 == 4)
  22.       {
  23. if (de2 == 2)
  24.   {
  25.     if (de3 == 1)
  26.   gagne = 1;
  27.     else
  28. gagne = 0;
  29.       }
  30.     else
  31.       {
  32. if (de2 == 1)
  33.   {
  34.     if (de3 == 2)
  35.       gagne = 1;
  36.     else
  37.       gagne = 0;
  38.   }
  39. else
  40.   gagne = 0;
  41.       }
  42.       }
  43.     if (de2 == 4)
  44.       {
  45. if (de1 == 2)
  46.   {
  47.     if (de3 == 1)
  48.       gagne = 1;
  49.     else
  50.       gagne = 0;
  51.   }
  52. else
  53.   {
  54.     if (de1 == 1)
  55.     {
  56.       if (de3 == 2)
  57.       gagne = 1;
  58.       else
  59.       gagne = 0;
  60.   }
  61. else
  62.   gagne = 0;
  63.       }
  64.   }
  65. if (de3 == 4)
  66.    {
  67.      if (de2 == 2)
  68.        {
  69.  if (de1 == 1)
  70.    gagne = 1;
  71.  else
  72.    gagne = 0;
  73.        }
  74.      else
  75.        {
  76.  if (de2 == 1)
  77.    {
  78.      if (de1 == 2)
  79.        gagne = 1;
  80.      else
  81.        gagne = 0;
  82.    }
  83.  else
  84.    gagne = 0;
  85.           }
  86.    }
  87. essai = essai + 1;
  88. }
  89. while ((!gagne) && (essai != 4));
  90. if (gagne)
  91.   printf("\nGagne !!!!" );
  92. else
  93.    printf ("\nPerdu..." );
  94. getchar();
  95. }


 
Les erreurs:
 

Code :
  1. jeux_du_421.c: In function ‘main’:
  2. jeux_du_421.c:15: error: too many arguments to function ‘random’
  3. jeux_du_421.c:16: error: void value not ignored as it ought to be
  4. jeux_du_421.c:17: error: too many arguments to function ‘random’


mood
Publicité
Posté le 29-06-2013 à 14:01:18  profilanswer
 

n°2196023
WiiDS
20 titres en GC, 0 abandon, 0 DQ
Posté le 30-06-2013 à 10:34:00  profilanswer
 

T'as rien réalisé du tout, t'as pompé le code source d'internet et tu nous demandes de le corriger parce que t'as aucune idée de comment fonctionne le programme. Les erreurs sont pourtant ultra explicites, même pour un débutant
 
https://www.google.fr/#sclient=psy- [...] 9%29%3B%22
 
:hello:


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
n°2196034
Sve@r
Posté le 30-06-2013 à 13:20:13  profilanswer
 

artiis a écrit :

Code :
  1. #include <stdio.h>
  2. #include <curses.h>
  3. #include <stdlib.h>
  4. main()
  5. {
  6.   int de1, de2, de3;
  7.   int gagne;
  8.   int essai;
  9.   gagne=0;
  10.   essai=0;
  11.   random ();
  12. do
  13.   {
  14.     clear ();
  15.     de1 = random (6) + 1;
  16.     de2 = srandom (6) + 1;
  17.     de3 = random (6) + 1;
  18. ...



 
Salut
Ce code est une catastrophe. Allez, en vrac
1) main() est une fonction donc elle a un type (int)
2) tu appelles random() sans paramètre puis tu appelles random() avec le paramètre "6" (une même fonction s'appelle toujours de la même façon). Puis, pour le dé suivant, tu appelles srandom() !!!???!!!
3) ta recherche du 421 est une horreur. Tu vas évaluer tous les cas possibles (4 puis 2 puis 1 ou 4 puis 1 puis 2). Heureusement il n'y en a que 1x2x3 soit 6 cas possibles mais si tu devais programmer un yam tu aurais 1x2x3x4x5 soit 120 cas à traiter !!!
 
Donc conseil n° 1: lis un tuto sur l'apprentissage du C
Conseil n° 2: examine le but des fonctions que tu utilises (à quoi sert srandom(), random(), comment on s'en sert)
Conseil n° 3: si tu pompes du code sur le net, évite de dire qu'il vient de toi surtout si tu n'as même pas le niveau pour le comprendre...
 
Tiens, juste pour l'exemple, voici un algo pour chercher "421" dans 3 dés (pour débutants)

Code :
  1. int de[3];
  2. int flag
  3. int i;
  4.  
  5. for (flag=0, i=0; i < 3; i++)
  6. {
  7.    switch (de[i])
  8.    {
  9.        case 1: flag+=1; break;
  10.        case 2: flag+=2; break;
  11.        case 4: flag+=4; break;
  12.    }
  13. }
  14. printf("%s\n", (flag == 7) ?"gagné" :"perdu" );


 
Et un autre algo un peu plus avancé mais qui offre plus de souplesse

Code :
  1. typedef struct {
  2.    unsigned short value;
  3.    char flag;
  4. }t_combi;
  5.    
  6. int de[3];
  7. t_combi need[]={
  8.    {1, 0x01},
  9.    {2, 0x02},
  10.    {4, 0x04},
  11.    {0, 0x00},
  12. };
  13. t_combi *pt_need;
  14. int flag;
  15. int combi;
  16. int i;
  17.  
  18. for (flag=0, combi=0, pt_need=need; pt_need->flag != 0; pt_need++, combi|=pt_need->flag)
  19. {
  20.    for (i=0; i < 3; i++)
  21.        if (de[i] == pt_need->value) flag|=pt_need->flag;
  22. }
  23. printf("%s\n", (flag == combi)?"gagné" :"perdu" );


Message édité par Sve@r le 30-06-2013 à 15:35:43

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

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

  Jeu du 421, besoin d'aide !!

 

Sujets relatifs
Aide pour ma lightboxaide macro excel!^^
[Facebook] Jeu - RedirectionBesoin d'aide appel de tableau
Besoin d'aide sur un dossier de Base de donnéesAide sur une application
Aide Programme DistanceAide programmation PHP
Plus de sujets relatifs à : Jeu du 421, besoin d'aide !!


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