I'm trying to make a code that works like this:
- Get number of teams (y) and number of players(x).
- Get x names and x ranks.
- Create balance teams based on the player ranks. Each team should have x/y players.
- Print each team separately.
I can't see where is my problem and why my code doesn't work. Hope you guys could help.
This is my code:
function step1() {
var teams = document.getElementById("teams").value;
var players = document.getElementById("players").value;
var main = document.getElementById("main");
main.innerHTML="";
for(var i=1;i<=players;i++){
main.innerHTML += "<input class='names' placeholder='Player "+i+"' type='text' style='width:100px'/> "+
"<input class='ranks' placeholder='Rank' type='text' style='width:40px'/><br/>";
}
main.innerHTML+="<br/><button onclick='buildTeams("+players+","+teams+")'>Build</button>";
}
function buildTeams(playersInt,teamsInt) {
var error=0;
var names = new Array(playersInt);
var ranks = new Array(playersInt);
var nameInp = document.getElementsByClassName("names");
var rankInp = document.getElementsByClassName("ranks");
for(var i=0;i<playersInt;i++) {
names[i] = nameInp[i].value;
}
for(var i=0;i<playersInt;i++) {
ranks[i] = rankInp[i].value;
}
var teams = new Array(teamsInt);
for(var i=0;i<teamsInt;i++) {
teams[i]=new Array(playersInt/teamsInt);
}
for(var i=0;i<(playersInt/teamsInt);i++) {
for(var j=0;j<teamsInt;j++) {
teams[i][j]=names[checkMvp(ranks)];
ranks[checkMvp(ranks)]=-1;
}
}
for(var i=0;i<teamsInt;i++) {
alert(teams[i]);
}
}
function checkMvp(ranks) {
var high= ranks[0];
var bpi=0;
for(var i=1;i<ranks.length;i++) {
if(ranks[i]>high) {
bpi=i;
}
}
return bpi;
}
<h2>Power Balance</h2>
<div id="main">
Number of teams:
<input type="text" id="teams" style="width:30px"/>
<br/><br/>
Number of players:
<input type="text" id="players" style="width:30px"/>
<br/><br/>
<p id="error"></p>
<input type="button" onclick="step1()" value="Next"/>
</div>
teams[i]=new Array(playersInt/teamsInt);Uncaught RangeError: Invalid array length