Files
vb/script.js
2024-10-04 12:00:21 +02:00

65 lines
1.8 KiB
JavaScript

function randomizeTeams() {
let teamCount = 2;
if(document.getElementById("threeTeams").checked){
teamCount = 3;
}
if(document.getElementById("nTeams").checked){
teamCount = document.getElementById("nTeamsTextField").value;
}
const outputField = document.getElementById("teamOutput");
let textinput = document.getElementById("playerNames").value;
let names = textinput
.split('\n')
.map(function(str){return str.trim();})
.filter(function(str){return str}); // boolean interpretation is same as non-empty
teams = Array.from({ length: teamCount }, () => []);
playersPerTeam = Math.floor(names.length / teamCount);
let nameslen = names.length;
iterator = iter(teams);
for(let i =0; i < nameslen; i++){
index = Math.floor(Math.random()* names.length);
n = names[index];
names.splice(index,1);
team = iterator.next().value;
team.push(n);
}
outputField.innerHTML = teamstotext(teams)
}
function teamstotext(teams){
textinput = "";
for(let i =0; i < teams.length; i++){
textinput += "Team"+ (i+1)+ ": "+ teamtotext(teams[i]) + " <br>";
}
return textinput;
}
function teamtotext(team){
return team;
}
function* iter(list){
let index = 0;
while(true){
yield list[index % list.length];
index++;
}
}
function textchangelistener(){
let elem = document.getElementById("nTeamsTextField");
if(this.checked && this.id == "nTeams"){
elem.style.display = "block";
}
else {
elem.style.display = "none";
}
}
buttons = document.querySelectorAll("input[type='radio']");
buttons.forEach((x) => x.addEventListener("change", textchangelistener));