При попытке запустить свой первый JavaScript проект, в «консоли» отображается полная функция вместо фактического результата, который я хочу получить от кода. - PullRequest
1 голос
/ 27 мая 2020

Я делаю свой первый проект JS, который представляет собой простую игру «Камень, ножницы, бумага», которая должна работать на консоли.

Я думаю, что мой код вполне правильный, но когда я "console.log" свою функцию (playRound), я получаю следующий фрагмент в "консоли": "Вы оба играли undefined, это ничья!". Я не уверен, что мне не хватает, поэтому, если бы кто-то мог взглянуть, это было бы очень признательно!

Вот мой сценарий:

function computerPlay (){
    const choices = ["Rock", "Paper", "Scissor"];
    const randomChoice = choices[Math.floor(Math.random() * choices.length)];

    return(randomChoice);
    }


console.log(computerPlay()) //just to show "computerPlay" works

function playRound(playerSelection, computerPlay) { //This is the actual round

    if (playerSelection == computerPlay) {
        result = `You both played ${computerPlay} It's a Draw!`;
    } else if ((playerSelection == "Paper" && computerPlay == "Rock") ||
               (playerSelection == "Rock" && computerPlay == "Scissor") ||
               (playerSelection == "Scissor" && computerPlay == "Paper")) {
                   result = `${playerSelection} beats ${computerSelection} You Win!`;
               } else {
                   result = `${computerPlay} beats ${playerSelection} You Loose!`;
               }
            return (result);
        }

        let playerSelection = 'rock'

console.log(playRound()) // to test if "playRound" works

Спасибо за проверку!

С уважением, кодировка newb ie

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Вы не вызвали функцию, которую вы просто печатаете внутри своей функции, используя console.log.

Попробуйте, как показано ниже:

function computerPlay() {
  const choices = ["Rock", "Paper", "Scissor"];
  const randomChoice = choices[Math.floor(Math.random() * choices.length)];

  return (randomChoice);
}

computerPlay();//call it

function playRound(playerSelection, computerPlay) { //This is the actual round

  if (playerSelection == computerPlay) {
    result = `You both played ${computerPlay} It's a Draw!`;
  } else if ((playerSelection == "Paper" && computerPlay == "Rock") ||
    (playerSelection == "Rock" && computerPlay == "Scissor") ||
    (playerSelection == "Scissor" && computerPlay == "Paper")) {
    result = `${playerSelection} beats ${computerSelection} You Win!`;
  } else {
    result = `${computerPlay} beats ${playerSelection} You Loose!`;
  }
  return (result);
}

let playerSelection = 'rock'
playRound(playerSelection, playerSelection);//pass parameter in calling funciton
console.log(result) // to test if "result" is accurate
1 голос
/ 27 мая 2020

Как только вы определите функцию, вы должны вызвать ее с параметрами, чтобы увидеть результат. Функция playRound имеет 2 параметра, поэтому замените console.log(playRound) на console.log(playRound(playerSelection, computerPlay())).

...