호빵의 IT 개발소

[C#] 8. 간단한 가위바위보 게임 만들기 본문

C#, 유니티/C# 기초

[C#] 8. 간단한 가위바위보 게임 만들기

호빵Stack 2021. 12. 28. 21:44

if문과 switch문을 활용하여 간단한 가위바위보 게임을 만들어 보겠습니다.

 

//0 : 가위, 1 : 바위, 2 : 보

Random rand = new Random();

int aiChoice = rand.Next(0, 3); // 0~2사이의 랜덤값 생성(rand.Next는 0이상 3미만으로 알고 계시면 됩니다.)

int choice = convert.Toint32(Console.ReadLine()); //Console.ReadLine()은 콘솔창에서 엔터를 누를 때까지 기다리는 부분입니다. Toint32는 콘솔창에서 받은 값을 숫자로 변형시켜주고 convert는 변형된 숫자를 넘겨주는 역할을 합니다.



switch (choice) //플레이어의 선택을 조건문으로 작성
{
    case 0 :
        Console.WriteLine("당신은 가위를 냈습니다.");
        break;

    case 1 :
        Console.WriteLine("당신은 바위를 냈습니다.");
        break;

    case 2 :
        Console.WriteLine("당신은 보를 냈습니다.");
        break;
}

switch (aiChoice) //컴퓨터의 선택을 조건문으로 작성
{
    case 0 :
        Console.WriteLine("컴퓨터가 가위를 냈습니다.");
        break;

    case 1 :
        Console.WriteLine("컴퓨터가 바위를 냈습니다.");
        break;

    case 2 :
        Console.WriteLine("컴퓨터가 보를 냈습니다.");
        break;
}



//승리, 무승부, 패배 조건문

if (choice == 0) // 만약 플레이어가 가위를 낸다면
{
    if (ai == 0) // 플레이어가 가위를 내고 ai가 가위를 내면
    {
        Console.WriteLine("무승부 입니다.");
    }
    else if (ai == 1) // 플레이어가 가위를 내고 ai가 바위를 내면
    {
        Console.WriteLine("패배 하셨습니다.");
    }
    else // 플레이어가 가위를 내고 ai가 보를 내면
    {
        Console.WriteLine("승리 하셨습니다.");
    }
}
else if (choice == 1) // 만약 플레이어가 바위를 낸다면
{
    if (ai == 0) // 플레이어가 바위를 내고 ai가 가위를 내면
    {
        Console.WriteLine("승리 하셨습니다.");
    }
    else if (ai == 1) // 플레이어가 바위를 내고 ai가 바위를 내면
    {
        Console.WriteLine("무승부 입니다.");
    }
    else // 플레이어가 바위를 내고 ai가 보를 내면
    {
        Console.WriteLine("패배 하셨습니다.");
    }
}
else //만약 플레이어가 보를 낸다면 (=else if (choice == 2))
{
    if (ai == 0) // 플레이어가 보를 내고 ai가 가위를 내면
    {
        Console.WriteLine("패배 하셨습니다.");
    }
    else if (ai == 1) // 플레이어가 보를 내고 ai가 바위를 내면
    {
        Console.WriteLine("승리 하셨습니다.");
    }
    else // 플레이어가 보를 내고 ai가 보를 내면
    {
        Console.WriteLine("무승부 입니다.");
    }
}

 

조금 더 짧게 하는 방법도 있습니다.

 

Random rand = new Random();

int aiChoice = rand.Next(0, 3); 

int choice = convert.Toint32(Console.ReadLine());


switch (choice) 
{
    case 0 :
        Console.WriteLine("당신은 가위를 냈습니다.");
        break;

    case 1 :
        Console.WriteLine("당신은 바위를 냈습니다.");
        break;

    case 2 :
        Console.WriteLine("당신은 보를 냈습니다.");
        break;
}

switch (aiChoice) 
{
    case 0 :
        Console.WriteLine("컴퓨터가 가위를 냈습니다.");
        break;

    case 1 :
        Console.WriteLine("컴퓨터가 바위를 냈습니다.");
        break;

    case 2 :
        Console.WriteLine("컴퓨터가 보를 냈습니다.");
        break;
}

//무승부 상황
if (choice == aiChoice) // choice와 aiChoice값이 같을 때, 둘이 같은 걸 냈을때
}
    Console.WriteLine("무승부 입니다.");
}
//이겼을때 상황 3가지
else if (choice == 0 && aiChoice == 2) //내가 가위, 컴퓨터가 보
{
    Console.WriteLine("승리 하셨습니다.");
}
else if (choice == 1 && aiChoice == 0) //내가 바위, 컴퓨터가 가위
{
    Console.WriteLine("승리 하셨습니다.");
}
else if (choice == 2 && aiChoice == 1) //내가 보, 컴퓨터가 바위
{
    Console.WriteLine("승리 하셨습니다.");
}
//패배 상황
else //나머지는 패배이기 때문에 else문 사용
{
    Console.WriteLine("패배 하셨습니다.");
}

 

 

 

---------------------------------------------------------------------------------------------------------------------------

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

'C#, 유니티 > C# 기초' 카테고리의 다른 글

[C#] 10. While문  (0) 2021.12.29
[C#] 9. 상수와 열거형  (0) 2021.12.29
[C#] 7. switch문  (0) 2021.12.28
[C#] 6. if문  (0) 2021.12.28
[C#] 5. 데이터 연산  (0) 2021.12.28
Comments