Created
May 20, 2017 13:23
-
-
Save walbinjr/4a6cc530cc328cd90ca2d860e87f737d to your computer and use it in GitHub Desktop.
random select with rates
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://jsfiddle.net/c7584nqt/2/ | |
function isFair(player1, player2) { | |
let sum = player1.rate + player2.rate; | |
if (sum == 4 || sum == 1) { | |
return false; | |
} | |
return true; | |
} | |
let players = [ | |
{ name: 'Apu', rate: 2 }, | |
{ name: 'Walter', rate: 2 }, | |
{ name: 'Aurelio', rate: 2 }, | |
{ name: 'Cesar', rate: 2 }, | |
{ name: 'Jeff', rate: 2 }, | |
{ name: 'Claudio', rate: 1 }, | |
{ name: 'Daniel', rate: 1 }, | |
{ name: 'Regis', rate: 1 }, | |
{ name: 'Big', rate: 1 }, | |
{ name: 'Lucas', rate: 1 }, | |
{ name: 'Vagner', rate: 0 } | |
]; | |
let pairs = []; | |
while(players.length > 0) { | |
let rand = Math.floor(Math.random() * players.length); | |
let player1 = players.splice(rand, 1).shift(); | |
if(players.length > 0) { | |
rand = Math.floor(Math.random() * players.length); | |
let player2 = players.splice(rand, 1).shift(); | |
while(!isFair(player1, player2) && players.length > 0) { | |
console.log("NOT FAIR: " + player1.name + " e " + player2.name); | |
players.push(player2); | |
rand = Math.floor(Math.random() * players.length); | |
player2 = players.splice(rand, 1).shift(); | |
} | |
let pair = [player1, player2]; | |
pairs.push(pair); | |
document.getElementByID('pairs').append(pair[0].name + " e " + pair[1].name); | |
} else { | |
console.log(player1.name + " sobrou!"); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment