erreur code jeu de nombre

erreur code jeu de nombre - C#/.NET managed - Programmation

Marsh Posté le 04-12-2007 à 15:51:14    

bonjour, je suis en train de réaliser un code en c# mais j'ai quelques soucis dans le code, est-ce que quelqu'un saurait corriger mes erreurs ?
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace TPEUCLIDE {
  5.     public class Program {
  6.         public static void Main(string[] args) {
  7.            Console.Clear();
  8.            Console.WriteLine("- Menu -" ); 
  9.            Console.WriteLine();
  10.            Console.WriteLine("1 - Jeu sans limitation de tentatives." );
  11.            Console.WriteLine("2 - Jeu avec choix du nombre de tentatives." );
  12.            Console.WriteLine("3 - Demonstration." );
  13.            Console.WriteLine("4 - Quitter." );
  14.            Console.WriteLine();
  15.            Console.writeline("Choix :" );
  16.            int retour = -1;
  17.            while(retour < 0 || retour > 1000) {
  18.               Console.Write( "Choix du nombre [0..1000] : " );
  19.               string input = Console.ReadLine();
  20.               try {
  21.                  retour = Convert.ToInt32(input);
  22.               } catch {
  23.                  Console.WriteLine();
  24.                  Console.WriteLine("Valeur saisie incorrecte" );
  25.               }
  26.               if(retour < 0 || retour > 1000) {
  27.                  Console.WriteLine();
  28.                  Console.WriteLine("Valeur saisie incorrecte" );
  29.               }
  30.            }
  31. //JEU 1
  32. //variables
  33. int nb1, rep, essais;
  34. {
  35.   Console.Clear()
  36.   nb1=random(1000)
  37.   essais=1;
  38.   rep=saisie;
  39.   while (rep>nb1) do
  40.   {
  41.    if (rep>nb1)
  42.          Console.writeline("Trop haut, essai n°:",essais);
  43.        
  44.    else Console.writeline("Trop  bas, essai n°:",essais);
  45.      
  46.    essais=essais+1;
  47.     rep=saisie;
  48.   }
  49.   Console.writeline("Vous avez trouvé en ",essais,"essais" );
  50.  
  51. }
  52. //JEU 2
  53. //variables
  54. int nb1, rep, essais, nb_essais;
  55. {
  56.  
  57.   Console.Clear()
  58.   nb1=random(1000);
  59.   essais=1;
  60.   Console.write("Saisir le nombre d''essais désirés :" );
  61.   Console.readline(nb_essais);
  62.   rep=saisie;
  63.   while (rep!=nb1) && (essais!=nb_essais) do
  64.   {
  65.    if (rep>nb1)
  66.                  console.Writeline;(" Trop haut !  Il te reste : ",nb_essais-essais,"essais" );
  67.          else
  68.                 Console.writeline("Trop bas !  Il te reste : ",nb_essais-essais,"essais" );
  69.        essais=essais+1;
  70.        rep=saisie;
  71. }
  72.   If (essais==nb_essais)
  73.     Console.writeline ("Tu as perdu ; le nombre était : ",nb1);
  74.     else
  75.    
  76.      Console.writeline("Tu as gagné en ",essais,"coups." );
  77.  
  78. }
  79. ///JEU 3
  80. //Variables
  81. int nb1, haut, bas, rep, essais;
  82. {
  83.   Console.Clear()
  84.   nb1:random(1000);
  85.   essais=1;
  86.   bas=1;
  87.   haut=1000;
  88.   rep(bas+haut)/2;
  89.   while (rep!=nb1) do
  90.   {
  91.       Console.writeline("Le programme propose :",rep);
  92.       if (rep>nb1)
  93.         then
  94.       {
  95.           Console.writeline("Trop haut, essai n°:",essais);
  96.           haut=rep;
  97.       }
  98.         else
  99.         {
  100.           Console.writeline("Trop  bas, essai n°:",essais);
  101.           bas=rep;
  102.         }
  103.       essais=essais+1;
  104.       rep=(bas+haut)/2;
  105.   }
  106.       Console.writeline("Le programme a trouvé en ",essais,"essais." );
  107.       Console.writeline("" );
  108.       Console.writeline("La réponse était : ",rep);   
  109.       Console.writeline("" );
  110.      
  111. }
  112. //Variables
  113.   int choix;
  114.   bool fin;
  115.     {
  116.   randomize;
  117.   fin=false;
  118.   switch (choix)
  119.             { 
  120.  
  121.     case 1: Console.WriteLine("jeu1" );break;
  122.     case 2: Console.WriteLine("jeu2" );break;
  123.                 case 3: Console.WriteLine("jeu3" );break;
  124.     case 4: Console.WriteLine("fin"=true);break;
  125.        
  126.              }
  127.     else
  128.     {
  129.             Console.writeline ("Erreur de saisie." );
  130.            
  131.     }
  132.   }
  133.    
  134.   Console.writeline("Au revoir et à bientôt." );
  135.  
  136.         }
  137.     }
  138. }


 
 

