Rock Paper Scissors
Let's play! You have to return which player won! In case of a draw return Draw!.
Examples:
rps('scissors','paper') // Player 1 won!
rps('scissors','rock') // Player 2 won!
rps('paper','paper') // Draw!
const rps = (p1, p2) => {
if (p1 === p2) {
return "Draw!";
}
else if (p1 === 'rock') {
if (p2 === 'scissors')
return "Player 1 won!";
else
return "Player 2 won!";
}
else if (p1 === 'scissors') {
if (p2 === 'paper')
return "Player 1 won!";
else
return "Player 2 won!";
}
else {
if (p2 === 'rock')
return "Player 1 won!";
else
return "Player 2 won!";
}
};
다른 솔루션들을 보니까 내가 얼마나 정직하게 풀었는지 알게 되었다... 🤦♀️🥲
if 문으로도 더 짧게 둘일 수도 있고,
const rps = (p1, p2) => {
if (p1 == p2)
return 'Draw!';
if (p1 == 'rock' && p2 == 'scissors')
return 'Player 1 won!'
else if (p1 == 'scissors' && p2 == 'paper')
return 'Player 1 won!'
else if (p1 == 'paper' && p2 == 'rock')
return 'Player 1 won!'
else
return 'Player 2 won!';
};
rules
객체로 key를 p1으로, value를 p2로 생각하고 p1이 이기는 경우만 객체로 담아서 이 경우에만 return "Player 1 won!"
을 반환한 것이다! 와 신기해 객체로 풀 생각을 하다니....!😮
const rps = (p1, p2) => {
if (p1 === p2) return "Draw!";
var rules = {rock: "scissors", paper: "rock", scissors: "paper"};
if (p2 === rules[p1])
return "Player 1 won!";
else
return "Player 2 won!";
};