(백분율을 모두 100으로 가정 할 때)
먼저 선수를 주문해야합니다. 그런 다음 1에서 100까지 임의의 숫자를 가져 와서 임의의 숫자가 속한 플레이어를 찾습니다. 예를 들어
: 위 예에서
// Modified json to array so we can easily loop through them
// If you would like help turning the json to an array, I can provide code for that upon request
var players = [
{
chance: 20
},
{
chance: 40
},
{
chance: 40
}
];
// Generate random number
var perc = Math.random() * 100; // between 0 and 99.999~
// Save where we are in the percentage
var currentPerc = 0;
// Loop through the players and check who the random number chose
for (var pID = 0; pID < players.length; pID++) {
// Check if the current player we are looking at has won
if (perc < (players[pID].chance + currentPerc)) {
alert("PLAYER " + (pID + 1) + " HAS WON.");
// Do player winning code here
break; // break out of the loop, we're done
} else {
currentPerc += players[pID].chance;
}
}
는 (인 Math.random 우리에게 0.99-0.0 ~ 제공 이후 0.45 * 100), 난수 (45)를 선택한 것으로 상상한다. 플레이어 (1)가 수상했다 경우는 임의의 숫자는 첫 번째 반복을 선택으로 그 플레이어 (2) (45)를 사용하여
0 to 20 = Player 1 wins
21 to 60 = Player 2 wins
61 to 100 = Player 3 wins
을 수상 의미, 우리는 확인한다. 그는 그렇게하지 않았으므로 플레이어 1의 백분율을 "현재 백분율"에 추가합니다.
두 번째 반복에서 우리는 플레이어 2를 확인합니다. 45 < (20 + 40)부터 2 번 선수가 선정되었습니다. 우리는 그가 이겼다는 것을 알리고 그것에 대한 코드를 작성합니다.
무작위로 1에서 100 사이의 숫자를 그립니다. 1에서 20이면 플레이어 1이 이깁니다. 21-100이면 플레이어 2가 승리합니다. 또한'player1'을 두 번 정의했습니다. – Santi
산티가 방금 말한 무작위 기능 – Tom
[ask]를 읽어주세요. 핵심 구절 : "검색 및 연구"및 "당신이 직접 해결하지 못하게하는 어려움을 설명하십시오." –