Hi,
I’m making “Cumulative Project: Rock Paper Scissors x99” and I have problem with two main tests:
getGameWinner() - Main Functionality
-
should declare when player one wins
-
should declare when the game is a tie
“Should declare when PLAYER TWO wins” is passing. Can anyone tell me why it isn’t working?
Code:
// All code should be written in this file.
let playerOneMoveOneType;
let playerOneMoveOneValue;
let playerOneMoveTwoType;
let playerOneMoveTwoValue;
let playerOneMoveThreeType;
let playerOneMoveThreeValue;
let playerTwoMoveOneType;
let playerTwoMoveOneValue;
let playerTwoMoveTwoType;
let playerTwoMoveTwoValue;
let playerTwoMoveThreeType;
let playerTwoMoveThreeValue;
let playerOnePoints;
let playerTwoPoints;
function setPlayerMoves(player, moveOneType, moveOneValue, moveTwoType, moveTwoValue, moveThreeType, moveThreeValue) {
if (player === 'Player One') {
playerOneMoveOneType = moveOneType;
playerOneMoveOneValue = moveOneValue;
playerOneMoveTwoType = moveTwoType;
playerOneMoveTwoValue = moveTwoValue;
playerOneMoveThreeType = moveThreeType;
playerOneMoveThreeValue = moveThreeValue;
} else if (player === 'Player Two') {
playerTwoMoveOneType = moveOneType;
playerTwoMoveOneValue = moveOneValue;
playerTwoMoveTwoType = moveTwoType;
playerTwoMoveTwoValue = moveTwoValue;
playerTwoMoveThreeType = moveThreeType;
playerTwoMoveThreeValue = moveThreeValue;
} else {return null;}
};
function getRoundWinner(roundNumber) {
switch(roundNumber) {
case 1:
return getMoveWinner(playerOneMoveOneType, playerOneMoveOneValue, playerTwoMoveOneType, playerTwoMoveOneValue);
case 2:
return getMoveWinner(playerOneMoveTwoType, playerOneMoveTwoValue, playerTwoMoveTwoType, playerTwoMoveTwoValue);
case 3:
return getMoveWinner(playerOneMoveThreeType, playerOneMoveThreeValue, playerTwoMoveThreeType, playerTwoMoveThreeValue);
}
}
playerOnePoints = 0;
playerTwoPoints = 0;
function getMoveWinner (playerOneMoveType, playerOneMoveValue, playerTwoMoveType, playerTwoMoveValue) {
if (playerOneMoveType === playerTwoMoveType && playerOneMoveValue === playerTwoMoveValue) {
return 'Tie'
} else if (playerOneMoveType === playerTwoMoveType && playerOneMoveValue > playerTwoMoveValue) {
playerOnePoints = (playerOnePoints + 1);
return 'Player One'
} else if (playerOneMoveType === playerTwoMoveType && playerOneMoveValue < playerTwoMoveValue) {
playerTwoPoints = (playerTwoPoints + 1);
return 'Player Two'
}
if (playerOneMoveType === 'rock') {
if (playerTwoMoveType === 'scissors') {
playerOnePoints = (playerOnePoints + 1);
return 'Player One';
} else {
playerTwoPoints = (playerTwoPoints + 1);
return 'Player Two';
}
} else if (playerOneMoveType === 'paper') {
if (playerTwoMoveType === 'rock') {
playerOnePoints = (playerOnePoints + 1);
return 'Player One';
} else {
playerTwoPoints = (playerTwoPoints + 1);
return 'Player Two';
}
} else {
if (playerTwoMoveType === 'paper') {
playerOnePoints = (playerOnePoints + 1);
return 'Player One';
} else {
playerTwoPoints = (playerTwoPoints + 1);
return 'Player Two';
}
}
}
function getGameWinner() {
if (!playerOneMoveOneType || !playerOneMoveTwoType ||
!playerOneMoveThreeType || !playerOneMoveOneValue ||
!playerOneMoveTwoValue || !playerOneMoveThreeValue ||
!playerTwoMoveOneType || !playerTwoMoveTwoType ||
!playerTwoMoveThreeType || !playerTwoMoveOneValue ||
!playerTwoMoveTwoValue || !playerTwoMoveThreeValue) {
return null }
if (playerOnePoints > playerTwoPoints) {return 'Player One';}
else if (playerOnePoints < playerTwoPoints) {return 'Player Two';}
else if (playerOnePoints = playerTwoPoints) {return 'Tie';}
}