Tournament generator

Messages postés
39
Date d'inscription
lundi 10 avril 2017
Dernière intervention
8 mai 2017
- 20 avril 2017 à 21:47 - Dernière réponse :
Messages postés
39
Date d'inscription
lundi 10 avril 2017
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 :))
Afficher la suite 

Votre réponse

7 réponses

Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
- 20 avril 2017 à 23:43
0
Merci
for (i=0; i<tplayers; i++) {

Messages postés
39
Date d'inscription
lundi 10 avril 2017
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...
Commenter la réponse de jordane45
Messages postés
1663
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
3 novembre 2018
- 20 avril 2017 à 23:54
0
Merci
bonjour

et a la place de eval met plutot parseInt

parseInt(document.tform.tplayer.value) 

Commenter la réponse de @karamel
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Dernière intervention
8 mai 2017
- 21 avril 2017 à 00:52
0
Merci
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...
Messages postés
39
Date d'inscription
lundi 10 avril 2017
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...
Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
>
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Dernière intervention
8 mai 2017
- 21 avril 2017 à 09:16
Messages postés
39
Date d'inscription
lundi 10 avril 2017
Dernière intervention
8 mai 2017
>
Messages postés
23300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 novembre 2018
- 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 ...
Commenter la réponse de iamtheone

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.