Tournament generator

iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017
- Modifié le 20 avril 2017 à 23:50
iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017
- 21 avril 2017 à 11:50
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 :))
A voir également:

3 réponses

jordane45
Messages postés
35404
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
356
20 avril 2017 à 23:43
for (i=0; i<tplayers; i++) {

0
iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017

21 avril 2017 à 00:47
Ça marche merci bien mais c'est illogique non ? i est déjà inférieur...
0
@karamel
Messages postés
1807
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
5 mai 2022
144
20 avril 2017 à 23:54
bonjour

et a la place de eval met plutot parseInt

parseInt(document.tform.tplayer.value) 

0
iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017

21 avril 2017 à 00:52
Un dernier petit problème :
<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...
0
iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017

21 avril 2017 à 09:01
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...
0
jordane45
Messages postés
35404
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
356 > iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017

21 avril 2017 à 09:16
0
iamtheone
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Statut
Membre
Dernière intervention
8 mai 2017
> jordane45
Messages postés
35404
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 mai 2022

21 avril 2017 à 11:50
Merci bien mais je vais essayer moi même, je suis là pour apprendre... et j'aimerais le faire interactif ...
0