가위바위보 게임 만들기

1. 기획

가위바위보 하나빼기

  1. 플레이어와 컴퓨터가 가위/바위/보 각각 2장씩 보유하고 있다.
  2. 게임 라운드를 플레이 할 때 마다 플레이어와 컴퓨터가 각각 랜덤으로 가위바위보 카드를 무작위로 2장씩 뽑고 카드 수가 소모된다.
  3. 둘 중 하나가 선택되고 승/패/무승부 여부를 출력한다.
  4. 먼저 n승을 하면 승리한다.
  5. f1 키를 누르면 현재 남은 가위바위보 개수가 표시된다.
    • 예) 플레이어 가위: a 플레이어 바위: b 플레이어 보: c / 컴퓨터 가위: a1 컴퓨터 바위: b1 컴퓨터 보: c1

2. 구현 결과



3. 구현 과정

  1. enum으로 가위/바위/보를 열거형으로 설정해주고 플레이어의 가위바위보, 컴퓨터의 가위바위보, 플레이어의 스코어, 컴퓨터의 스코어를 각각 따로 전부 인티저 변수 타입으로 만들었습니다.
  2. 플레이어와 컴퓨터의 가위바위보 카드 초기 수를 2로 설정했습니다.
  3. 1번을 누를 때 마다 카드를 뽑고 do n 노드를 이용하여 카드 뽑기 최대 횟수를 6으로 설정했습니다.
  4. 플레이어의 카드를 뽑을 때 마다 가위바위보 각 카드가 1장씩 줄어들게 했습니다. (플레이어는 자연스럽게 1장씩 뽑을 수 있도록 multigate 사용)
  5. 컴퓨터의 카드도 뽑을 때 마다 가위바위보 각 카드가 1장씩 줄어들게 했습니다. (컴퓨터는 랜덤성을 더 띄우게 하기 위해 switch on integer 사용)
  6. 2번을 누를 때 마다 플레이어와 컴퓨터의 대결 결과가 나오게 했습니다.
  7. 스코어가 2이상이 되었을 때 최종승리! 표시를 하게 만들었습니다.
  8. f1을 누를 때 마다 지금 플레이어와 컴퓨터의 보유 카드 개수를 확인 할 수 있게 만들었습니다

4. 문제점

  • 키보드 1을 한 번의 클릭으로 가위/바위/보 총 6개의 카드중에 2장을 뽑지는 못했습니다. (키보드 1을 2번 눌러서 2장을 뽑아야 하는 형식으로 함.)
  • 키보드 1을 두 번 눌러서 카드를 2번 뽑고 키보드 2를 눌러서 결과를 출력 할 때 플레이어와 컴퓨터가 뽑지 않은 카드가 출력 되는 것을 해결하지 못했습니다. (플레이어가 가위를 뽑지 않았는데 가위를 냄.)
  • 카드를 전부 소모하여도 결과가 나오지 않을 경우 어떤 식으로 해결해야 할 지 방안을 모르겠습니다.

5. 개선 계획

  • input을 키보드 1번 말고 2번까지 써서 시작 할 때의 패를 2장 뽑도록 고치면 될 것 같습니다.
  • 초기화 기능을 만들어야 할 것 같습니다.

0개의 댓글