연습문제 : 가위-바위-보

Jaemyeong Lee·2024년 12월 8일
0

입문자를 위한 UE5

목록 보기
17/60

가위바위보

🌱 Answer 1: 첫 번째 방식


1-1. 대략적인 알고리즘

  1. 플레이어는 키보드 입력으로 가위, 바위, 보 중 하나를 선택합니다.
    • 1: 바위
    • 2: 보
    • 3: 가위
  2. 컴퓨터는 랜덤한 값을 선택합니다. (0~2)
  3. 먼저 무승부 여부를 판단합니다.
  4. 무승부가 아니면 승패를 판단합니다.
  5. 최종 결과를 출력합니다.

1-2. 주요 블루프린트 구성

1. 플레이어와 컴퓨터 값 설정
  • 플레이어:
    • SET 노드를 사용해, 키보드 입력과 특정 열거형 값(Rock, Paper, Scissors)을 매핑합니다.
    • 키보드 입력 예:
      • 1: Rock
      • 2: Paper
      • 3: Scissors
  • 컴퓨터:
    • Random Integer 노드를 사용해 0~2 범위의 랜덤 값을 생성합니다.
    • 이를 SET 노드에 연결해 컴퓨터의 선택을 저장합니다.

2. 무승부 판단
  • 조건: 플레이어의 선택과 컴퓨터의 선택이 동일하면 무승부로 판단합니다.
  • 블루프린트:
    • Branch 노드를 사용해 Player == Enemy 조건을 판단합니다.
    • 조건이 True이면 바로 Print Text로 "Draw" 출력.

3. 승패 판단
  • 승리 조건:
    • 플레이어: Rock, 컴퓨터: Scissors
    • 플레이어: Paper, 컴퓨터: Rock
    • 플레이어: Scissors, 컴퓨터: Paper
  • 패배 조건:
    • 위 승리 조건을 제외한 모든 경우
  • 블루프린트:
    • Switch on Enum 노드로 플레이어의 선택을 기준으로 분기.
    • 각 선택에 따라 컴퓨터의 값을 비교하여 승리 또는 패배를 결정.

4. 최종 결과 출력
  • 무승부는 "Draw", 승리는 "Win", 패배는 "Lose"를 출력.
  • 각각의 분기에서 Print Text 노드로 결과 출력.

1-3. 결과

  • 플레이어가 키를 누를 때마다 결과가 출력됩니다.
  • 무승부, 승리, 패배 세 가지 결과가 나옵니다.

🌱 Answer 2: 두 번째 방식


2-1. 알고리즘 차이점

  • 4, 5, 6번 키를 사용해 입력합니다. (4: 바위, 5: 보, 6: 가위)
  • 승패, 무승부 여부를 한 번에 판단합니다.
  • Check Winner라는 커스텀 이벤트로 승패 판정을 분리하여 처리합니다.

2-2. 주요 블루프린트 구성

1. 커스텀 이벤트 사용
  • Check Winner라는 이벤트를 생성하여 승패 판정 로직을 모듈화.
  • 이점:
    • 코드 재사용성을 높임.
    • 복잡한 로직을 단순화.

2. 승패 판정
  • Switch on Enum 노드로 플레이어와 컴퓨터 값을 각각 확인.
  • 승리, 패배, 무승부 조건을 한꺼번에 비교하고 결과를 출력.
  • 블루프린트:
    • Branch를 많이 사용하지 않고, Switch on EnumPrint Text를 조합해 간결하게 작성.

2-3. 결과

  • 코드가 더 간단하고 규칙적.
  • 1번 방식보다 직관적이고 유지보수가 용이.

profile
李家네_공부방

0개의 댓글