Compare commits

...

3 Commits

Author SHA1 Message Date
fabien
a0271c5112 ajout du nombre d'adversaires joué 2025-01-25 18:32:55 +01:00
fabien
333949f761 choisir le niveau d'alea 2024-09-12 21:05:08 +02:00
fabien
874955b86e esthétisme 2024-09-12 20:53:18 +02:00

View File

@@ -63,10 +63,10 @@
while(tables < maxgameplayed && essai < 10) {
essai++;
selectedGame = findgame(playersAvailableInSession, gameThisSession);
showDebug( "try for " +selectedGame +", players disponibles "+playersAvailableInSession.length );
//showDebug( "try for " +selectedGame +", players disponibles "+playersAvailableInSession.length );
possibleplayers = chooseplayers(playersAvailableInSession, selectedGame);
showDebug ("players dispo " +possibleplayers.length + " <br/>" );
// showDebug ("players dispo " +possibleplayers.length + " <br/>" );
//youpi , une table faite
if(possibleplayers.length >= playerAtTable ) {
@@ -99,12 +99,13 @@
//verification
show("<p><b>Vérification<b><br/>");
for( const player in played) {
var allplayed = Object.keys(played[player]).length == games.length;
for( const player of players) {
var allplayed = player.gamesPlayed.length == games.length;
if (allplayed) {
showPass(player + " a joué à tous les jeux");
uniqOpponants = new Set(player.opponents);
showPass(player.name + " a joué à tous les jeux &nbsp;&nbsp;&nbsp; avec "+ uniqOpponants.size +" adversaires différents");
}else {
showWarning( player + " a joué à seulement" + JSON.stringify(played[player]) );
showWarning( player.name + " a joué à seulement" + JSON.stringify(player.gamesPlayed) );
}
}
}
@@ -148,14 +149,18 @@
selectedjoueur = "";
bestscore=0;
iterateur = playersAvailableInSession.length;
for (player of playersAvailableInSession ) {
if( player.gamesPlayed.includes(selectedGame) ) continue;
playersorted = playersAvailableInSession
.filter(p=>!p.gamesPlayed.includes(selectedGame));
if ( document.getElementById("shuffle").checked ) {
playersorted = playersorted.sort((a,b) =>0.5 - Math.random());
}
for (player of playersorted ) {
preference[player] = { forte:[], faible:[], nulle : [], score:0} ;
for (opositeplayer of playersAvailableInSession ) {
if( player === opositeplayer || opositeplayer.gamesPlayed.includes(selectedGame) )
continue; //lui-mmeme ou déjà joué a ce jeu, niet!
for (opositeplayer of playersorted ) {
if( player === opositeplayer )
continue; //lui-meme, niet!
nbrencontre= player.opponents.filter(o => o ===opositeplayer).length;
if (nbrencontre==0) {
preference[player].forte.push(opositeplayer);
@@ -205,22 +210,24 @@
show ("<span style='color:green' >"+ text +"</span><br/>");
}
function showWarning(text){
show ("<span style='color:red' >"+ text +"</span><br/>");
}
function showWarning(text){
show ("<span style='color:red' >"+ text +"</span><br/>");
}
function showDebug(text){
show ("<span style='color:gray' >"+ text +"</span><br/>");
}
function show(text) {
elem = document.getElementById("results");
elem.insertAdjacentHTML( 'beforeend', text);
}
function showDebug(text){
show ("<span style='color:gray' >"+ text +"</span><br/>");
}
function show(text) {
elem = document.getElementById("results");
elem.insertAdjacentHTML( 'beforeend', text);
}
</script>
<div id="param" style="float:left;width:50%; text-align:center">
Nombres de jouers (nom inventés) <input id="players" name="players" placeholder="nombre de joueurs" type ="text"/><br/>
Nombres de joueurs par tables <input id="tables" name="tables" placeholder="nombre de joueurs par table" type ="text"/><br/>
Nombres de jeux à jouer <input id="games" name="games" placeholder="nombre de jeux" type ="text"/><br>
Maximiser le nombre d'adversaires ( tournoi rallongé) <input id="shuffle" name="shuffle" type="checkbox"/><br>
<button onclick="compute();" > Calculer</button>
</div>
<div id="results" style="float:left;width:50%;">
@@ -228,4 +235,4 @@ les sessions de jeu : <br/>
</div>
</body>
</html>
</html>