need help pour lotto en JS

need help pour lotto en JS - HTML/CSS - Programmation

Marsh Posté le 10-05-2005 à 12:39:17    

bonjour à tous,
 
Donc voila, j'ai un travail à rendre pour l'école en JS qui consiste faire un tirage lotto (generer 6 nombres de 1 à 20, les triller par ordre croissant et vérifier k'il n'y a pas 2x les mêmes, si c le cas, ajouter 1).
 
j'ai quelques bugs dont je n'arrive po a m'en débrasser, est-ce que quelqun pourai m'aider ?
 
merci d'avance
Raph
ps: je ne connais pas grand chose au JS et je dois le faire avec se que l'on nous a apris. autrement dit, ne rmplacez par des fonction par d'autres exsistantes svp
 
 
 
 
tab=new Array(6);
for (var i=1; i<6; i++)
 {
 tab[i]=Math.ceil(Math.random()*20);
 }
 
 
function tri()
{
var j=1;
for (var k=0; k<5; k++)
 {
 for (var i=0; i<6; i++)
  {
   if (tab[i]==5)
   {
   Tab[i]=Math.min(tab[i],tab[0]);
   }
    else
    {
    Tab[i]=Math.min(tab[i],tab[j]);
    j++;
    }  
  }
 }
}
 
function lotto()
{
tri()
for (i=1; i<7; i++)
 {
 document.getElementById("slot"+i).src=tab[(i-1)]+'.jpg';
 }
if (b==a)
 {
 b=b++;
 }
  else
  {
   if (c==b)
   {
   c=c++
   }
    else
    {
     if (d==c)
     {
     d=d++;
     }
      else
      {
       if (e==d)
       {
       e=e++;
       }
        else
        {
         if (f==e)
         {
         f=f++;
         }
        }
      }
    }
  }
}
 
 
 
 
voici l'erreur qu'il me met
http://users.skynet.be/bk319443/1.jpg


Message édité par raphk2000 le 10-05-2005 à 12:48:34
Reply

Marsh Posté le 10-05-2005 à 12:39:17   

Reply

Marsh Posté le 10-05-2005 à 12:49:32    

Euhhh, depuis quand dans un tirage loto on peut avoir deux fois le meme nombre ?
 
Perso j'aurai vu ca comme ca :
- On construit un tableau contenant tous les nombres.
- On fait un random sur la taille max du tableau. On "recupere" le nombre, puis on efface la case correspondante dans le tableau (du coup le tableau se reduit).
- On recommance jusqu'a avoir le nombre souhaite de numeros.
- On trie le resultat.
 
On pourrait meme remplir aleatoirement le tableau (mais on se retrouve de nouveau avec le probleme des collisions, qui n'apparait pas dans la 1ere proposition [sans ajout aleatoire des nombres dans le tableau] ).
 
Ensuite ta methode tri et comparaison me plaisent pas beacoup.
 
Pour finir sache que l'on fait pas les devoirs des autres.
En revanche si tu as une question precise, la on peut t'aider.
 
[edit]
J'ai vu ton image :
tab != Tab
[/edit]
 
/me se demande s'il n'a justement pas faire le travail a sa place en lui proposant un autre algo...


Message édité par cerel le 10-05-2005 à 12:51:44
Reply

Marsh Posté le 10-05-2005 à 13:09:53    

je ne t'avais pas demandé un autre algo mais juste m'aider a résoudre un bug

Reply

Marsh Posté le 10-05-2005 à 13:24:32    

dans la fonction lotto lorsque je demande d'afficher les nombres générés avant de passer au tri il n'y a pas de problème
mais apres le tri, par contre il me dit NaN, pourquoi se ne sont plus des nombres ?
 
ps: aucune erreur n'est affichée dsla console.

Code :
  1. function tri()
  2. {
  3. var j=1;
  4. for (var k=0; k<5; k++)
  5. {
  6. for (var i=0; i<6; i++)
  7.  {
  8.   if (tab[i]==5)
  9.   {
  10.   tab[i]=Math.min(tab[i],tab[0]);
  11.   }
  12.    else
  13.    {
  14.    tab[i]=Math.min(tab[i],tab[j]);
  15.    j++;
  16.    }
  17.  }
  18. }
  19. }
  20. function lotto()
  21. {
  22. tab=new Array(6);
  23. for (var i=0; i<6; i++)
  24. {
  25. tab[i]=Math.ceil(Math.random()*20);
  26. }
  27. alert(tab[0]+" "+tab[1]+" "+tab[2]+" "+tab[3]+" "+tab[4]+" "+tab[5]);
  28. tri()
  29. alert(tab[0]+" "+tab[1]+" "+tab[2]+" "+tab[3]+" "+tab[4]+" "+tab[5]);
  30. document.getElementById("slot1" ).src=tab[0]+'.jpg';
  31. document.getElementById("slot3" ).src=tab[2]+'.jpg';
  32. document.getElementById("slot4" ).src=tab[3]+'.jpg';
  33. document.getElementById("slot5" ).src=tab[4]+'.jpg';
  34. document.getElementById("slot6" ).src=tab[5]+'.jpg';
  35. }

Reply

Marsh Posté le 10-05-2005 à 14:36:14    

Essaie de trouver un algo qui tient la route avant de penser l'ecrire en javascript ou tout autre langage. Ta methode est clairement bancale et peu efficace : ferais tu la meme chose si tu devais le faire "a la main" ? A mon avis non, donc tu devrais te concentrer d'abord sur ca. Le javascript viendra bien apres :)

Reply

Marsh Posté le 10-05-2005 à 14:40:08    

Citation :


ps: je ne connais pas grand chose au JS et je dois le faire avec se que l'on nous a apris. autrement dit, ne rmplacez par des fonction par d'autres exsistantes svp


 
Le prof qui va evaluer ton travail serait-il vraiment du genre a sanctionner tout eleve faisant preuve d'initiative en utilisant des fonctions parfaitement documentées mais non presentes dans le cours ? Ce serait vraiment tout a fait inattendu !

Reply

Marsh Posté le 10-05-2005 à 19:12:16    

Donc voila se que j'ai fait pour generer 6 nombres de 1 à 20 et ensuite pour les triller.
Mon prob actuellement c'est que ma boucle x fonctionne sans prob alors que ma boucle z ne tourne qu'une fois au lieu de 5. quelqun peut me mettre sur la voie et me dire pourquoi elle ne fai qu'un tour ?

Code :
  1. tab=new Array(6);
  2. for (var i=0; i<6; i++)
  3.  {
  4.  tab[i]=Math.ceil(Math.random()*19)+1;
  5.  }
  6. var y=1;
  7. for (var z=0; z<5; z++)
  8. {
  9. for (var x=0; x<5; x++)
  10.  {
  11.  if(tab[x]>tab[y])
  12.   {
  13.   var b=tab[x];
  14.   tab[x]=tab[y];
  15.   tab[y]=b;
  16.   y++;
  17.   }
  18.   else
  19.    {
  20.    y++;
  21.    }
  22.  }
  23. }


Message édité par raphk2000 le 10-05-2005 à 19:17:22
Reply

Sujets relatifs:

Leave a Replay

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