본문 바로가기

유니티

유니티2D 가위 바위 보 게임 코드

728x90
반응형

다음은 가위 바위 보 게임을 구현하는 코드입니다. 이 코드는 Input.GetKeyDown 함수를 사용하여 사용자의 입력을 감지하고, Random.Range 함수를 사용하여 컴퓨터의 선택을 랜덤하게 만듭니다.

using UnityEngine;

public class RockPaperScissors : MonoBehaviour
{
// 가위, 바위, 보 이미지를 나타내는 게임 오브젝트
public GameObject rockObject;
public GameObject paperObject;
public GameObject scissorsObject;

// 가위, 바위, 보 중 하나를 나타내는 열거형
private enum Choice
{
Rock,
Paper,
Scissors
}

private void Update()
{
// 사용자 입력을 감지하여 가위, 바위, 보 중 하나를 선택하도록 함
if (Input.GetKeyDown(KeyCode.Alpha1))
{
Play(Choice.Rock);
}
else if (Input.GetKeyDown(KeyCode.Alpha2))
{
Play(Choice.Paper);
}
else if (Input.GetKeyDown(KeyCode.Alpha3))
{
Play(Choice.Scissors);
}
}

// 사용자가 선택한 가위, 바위, 보와 컴퓨터의 선택을 비교하여 승패를 결정하는 함수
private void Play(Choice playerChoice)
{
// 컴퓨터는 랜덤하게 가위, 바위, 보 중 하나를 선택함
Choice computerChoice = (Choice)Random.Range(0, 3);
Debug.Log("Player: " + playerChoice + ", Computer: " + computerChoice);

// 사용자가 선택한 이미지를 화면에 보여줌
switch (playerChoice)
{
case Choice.Rock:
rockObject.SetActive(true);
paperObject.SetActive(false);
scissorsObject.SetActive(false);
break;

case Choice.Paper:
rockObject.SetActive(false);
paperObject.SetActive(true);
scissorsObject.SetActive(false);
break;

case Choice.Scissors:
rockObject.SetActive(false);
paperObject.SetActive(false);
scissorsObject.SetActive(true);
break;
}

// 컴퓨터가 선택한 가위, 바위, 보를 출력함
switch (computerChoice)
{
case Choice.Rock:
Debug.Log("Computer chose Rock");
break;

case Choice.Paper:
Debug.Log("Computer chose Paper");
break;

case Choice.Scissors:
Debug.Log("Computer chose Scissors");
break;
}

// 승패를 결정하여 결과를 출력함
int result = (int)playerChoice - (int)computerChoice;
if (result == 0)
{
Debug.Log("Draw!");
}
else if (result == -1 || result == 2)
{
Debug.Log("You Win!");
}
else
{
Debug.Log("You Lose!");
}
}
}

위 코드에서는 rockObject, paperObject, scissorsObject 변수에 각각 가위, 바위, 보 이미지를 할당합니다. 사용자가 1, 2, 3 키를 누르면 각각 가위, 바위, 보를 선택한 것으로 처리합니다. 그리고 Play 함수를 호출하여 게임을 진행합니다. Play 함수에서는 컴퓨터의 선택을 랜덤하게 만들고, 선택한 이미지를 화면에 보여주며, 결과를 출력합니다.

728x90
반응형