Привет, сообщество StackOverflow!
Я здесь новичок и только начал изучать JS через Odin Project. Я работаю над своим первым JS-проектом (камень, бумага, ножницы) и застрял....
Я подытожу свои намерения ниже, а затем мой код.
// Пользователь вводит значение камня, бумаги или ножниц
//С пользовательским значением оно будет сравниваться со значением выбора компьютера наугад
//В зависимости от этого сравнения как пользовательского ввода, так и сгенерированного компьютером, будет предоставлен оператор return
Перепробовали почти все и не знаете, как двигаться дальше! Пожалуйста помоги.
function computerPlay() {
let gameOptions = ['rock', 'paper', 'scissors'];
const gameChoice = Math.floor(Math.random() * gameOptions.length);
console.info(gameChoice, gameOptions[gameChoice]);
}
function playRound(playerSelection,computerSelection){
if (playerSelection === 'rock' && computerSelection === 'paper') {
return console.info('You lose! Paper beats rock.');
}else if (playerSelection === 'paper' && computerSelection === 'scissors') {
return console.info('You lose! Scissors beats paper.');
}else if (playerSelection === 'scissors' && computerSelection === 'rock') {
return console.info('You lose! Rock beats scissors');
}else if (playerSelection === 'rock' && computerSelection === 'rock') {
return console.info('Its a draw!');
}else if (playerSelection === 'paper' && computerSelection === 'paper') {
return console.info('Its a draw!');
}else if (playerSelection === 'scissors' && computerSelection === 'scissors') {
return console.info('Its a draw!');
}else if (playerSelection === 'paper' && computerSelection === 'rock') {
return console.info('You win!')
}else if (playerSelection === 'rock' && computerSelection === 'scissors') {
return console.info('You win!')
}else {
return console.info('You win!')
}
}
const playerSelection = prompt('Choose either rock, paper, or scissors', '');
const computerSelection = computerPlay();
console.info(playRound(playerSelection, computerSelection));
Я надеялся, что условный оператор во второй функции сможет это сделать. Все еще пытаюсь разобраться с функциями, параметрами и аргументами.
Любая помощь будет БОЛЬШИМ образом оценена!! Спасибо.
Ты был прав! Я ничего не вернул, поэтому никакой ценности. Спасибо за помощь человеку
computerPlay()
не возвращает никакого значения. Так что computerSelection
будет неопределенным.
Кроме того, измените эту строку console.info(playRound(playerSelection, computerSelection));
на просто playRound(playerSelection, computerSelection);
и удалите операторы return
из playRound()
.
Кроме того, ваша логика может быть значительно упрощена. Например, if (playerSelection === computerSelection) console.info("It's a draw");
Эй, мужик, спасибо за помощь. Я думал, что computerPlay() возвращает случайное значение из массива gameOption? ха-ха, спасибо за совет по упрощению, считайте меня полным новичком в JS!
Функция computerPlay не возвращает никакого значения. Я думаю, вы должны утешить каждое значение, прежде чем делать playRound
Я думал, что он возвращает значение из массива gameOptions? хм. В любом случае, спасибо за помощь, чувак.
Вы были правы, я должен был сначала вернуть их, чтобы получить ценность. Спасибо за помощь, очень признателен.
Первый шаг, вероятно, возвращает
gameChoice
изcomputerPlay()
. Поскольку это присваивание ничего не делает, поэтому вы вызываетеplayRound
сundefined
в качестве второго параметра во всех случаях.