Out of boredom I've decided to make a Russian Roulette game out of Javascript. I've managed to do the bullet part which is a random number between 1 and 6 (16,66%). Everytime the random number hits '1', the player will be dead and will be removed from the player list. The players are stored in an array.
Once the player is dead and removed from array, it gives an undefined as result which is strange since my array selector is working fine. How does the code give an undefined as result when a name gets removed from the array?
var players = ["Dmitry", "Sergey", "Nikolai", "Vladimir"];
var totalPlayers = players.length;
var playerSelector = 0;
function showPlayers(){
alert(players);
}
function startGame(){
var randomNumber = Math.floor(Math.random() * 6) + 1;
if (playerSelector == totalPlayers){
playerSelector = 0;
}
if (randomNumber == 1) {
alert("Player: " + players[playerSelector] + "\nAmmo Slot " + randomNumber + "\nYou are dead..");
players.splice(playerSelector, 1);
}
else {
alert("Player: " + players[playerSelector] + "\nAmmo Slot " + randomNumber + "\nYou survived");
}
playerSelector++;
}
<button onclick="startGame()">Start Roulette</button>
<button onclick="showPlayers()">Show Players</button>