-
가위바위보 알고리즘은
if문 9개로 만들어도 전혀 문제없지만
여러 방법을 소개하고자 합니다.이 글에선 숫자로 바꿔서 진행하겠습니다.
A가 이기는 경우의 수
가위 = 0, 바위 = 1, 보 = 2
같다면 무승부로 하고
A가 이기는 경우 3가지만
기준을 잡아서 만드는 방법입니다.function rspWinnerCheck(a, b) { if (a == b) { return "무승부"; } // A 가위 > 보 B else if (a == 0 && b == 2) { return "A 승리"; } // A 바위 > 가위 B else if (a == 1 && b == 0) { return "A 승리"; } // A 보 > 바위 B else if (a == 2 && b == 1) { return "A 승리"; } else { return "B 승리"; } }
나머지 연산자
가위 = 0, 바위 = 1, 보 = 2
가위바위보를 숫자로 바꾸고
나머지 연산자를 써서 0~2로 순환 시켰을 때
+1 높은게 이긴다는걸 이용한 방법입니다.function rspWinnerCheck(a, b) { if (a == b) { return "무승부"; } else if ((a + 1) % 3 == b) { return "B 승리"; } else { return "A 승리"; } }
그리고 A의 승패만 확인하고자 한다면
A에서 B를 뺀 차이 값에서
음수가 나오지 않게 2만 더해주었을 때
승리: 0, 패배: 1, 무승부: 2가 나오는 방법입니다.function rspCheck(a, b) { const result = ["승리", "패배", "무승부"]; return result[(a - b + 2) % 3]; }
무승부, 승리, 패배 순서로 바꾸고자 하면
2를 더하지 않고 3을 더해주면 됩니다.댓글