Partage
  • Partager sur Facebook
  • Partager sur Twitter

comparer valeurs d'un tableau et garder la plus faible

Sujet résolu
    12 octobre 2008 à 18:39:16

    Salut ! :)

    J'ai un problème d'algorithme assez contrariant, vous pourrez peut-être m'aider.

    Dans le cadre d'un jeu en ligne, on a une page où l'on peut choisir une quantité de vaisseaux à envoyer en mission, j'aimerai que suivant ce qu'on sélectionne javascript donne la vitesse de croisière de la flotte de vaisseaux.
    La vitesse de croisière se calera sur la vitesse du vaisseau le plus lent de la flotte.

    J'ai tenté une fonction mais sa bug bien comme il faut :(

    var nb_type_vaisso = 3;
    var vitesse_vaisso = new Array('1000', '10000', '5000');
    var vitesse_totale = 0;
    var j = 0;
    
    /// CALCUL DE LA VITESSE DE CROISIERE  ///
    //// ON GARDE LA VITESSE DU VAISSO LE PLUS LENT PARMIS CEUX QUI SONT SELECTIONNES  ////
    for(var i = 0; i < nb_type_vaisso ; i++) 
    {
            /// si la selection du vaisso est > 0  ////
    	if(document.getElementById('selection_vaisseaux'+i).value && document.getElementById('selection_vaisseaux'+i).value > 0) 
    	{
    		if(j == 0) /// pour commencer on concerve la vitesse du premier type de vaisso selectionné ///
    			vitesse_totale = vitesse_vaisso[i];
    		else if (j == 1) /// si le type de vaisso en cours de traitement a une vitesse plus faible que vitesse_totale on remplace vitesse_totale par sa vitesse  /// 
    			if(vitesse_vaisso[i] < vitesse_totale)
    				vitesse_totale = vitesse_vaisso[i];
    						
    		j = 1;
    	}
    }
    


    LES BUGS :
    Si robots0 = 0 (vitesse : 1 000) & robots1 = 10 (vitesse : 10 000) & robots2 = 10 (vitesse : 5 000) -> vitesse_totale = vitesse_robots1
    (10 000) --> ERREUR ! vitesse_totale devrait valoir 5 000

    Si robots0 = 10 (vitesse : 1 000) & robots1 = 10 (vitesse : 10 000) & robots2 = 10 (vitesse : 5 000) -> vitesse_totale = vitesse_robots0
    (1 000) --> OK !


    Merci de votre aide ;)
    • Partager sur Facebook
    • Partager sur Twitter
      12 octobre 2008 à 20:54:31

      Comme ca :
      var vitesse = 0;
      for(var i = 0; vitesse_vaisso[i] ; i++) 
      {
              /// si la selection du vaisso est > 0  ////
      	if(document.getElementById('selection_vaisseaux'+i).value && document.getElementById('selection_vaisseaux'+i).value > 0) 
      		if(vitesse_vaisso[i] < vitesse)
      				vitesse = vitesse_vaisso[i];
      }
      
      • Partager sur Facebook
      • Partager sur Twitter
        12 octobre 2008 à 21:12:57

        Merci beaucoup tu m'a ouvert les yeux :)

        j'ai écrit ça :

        vitesse_totale = 10000;
        for(var i = 0; i < nb_type_vaisso ; i++) 
        {
                /// si la selection du vaisso est > 0  ////
        	if(document.getElementById('selection_vaisseaux'+i).value && document.getElementById('selection_vaisseaux'+i).value > 0) 
        		if(vitesse_vaisso[i] < vitesse_totale)
        				vitesse_totale = vitesse_vaisso[i];
        }
        


        c'était tout bête en faite ^^
        • Partager sur Facebook
        • Partager sur Twitter
          12 octobre 2008 à 21:18:21

          Oui ^^ .
          Je croyais au début pouvoir utiliser la fonction min en math, mais apparemment, il a pas l'air d'aimer les tableaux en paramètre, dommage ^^ .
          • Partager sur Facebook
          • Partager sur Twitter

          comparer valeurs d'un tableau et garder la plus faible

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown