Bonjour,
J'essaie de faire un programme qui génère l'arbre d'un tournoi avec comme paramètres le nom du tournoi, le nombre de joueurs/équipes et le nom de chaque joueur/équipe. Je n'ai pas encore réfléchi à la mise en forme de l'arbre. Avec mon code actuel qui suit, j'essaie seulement de faire entrer les différents paramètres, notamment le nom de tous les joueurs/équipes dans une variable array.
<!DOCTYPE html>
<html>
<head>
<title>Tournament</title>
</head>
<body>
<h2>Tournament Generator</h2>
<p>This this the explication.</p>
<br /><hr /><br />
<form name="tform">
Tournament name <input type="text" name="tname" maxlength="21" placeholder="max 21 caracters"></input><br />
How many players/teams <input type="number" name="tplayer" value="1"></input><br />
<input type="button" name="tnext" value="Next" onClick="tnext2()"></input>
</form>
<br /><hr><br /><br />
<div id="tboxes"></div>
<br /><br /><br /><br />
<script>
var tplayers; var tboxes;
function tnext2() {
tplayers = eval(document.tform.tplayer.value);
tboxes = "<form name='tboxes'>";
for (i=0; i>tplayers; i++) {
tboxes += i + " <input type='text' name=" + i + "></input><br />";
}
tboxes += "<input type='button' name='tcreate' value='tCreate' onClick='tcreate2(tplayers)'></input></form>";
document.getElementById("tboxes").innerHTML = tboxes;
}
function tcreate2(tplayers) {
rdm = new Array(tplayers);
for (o=0; o>tplayers; o++) {
rdm[o] = document.tboxes.o.value;
}
document.getElementById("tboxes").innerHTML = "";
for (p=0; p>tplayers; p++) {
var choice = rdm[Math.floor(Math.random() * rdm.length)];
//affichage test
document.getElementById("tboxes").innerHTML = choice + "<br /";
rdm.splice(choice, 1);
}
}
</script>
</body>
</html>
Mais le code ne marche pas : aucun input text ne s'affiche dans la div; seulement le bouton. Et j'ai testé, le problème est que les for de mon script ne se lancent pas du tout... Je ne sais vraiment pas pourquoi :/ Help pls merci :))
<script>
var tplayers; var tboxes;
function tnext2() {
tplayers = eval(document.tform.tplayer.value);
tboxes = "<form name='tboxes'>";
for (i=0; i<tplayers; i++) {
tboxes += i + " <input type='text' id=" + i + "></input><br />";
}
tboxes += "<input type='button' name='tcreate' value='tCreate' onClick='tcreate2(tplayers)'></input></form>";
document.getElementById("tboxes").innerHTML = tboxes;
}
function tcreate2(tplayers) {
rdm = new Array(tplayers);
for (o=0; o<tplayers; o++) {
rdm[o] = document.getElementById(o).value;
}
document.getElementById("tboxes").innerHTML = "";
for (p=0; p<tplayers; p++) {
var choice = rdm[Math.floor(Math.random() * rdm.length)];
//affichage test
document.getElementById("tboxes").innerHTML += choice + "<br />";
rdm.splice(choice, 1);
}
}
</script>
Je souhaite afficher les valeurs des input dans un ordre aléatoire mais où une même valeur ne peut pas se répéter. Donc dans mon dernier for je supprime à chaque fois la variable de l'array qui a été affichée mais ça ne fonctionne pas... Ça s'exécute comme un random normal...
Ah je viens de trouver. La variable choice définie la value d'une variable de l'array. Et pas son emplacement dans l'array comme le laisse supposer ma ligne splice. Ducoup j'ai fais :
rdm.splice(rdm.indexOf(choice), 1);
et ça marche très bien.
Il me manque plus qu'à mettre les valeurs dans l'arbre du tournoi. Je vous cache pas que j'ai aucune idée...
21 avril 2017 à 00:47