Reply

Marsh Posté le 04-12-2007 à 15:51:14   

Reply

Marsh Posté le 04-12-2007 à 16:17:31    

1/ Au lieu de Int32.Convert(), utilise int.TryPase().
2/ Quelles sont tes erreurs ?
3/ C'est quoi tout le bordel à partir de la ligne 36 ?

Reply

Marsh Posté le 04-12-2007 à 16:19:36    

et d'un point de vue algo :
 
1/ dans ton bordel, le "while(nb1>rep)" est faux à priori
2/ les trois jeux peuvent se faire avec la même fonction, en améliorant tes tests

Reply

Marsh Posté le 04-12-2007 à 17:04:11    

et bien c'est ça le problème, pourquoi le while ici serait faux ?
 
je veux faire en sorte que tant que la réponse de l'user est supérieur au nombre aléatoire (nb1), le programme va dire si oui ou non c'est supérieur ou inférieur au nb1 choisi par la machine

Reply

Marsh Posté le 04-12-2007 à 17:11:49    

ben parceque tu boucle tant que la proposution du gars n'est pas plus grande que le nombre... donc s'il fait une proposition trop haute, proutch, tu sors du jeux pour rien.
 
Dans jeu 2, par contre, le while semble bon.
 
Mais c'est quoi tes blocs de code jeu 1, 2 et 3 ?
 
Parceque colléscomme ça dans ton code, ça peut pas marcher hein...

Reply

Marsh Posté le 04-12-2007 à 17:17:50    

j'essaye de transformer un code turbopascal en c#
 

