Есть теория что: из 100 человек, у каждого из которых по 10₪, во время долгой игры в "бросок монеты", один человек получит все деньги, у остальных же будет 0. Решил проверить с помощью JS. Но пока что получилось проверить эту теорию, имея только двух человек.
Вопрос: как проверить эту теорию сразу на всех остальных 100 + вывести количество всех бросков? И правильно ли вообще начато написание кода? Если нет - то как нужно было сделать?
Исходный код:
Массив с людьми в виде объектов(допустим пока 4), у каждого из них 10₪ каждый из них может загадывать, выпадет heads || tails
const persons = [
{
name: "Persone1",
cash: 10,
choice: () => Math.round(Math.random()) < 1 ? 'Heads' : 'Tails'
},
{
name: "Persone2",
cash: 10,
choice: () => Math.round(Math.random()) < 1 ? 'Heads' : 'Tails'
},
{
name: "Persone3",
cash: 10,
choice: () => Math.round(Math.random()) < 1 ? 'Heads' : 'Tails'
},
{
name: "Persone4",
cash: 10,
choice: () => Math.round(Math.random()) < 1 ? 'Heads' : 'Tails'
}
];
Функция броска монетки:
function coinFlip() {
return Math.round(Math.random()) < 1 ? 'Heads' : 'Tails';
}
Функция игры, друг с другом, до тех пор пока у одного из них cash не будет равен 0:
function game() {
let count = 0;
let playerOne = persons[0];
let playerTwo = persons[1];
for(let i = 0; true; i++) {
if (playerOne.cash && playerTwo.cash !== 0) {
if (playerOne.choice() === coinFlip()) {
playerOne.cash++
playerTwo.cash--
} else {
playerOne.cash--
playerTwo.cash++
}
count++
} else {
return playerOne.cash === 0 ?
`Winner: ${playerTwo.name} with ${playerTwo.cash}₪ after ${count}` :
`Winner: ${playerOne.name} with ${playerOne.cash}₪ after ${count}`;
}
}
}
Попытка добавить остальных игроков с помощью цикла:
function bigGame(arr) {
let count = 0;
let playerOne;
let playerTwo;
for (let i = 0; i < arr.length; i++) {
playerOne = arr[i]
playerTwo = arr[i+1]
for(let j = 0; true; j++) {
if (playerOne.cash && playerTwo.cash !== 0) {
if (playerOne.choice() === coinFlip()) {
playerOne.cash++
playerTwo.cash--
} else {
playerOne.cash--
playerTwo.cash++
}
count++
} else if (arr.indexOf(playerOne) == arr.length || arr.indexOf(playerTwo) == arr.length && playerOne.cash === 0 || playerTwo.cash === 0) {
return playerOne.cash === 0 ?
`Winner: ${playerTwo.name} with ${playerTwo.cash}₪ after ${count}` :
`Winner: ${playerOne.name} with ${playerOne.cash}₪ after ${count}`;
} else {
playerOne.cash === 0 ? playerOne = arr[arr.indexOf(playerOne) + 1] : playerTwo = arr[arr.indexOf(playerTwo) + 1];
}
}
}
}
Заранее спасибо