Partage
  • Partager sur Facebook
  • Partager sur Twitter

Boucle à double incrémentation foireuse

    20 janvier 2009 à 18:42:49

    Bonsoir amis zéros.

    J'ai un sérieux problème avec ma boucle....

    function CalculerMoyenne(form)
    {
    	var SommeElo = 0;
    	var NbrParties = 0;
    	var Pts = 0;
    	var EloDep = 0;
    	var Tmp;
    	var TmpElo;
    	var TmpRes;
    	var TmpDelta;
    	var i;
    
    	Tmp = form.EloDepart.value;
    	if (Tmp > "1000" && Tmp < "3000")
    	{
    		EloDep = eval(Tmp);
    	}
    	else
    	{
    		form.EloDepart.value = ""
    	}
    	
    	
    	i = document.getElementById("Adv").value;
    
    	for(j=2; j<(i+1)*2; j+2)
    	{
    		TmpElo = form.elements[j].value;
    		alert(TmpElo);
    		TmpRes = form.elements[j+1].selectedIndex;
    
    		if (TmpElo > "1000" && TmpElo < "3000" & TmpRes > 0)
    		{
    			TmpElo = eval(TmpElo);
    			TmpRes = (TmpRes - 1) / 2;
    			TmpDelta = EloDep - TmpElo;
    			
    			if ((Math.abs(TmpDelta) <= 350) || ((TmpDelta > 350) && (TmpRes < 1)) || ((TmpDelta < -350) && (TmpRes > 0)))
    			{
    				SommeElo = SommeElo + TmpElo;
    				NbrParties++;
    				Pts = Pts + TmpRes;
    			}
    		}
    		else
    		{
    			form.elements[j].value = "";
    			form.elements[j+1].selectedIndex = 0;
    		}
    	}
    	if (NbrParties > 0)
    	{
    		form.DeltaElo.value = SommeElo / NbrParties;
    		alert(SommeElo / NbrParties);
    		form.NbrGames.value = NbrParties;
    		alert(NbrParties);
    		form.Score.value = Pts;
    		alert(Pts);
    	}
    }
    


    Et voila le code HTML qui va avec :
    <div align="center" id="elo">
    	<form>
    		<table cellpadding="4">
    			<tr>
    				<td>
    					Catégorie :</b> <select name="Categorie" size="1"><option>Senior</option><option>Jeune</option></select>
    				</td>
    				<td>
    					<label>Votre Elo : <input type="text" size="8" maxlength="4" name="EloDepart" /></label>
    				</td>
    			</tr>
    			<tr>
    				<td><br />
    					Elo de vos adversaires et résultats : <br /><br />
    					<div id='eloadv'>
    						<input type='text' size='9' maxlength='4'> <select><option selected>Aucun</option><option>Perte</option>on>Nulle</option><option>Gain</option></select><br />
    					</div>
    					<br />
    					<input type="button" value="-" onclick="MoinsAdv();" /><input id="Adv" type="text" name="Adv" value="1" size="1" disabled><input type="button" value="+" onclick="PlusAdv();" />
    				</td>
    				<td>
    					Moyenne : <input type="text" size="10" name="DeltaElo" disabled /><br /><br />
    					Nombre : <input type="text" size="10" name="NbrGames" disabled /><br /><br />
    					Score : <input type="text" size="10" name="Score" disabled /><br /><br />
    				</td>
    			</tr>
    			<tr>
    				<td colspan="2">
    					<input type="button" name="CmdCalculer" value="Calculer l'ELO" onclick="CalculerElo(this.form)" class="buttonm" />
    					<input type="button" name="CmdEffacer" value="Nouveau calcul" onclick="EffacerRes(this.form)" /><br /><br />
    					Votre nouvel Elo : <input type="text" size="7" name="NewRating" disabled />
    				</td>
    			</tr>
    		</table>
    	</form>
    </div>
    


    Il faut savoir que le nombre de input dans le div id="advelo" peut etre modifier.

    Si vous avez des question, posez les moi, mais essayer surtout de comprendre pourquoi ce code ne marche pas :D

    Merci d'avance

    Kalex


    Edit : Le tout est en ligne ici : http://echecs.wintzenheim.free.fr/pages/elo.php
    • Partager sur Facebook
    • Partager sur Twitter

    Boucle à double incrémentation foireuse

    × 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