Code :
  1. uses wincrt;
  2. procedure attente;
  3. {Attente  d'un événement utilisateur: appui sur une touche}
  4. var TouchePressee : boolean;
  5. begin
  6.   writeln('Taper une touche pour la suite');
  7.   while not (TouchePressee) do TouchePressee:=Keypressed ;
  8. end;
  9. procedure Afficher;
  10. {affichage du menu}
  11. begin
  12.   clrscr;
  13.   WriteLn('         - Menu -');   WriteLn('');
  14.   WriteLn('       1 - Jeu sans limitation de tentatives.');
  15.   WriteLn('       2 - Jeu avec choix du nombre de tentatives.');
  16.   WriteLn('       3 - Demonstration.');
  17.   WriteLn('       4 - Quitter.'); WriteLn('');
  18.   Write  ('Choix :');
  19. end;
  20. function saisie:integer;
  21. {renvoie un entier entre 0 et 1000}
  22. var retour :integer;
  23. begin
  24.      write('Choix du nombre [0..1000] : ');
  25.      readln(retour);
  26.      while (retour<0) or (retour>1000) do
  27.        begin
  28.          write('Choix du nombre [0..1000] : ');
  29.          readln(retour);
  30.        end;
  31.      saisie:=retour;
  32. end;   {fin fct saisie}
  33. {---------------------------- Jeu1 -------------------------}
  34. procedure Jeu1;
  35. var nb1, rep, essais :integer;
  36. begin
  37.   clrscr;
  38.   nb1:=random(1000);
  39.   essais:=1;
  40.   rep:=saisie;
  41.   while rep<>nb1 do
  42.   begin
  43.        if rep>nb1
  44.          then writeln(' Trop haut, essai n°:',essais)
  45.          else writeln(' Trop  bas, essai n°:',essais);
  46.        essais:=essais+1;
  47.        rep:=saisie;
  48.   end;
  49.   writeln('Vous avez trouvé en ',essais,' essais');
  50.   attente;
  51. end; {fin jeu1}
  52. {---------------------------- Jeu2 -------------------------}
  53. procedure Jeu2;
  54. var nb1, rep, essais, nb_essais :integer;
  55. begin
  56.   clrscr;
  57.   nb1:=random(1000);
  58.   essais:=1;
  59.   write('Saisir le nombre d''essais désirés :');
  60.   readln(nb_essais);
  61.   rep:=saisie;
  62.   while (rep<>nb1) and (essais<>nb_essais) do
  63.   begin
  64.        if rep>nb1
  65.          then  writeln(' Trop haut !  Il te reste : ',nb_essais-essais,' essais')
  66.          else  writeln(' Trop bas !  Il te reste : ',nb_essais-essais,' essais');
  67.        essais:=essais+1;
  68.        rep:=saisie;
  69.   end;
  70.   if essais=nb_essais
  71.     then writeln (' Tu as perdu ; le nombre était : ',nb1)
  72.     else writeln(' Tu as gagné en ',essais,' coups.');
  73.   attente;
  74. end;  {fin jeu2}
  75. {---------------------------- Jeu3 -------------------------}
  76. procedure Jeu3;
  77. var nb1, haut, bas, rep, essais :integer;
  78. begin
  79.   clrscr;
  80.   nb1:=random(1000);
  81.   essais:=1; bas:=1; haut:=1000;
  82.   rep:=(bas+haut) div 2;
  83.   while (rep<>nb1) do
  84.     begin
  85.       writeln('Le programme propose : ',rep);
  86.       if rep>nb1
  87.         then
  88.         begin
  89.           writeln(' Trop haut, essai n°:',essais);
  90.           haut:=rep;
  91.         end
  92.         else
  93.         begin
  94.           writeln(' Trop  bas, essai n°:',essais);
  95.           bas:=rep;
  96.         end;
  97.       essais:=essais+1;
  98.       rep:=(bas+haut) div 2;
  99.     end;
  100.       writeln(' Le programme a trouvé en ',essais,' essais.');
  101.       writeln('');
  102.       writeln(' La réponse était : ',rep);     writeln('');
  103.       attente;
  104. end;
  105. { DEBUT DU PROGRAMME PRINCIPAL  }
  106. var
  107.     choix :integer;
  108.     fin :boolean;
  109. begin
  110.   randomize;
  111.   fin:=false;
  112.   repeat
  113.     afficher;
  114.     readln(choix);
  115.     case choix of
  116.           1: jeu1;
  117.           2: jeu2;
  118.           3: jeu3;
  119.           4: fin:=true;
  120.     else
  121.           begin
  122.             writeln ('Erreur de saisie.');
  123.             attente;
  124.           end;
  125.     end;
  126.   until fin;
  127.   writeln(' Au revoir et à bientôt.');
  128. end.


 
et j'ai bien du mal
 
en gros le code doit faire plusieurs jeux d'un chiffre choisi aléatoirement par la machine. l'utilisateur doit alors essayer de rentrer le bon chiffre et la machine lui dit si le chiffre est bon ou non en disant a l'utilisateur si le chiffre est trop, ou trop bas.

Reply

Marsh Posté le 04-12-2007 à 17:21:48    

ben tes blocs, c'est des procédure (donc des fonctions retournant "void" en C#), pas des bouts de code paumés au milieu de ton programme :o

Reply

Marsh Posté le 04-12-2007 à 17:33:33    

oui, et c'est bien de ce coté que j'ai du mal.

Reply

Marsh Posté le 07-12-2007 à 11:31:53    

quelqu'un peut m'aider a corriger mon code ? J'avoue que j'ai vraiment du mal  :pfff:  
 

Code :
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace TPEUCLIDE
  5. {
  6.     class TPEUCLIDE
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10. //Affichage du menu
  11. {
  12.            Console.Clear();
  13.            Console.WriteLine("- Menu -" ); 
  14.            Console.WriteLine();
  15.            Console.WriteLine("1 - Jeu sans limitation de tentatives." );
  16.            Console.WriteLine("2 - Jeu avec choix du nombre de tentatives." );
  17.            Console.WriteLine("3 - Demonstration." );
  18.            Console.WriteLine("4 - Quitter." );
  19.            Console.WriteLine();
  20.            Console.WriteLine("Choix :" );
  21. }
  22.         }
  23.        
  24.         while(true) {
  25.               string input = Console.ReadLine();
  26.               switch(input)
  27.                   case "1" : "jeu1"(); break;
  28.                   case "2" : "jeu2"(); break;
  29.                   case "3" : "jeu3"(); break;
  30.                   case "4" : return; break;
  31.                   default : break;
  32.                      }
  33.         }
  34.    
  35.     int saisie ()
  36.             int retour;
  37.             Console.Write( "Choix du nombre [0..1000] : " );
  38.             retour = Convert.ToInt32( Console.ReadLine() );
  39.             while (retour < 0 || retour > 1000)
  40.             {
  41.                 Console.Write( "Choix du nombre [0..1000] : " );
  42.                 retour = Convert.ToInt32( Console.ReadLine() );
  43.             }
  44.             return retour;
  45.    
  46. //JEU 1
  47.   void jeu1()
  48. {
  49. //variables
  50. int nb1, rep, essais;
  51.   Console.Clear()
  52.   nb1 = Random(1000)
  53.   essais=1;
  54.   rep=saisie;
  55.  
  56.    do  while (rep>nb1)
  57.   {
  58.    if (rep>nb1)
  59.          Console.WriteLine("Trop haut, essai n°:",essais);
  60.        
  61.    else Console.WriteLine("Trop  bas, essai n°:",essais);
  62.      
  63.    essais=essais+1;
  64.     rep=saisie;
  65.  
  66.    }
  67.  
  68.   Console.writeline("Vous avez trouvé en ",essais,"essais" );
  69.  
  70. }
  71. //JEU 2
  72. void jeu2();
  73. {
  74. //variables
  75. int nb1, rep, essais, nb_essais;
  76. {
  77.  
  78.   Console.Clear()
  79.   nb1=random(1000);
  80.   essais=1;
  81.   Console.Write("Saisir le nombre d''essais désirés :" );
  82.   Console.ReadLine(nb_essais);
  83.   rep=saisie;
  84.   while (rep!=nb1) and (essais<nb_essais) do
  85.   {
  86.    if (rep>nb1)
  87.                Console.Writeline;(" Trop haut !  Il te reste : ",nb_essais-essais,"essais" );
  88.          else  Console.writeline("Trop bas !  Il te reste : ",nb_essais-essais,"essais" );
  89.        essais=essais+1;
  90.        rep=saisie;
  91. }
  92.   if (essais==nb_essais)
  93.     Console.WriteLine ("Tu as perdu ; le nombre était : {0}",nb1);
  94.     else
  95.    
  96.      Console.WriteLine("Tu as gagné en ",essais,"coups." );
  97.  
  98. }
  99. }
  100. ///JEU 3
  101.   void jeu3();
  102. {
  103. //Variables
  104. int nb1, haut, bas, rep, essais;
  105. {
  106.   Console.Clear()
  107.   nb1:random(1000);
  108.   essais=1;
  109.   bas=1;
  110.   haut=1000;
  111.   rep(bas+haut)/ 2;
  112.   while (rep!=nb1) do
  113.   {
  114.       Console.writeline("Le programme propose :{0}",rep);
  115.       if (rep>nb1)
  116.        
  117.       {
  118.           Console.WriteLine("Trop haut, essai n°:{0}",essais);
  119.           haut=rep;
  120.       }
  121.         else
  122.         {
  123.           Console.WriteLine("Trop  bas, essai n°:{0}",essais);
  124.           bas=rep;
  125.         }
  126.       essais=essais+1;
  127.       rep=(bas+haut)/2;
  128.   }
  129.       Console.WriteLine("Le programme a trouvé en ",essais,"essais." );
  130.       Console.WriteLine("" );
  131.       Console.WriteLine("La réponse était : {0}",rep);   
  132.       Console.WriteLine("" );
  133.      
  134. }
  135. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed