본문 바로가기

문제 해결 알고리즘 기초/몸 풀기

가위 바위 보 게임

※ 웹 환경에 최적화된 서식이므로 웹 페이지로 열람함을 권장.

 

가위 바위 보 게임

가위는 보를 이기고, 보는 바위를 이기고, 바위는 가위를 이긴다. 세 가지 수에 의해 승패가 순환되므로 모듈러 연산을 통해 승패를 구분지을 수 있다. 

 

             가위 

       ↗             ↘

 바위       ←        보

 

가위 : 1, 바위 : 2, 보 : 3, 내가 낸 것 : x, 상대가 낸 것 : y 이면, (x % 3) + 1 == y 일 때 나는 진다. 따라서, 다음 세 가지 경우를 검사해 승패를 결정 지을 수 있다. 

 

 1. x == y (무승부)

 2. (x % 3) + 1 == y (패배)

 3. else (승리)

 

void rockPaperScissors(int x, int y) {
	if (x == y) cout << "Draw.";
	else if ((x % 3) + 1 == y) cout << "Winner is y.";
	else cout << "Winner is x.";
}