Problème algo processing

Fermé
Protos-vita - Modifié par KX le 30/10/2014 à 20:02
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 30 oct. 2014 à 20:05
Bonjour,
je suis actuellement en train de faire un algo sur processing sur le nombre mystère.
Il s'agit de faire deviner à l'ordi un nombre choisit au départ.
Voici l'algorithme :

import javax.swing.* ; // bibliothèque permettant l'utilisation de boîte de dialogue

int Z = 1 ;


String x = JOptionPane.showInputDialog(null , "Choisir un nombre entre 1 et 1000") ; 

int K= int (x) ;
  int X= K  ;
    if ((X>1000) || (X<=0))
    {
    println ("Tricheur") ;
    return;    // STOP a rajouter
    }
  
  
 println ("Le nombre a trouver est donc");
 println (X) ;
 println("le nombre choisi est-il 1000?") ;
  
 String y = JOptionPane.showInputDialog(null , "Si oui taper 1, si non taper 2") ; 
 int Y= int (y) ;
 
    if ((Y!=1) || (Y!=2))   
     {
      return; // STOP a rajouter
     }
  
    if ((Y=1) && (X=1000))   // probleme
   {
     println("l'ordinateur a trouvé 1000 en 1 coup") ;
     return;   //Stop a rajouter
     }
 
   if ((Y=2) && (X=1000))    //probleme
    {
    println("ne pas tricher");
     return;                        //Stop a rajouter
    }

   if ((Y=1) && (X!=1000))
    {
    println("ne pas tricher");
    return; // stop a rajouter
    }

int C = 2 ;
N = int(Z*random(0,1000)) ;
int A = 1 ;
int B= 1000 ;

  if (N=0)
  { 
    N=N+1 ;
  }
  
  while  (N!=X)
  { 
    println("proposition") ;
    println(N) ;
    println("dire 1 si moins ou 2 si plus");
 
  String v = JOptionPane.showInputDialog(null);
    if ((v=1) || (v=2))
    {
      if (v=2)
      {
        N=A ;
      }
      else
      {
        N=B ;
      }
      N = int(Z*random(A,B)) ;
      if (X=1)
      {
        while (N>=B)
       {
         N = int(Z*random(A,B)) ;
       }
      }
      if ((X>=2) && (999>=X))
      {
        while ((A>=N) || (N>=B))
        {
          N = int(Z*random(A,B));
        }
      }
      if (N=0)
      {
        N=1;
      }
    }
    else 
    {
      println("1 ou 2 respecte les règles");
    return;  //Stop
    }
    C=C+1 ;
  }
  
  println("l'ordinateur a trouvé") ;
  println(X) ;
  println("en") ;
  println(C) ;
  println("coups") ;



j'ai des soucis avec les balises && et avec le stop pour interrompre l'algorithme dans certaines boucles. Mais ça ne marche qu'avec return.
Merci d'avance pour votre aide!

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
30 oct. 2014 à 20:05
Bonjour,

Ton problème n'est pas vraiment sur les
&&
mais plutôt sur les comparaison que tu fais avant,
Y=1 
par exemple est une affectation (tu donnes la valeur 1 à Y) en aucun cas une comparaison d'égalité qui devrait s'écrire
Y==1
.

Mais vu le nombre d'erreurs que tu as dans ton programme, une chose est sûr, c'est que tu n'as même pas essayer de le compiler...
0