Всем привет! Учусь js. Мне нужно было сделать так, чтобы если пользователь нажимал кнопку отмены при выборе - Камень-ножницы-бумага - или - Камень-ножницы-бумага-ящерица-спок - игра завершалась и показывала итоговые очки за всю игру. Это работает, но только, если в
} else if (userChoice == null) {
alert('ок')
break;
}
я пишу, например, !isNan(userChoice) или userChoice === '' || userChoice === ' '. Что делать? И, если вам не будет лень, подскажите - как мне укоротить код?
while (true) {
var gameModeChange = prompt('Выберите режим игры - rps или rpsls (Rock-paper-scissors или Rock-paper-scissors-lizard-spock)');
var computerScore = 0;
var userScore = 0;
if (gameModeChange === 'rps' || gameModeChange === 'rpsls') {
while (true) {
const computerRandChoice = () => {
let random = Math.random()
if (gameModeChange === 'rps') {
if (random <= 0.33) {
computer = 'камень';
} else if (0.34 <= random && random <= 0.66) {
computer = 'ножницы';
} else {
computer = 'бумага';
}
} else if (gameModeChange === 'rpsls') {
if (random <= 0.2) {
computer = 'камень';
} else if (0.21 <= random && random <= 0.4) {
computer = 'ножницы';
} else if (0.41 <= random && random <= 0.6) {
computer = 'бумага';
} else if (0.61 <= random && random <= 0.8) {
computer = 'ящерица';
} else {
computer = 'спок';
}
};
return computer
};
computerRandChoice()
let computerChoice = computerRandChoice();
if (gameModeChange === 'rps') {
let userChoice = prompt('Камень\nНожницы\nБумага\n(Отобразить) очки')
userChoice = userChoice.toLowerCase();
if (userChoice === 'камень' && computerChoice === 'ножницы' || userChoice === 'ножницы' && computerChoice === 'бумага' || userChoice === 'бумага' && computerChoice === 'камень') {
userScore += 1;
alert(`Вы получили очко, потому-что Вы выбрали ${userChoice}, а компьютер выбрал ${computerChoice}.`)
} else if (computerChoice === 'камень' && userChoice === 'ножницы' || computerChoice === 'ножницы' && userChoice === 'бумага' || computerChoice === 'бумага' && userChoice === 'камень') {
computerScore += 1;
alert(`Компьютер получил очко, потому-что вы выбрали ${userChoice}, а компьютер выбрал ${computerChoice}.`)
} else if (userChoice === 'очки') {
alert(`Вы: ${userScore}\nКомпьютер: ${computerScore}`)
} else if (userChoice === computerChoice) {
alert('Ничья');
} else if (userChoice == null) {
alert('ок')
break;
}
} else if (gameModeChange === 'rpsls') {
let userChoice = prompt('Камень\nНожницы\nБумага\nЯщерица\nСпок\n(Отобразить) Очки')
userChoice = userChoice.toLowerCase();
if (userChoice === 'камень' && computerChoice === 'ножницы' || userChoice === 'камень' && computerChoice === 'ящерица' || userChoice === 'ящерица' && computerChoice === 'бумага' || userChoice === 'ящерица' && computerChoice === 'спок' || userChoice === 'спок' && computerChoice === 'ножницы' || userChoice === 'спок' && computerChoice === 'камень' || userChoice === 'ножницы' && computerChoice === 'бумага' || userChoice === 'ножницы' && computerChoice === 'ящерица' || userChoice === 'бумага' && computerChoice === 'спок' || userChoice === 'бумага' && computerChoice === 'камень') {
userScore += 1;
alert(`Вы получили очко, потому-что Вы выбрали ${userChoice}, а компьютер выбрал ${computerChoice}.`)
} else if (computerChoice === 'камень' && userChoice === 'ножницы' || computerChoice === 'камень' && userChoice === 'ящерица' || computerChoice === 'ящерица' && userChoice === 'бумага' || computerChoice === 'ящерица' && userChoice === 'спок' || computerChoice === 'спок' && userChoice === 'ножницы' || computerChoice === 'спок' && userChoice === 'камень' || computerChoice === 'ножницы' && userChoice === 'бумага' || computerChoice === 'ножницы' && userChoice === 'ящерица' || computerChoice === 'бумага' && userChoice === 'спок' || computerChoice === 'бумага' && userChoice === 'камень') {
computerScore += 1;
alert(`Компьютер получил очко, потому-что вы выбрали ${userChoice}, а компьютер выбрал ${computerChoice}.`)
} else if (userChoice === computerChoice) {
alert('Ничья');
} else if (userChoice === 'очки') {
alert(`Вы: ${userScore}\nКомпьютер: ${computerScore}`)
} else if (userChoice == null) {
alert('ок')
break;
}
}
}
let diff = 0;
if (userScore > computerScore) {
diff += userScore - computerScore;
alert(`Вы победили с отрывом в ${diff} очко/очка/очков\nВы победили ${userScore} раз\nКомпьютер ${computerScore} раз`)
} else if (computerScore > userScore) {
diff += computerScore - userScore;
alert(`Компьютер победил вас с отрывом в ${diff} очко/очка/очков\nВы победили ${userScore} раз\nКомпьютер ${computerScore} раз`)
} else if (computerScore === userScore){
alert(`Ничья\nВы победили ${userScore} раз\nКомпьютер ${computerScore} раз`)
}
}
}