Skip to content Skip to sidebar Skip to footer

Javascript Game Problems

So i am making a simple Rock, Paper, Scissors game. But when I run it. It doesn't gave the output I am looking for. It might be a simple mistake but any help would be appreciated.

Solution 1:

Its missing some game logic and syntax is slightly wrong, id rewrite it so it is more verbose, like the following.

const tolowerUcFirst = v => v.charAt(0).toUpperCase() + v.slice(1).toLowerCase()

const answer = prompt(
  'Do you want to play Rock Paper Scissors? Type yes or no!'
)

if (answer && ['Y', 'YES'].includes(answer.toUpperCase())) {
  let board = ['ROCK', 'PAPER', 'SCISSORS']
  let answer = prompt('Rock, Paper, or Scissors?')

  if (board.includes(answer.toUpperCase())) {
    let them = board[Math.floor(Math.random() * 3)]
    let you = answer.toUpperCase()

    if (them === you) {
      console.log('draw', you, them)
      alert(`Draw, they choose ${tolowerUcFirst(them)} too!`)
    } else {
      // win rules
      if (
        // SCISSORS
        (you === 'SCISSORS' && them === 'PAPER') ||
        // PAPER
        (you === 'PAPER' && them === 'ROCK') ||
        // ROCK
        (you === 'ROCK' && them === 'SCISSORS')
      ) {
        console.log('you win', you, them)
        alert(`You win, they choose ${tolowerUcFirst(them)}!`)
      } else {
        console.log('you lose', you, them)
        alert(`You lose, they choose ${tolowerUcFirst(them)}!`)
      }
    }
  }
}

Post a Comment for "Javascript Game Problems"