Почему я продолжаю получать NaN рядом с Player1 в своем приложении Rock Paper Scissors? - PullRequest
0 голосов
/ 28 октября 2019

Я продолжаю получать NaN рядом с тем, что пользователь добавляет в Player1, и я не уверен, почему.

Я пытался использовать скобки вокруг player1 и вокруг кавычек. Я не уверен, что это проблема конкатенации. Я также сделал заявление «Что-то не совсем правильно», чтобы посмотреть, смогу ли я выяснить, где ошибка, но не повезло.

var hands = ['Rock', 'Paper', 'Scissors'];

function getHand() {
  return hands[parseInt(Math.random() * hands.length) % 3];
}

var player1 = prompt("What is your name?");
console.log("Hello " + player1 + ". You are player 1. Player 2 is the computer.");

var player2 = "Computer";

var playWins = 0;
var compWins = 0;



function playRound() {
  var x = hand[hand.length - 1];
  var j = computer[computer.length - 1];

  var a = x.toString()
  var b = j.toString()

  if (a == b) {
    console.log("You guys tied!");

  } else if (a == "Scissors" && b == "Rock") {
    console.log(player1 + " has lost! Sadddd...");
    compWins++;
  } else if (a == "Paper" && b == "Rock") {
    console.log(player1 + " has wonnnn!!! Yay! I guess...");
    playWins++

  } else if (a == "Rock" && b == "Scissors") {
    console.log(player1 + " has wonnnn!!! Yay! I guess...");
    playWins++;
  } else if (a == "Paper" && b == "Scissors") {
    console.log(player1 + +" has lost! Sadddd...");
    compWins++;

  } else if (a == "Rock" && b == "Paper") {
    console.log(player1 + +" has lost! Sadddd...");
    compWins++;
  } else if (a == "Scissors" && b == "Paper") {
    console.log(player1 + " has wonnnn!!! Yay! I guess...");
    playWins++;
  } else {
    console.log("Something isn't quite right.")
  }
}


hand = [];
computer = [];

while (hand.length <= 3 || computer.length <= 3) {
  for (i = 1; i <= 5; i++) {
    console.log("Game number: " + i);
    hand.push(getHand());
    computer.push(getHand());

    playRound();

  }
}

console.log(player1 + " won " + playWins + " time(s)!");
console.log(player2 + " won " + compWins + " time(s)!");

if (playWins > compWins) {
  console.log(player1 + " Wins!");
} else if (compWins > playWins) {
  console.log("Computer Wins!");
} else {
  console.log("You guys tied altogether! Astonishing!")
}

Я ожидаю увидеть player1 + независимо от строки, зависящей от результатов, но вместо этого я получаю "player1NaN" несколько раз в случайных играх.

...