인프런 커뮤니티 질문&답변

강동훈님의 프로필 이미지

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

가위-바위-보 게임

가위바위보 문제풀이(영상과 다른 버젼)

작성

·

281

3

제가 풀었던 방법인데 영상 보시며 공부하시는 분 참고하시라고 올려봐요.

// 승리 무승부 패배

 //1. 이기는 경우 -choice == (aiChoice+1)%3 (나와 컴퓨터의 숫자가 2차이면 내가 이김. 3이 넘어가면 %을 이용해 0으로 초기화)

 //2. 지는 경우 -(choice+1)%3 == aiChoice (1차이면 컴퓨터가 이김.)

 //3. 비기는 경우-choice == aiChoice (같으면 무승부)

            if (choice == (aiChoice + 1) % 3)

                Console.WriteLine("당신이 이겼습니다.");

            else if ((choice + 1) % 3 == aiChoice)

                Console.WriteLine("컴퓨터가 이겼습니다.");

            else

            {

                Console.WriteLine("무승부입니다.");

            }

답변 5

1

if (choice + 1 == aiChoice)

            {

                Console.WriteLine("당신은 ai에게 패배하셨습니다..");

            }

            else if (choice - 1 == aiChoice)

            {

                Console.WriteLine("당신은 ai에게 승리하셨습니다!!");

            }

            else if (choice == aiChoice)

            {

                Console.WriteLine("..!! 비겼습니다!");

            }

            else

            {

                Console.WriteLine("엉뚱한 걸 내셨군요? 다시 시도해주세요!");

            }

        } 

플레이어가 보를 내고 ai가 가위를 낸 경우에 져야 하는데, 그 경우 결과값이 3이어서 "엉뚱한 걸 내셨군요? 다시 시도해주세요!"가 출력되네요!

저 같은 경우에는 두 결과값을 빼보는 걸로 해봤습니다

 if (choice - aiChoice == 0)
            {
                Console.WriteLine("비김");
            }
            else if (choice - aiChoice == -1)
            {
                Console.WriteLine("짐");
            }
            else if (choice - aiChoice == 2)
            {
                Console.WriteLine("짐");
            }
            else
            {
                Console.WriteLine("이김");
            }

0

안녕하세요 이제 입문한 비전공자입니다..

저는 이렇게 해봤는데 한번 봐주실 수 있나용

if (choice == aiChoice)
{ Console.WriteLine("무승부 입니다"); }

else if ((choice == 0) ? (aiChoice == 2) : (aiChoice == 1))
{ Console.WriteLine("당신의 승리입니다"); }

else if (choice > aiChoice)
{ Console.WriteLine("당신의 승리입니다"); }

else
{ Console.WriteLine("당신의 패배입니다"); }

0

규칙성이 있어 좀 더 간단하게 표현할 수 있을 것 같았는데, 이렇게 하면 되는군요!

0

제 코드도 남겨봅니다. ㅎㅎ 

 if ((choice - aiChoice) == 1 || (choice - aiChoice) == - 2)

  {

                Console.WriteLine("인간이 승리했습니다");

            }

 else if ((choice - aiChoice) == -1 || (choice - aiChoice) == 2)

            {

                Console.WriteLine("인간이 패배했습니다");

            }

else

            {

                Console.WriteLine("무승부입니다");

            }

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

ㅎㅎ 수고하셨습니다