VR/AR 콘텐츠 개발 Unity 프로젝트 기반 메타버스 게임 개발자 양성 수업 - 팀과제
VR/AR 콘텐츠 개발 Unity 프로젝트 기반 메타버스 게임 개발자 양성 수업 - 팀과제
[게임 리버스 엔지니어링]
- 기본 정보
- 팀명: KYLY
- 팀원: 김지혜 윤건우 윤승민 이찬영
- 선택한 게임: UNO
- 게임 개요 및 핵심 룰
승리 조건: 손에 있는 카드를 가장 먼저 다 내는는 사람이 승리한다.) 주요 규칙: 규칙 1: 플레이어는 시계 방향으로 턴을 진행하며, 특수 카드(Reverse, Skip)에 따라 방향이나 턴이 바뀔 수 있다. 규칙 2: 바닥에 놓인 카드와 색상 또는 숫자(혹은 기호)가 같은 카드만 낼 수 있다. 규칙 3: 낼 수 있는 카드가 없으면 카드 더미에서 1장을 뽑는다. 규칙 4: 손패가 1장이 남았을 때 반드시 "UNO!"를 외쳐야 한다.
- 데이터 설계 (Data Design)
게임을 구성하는 요소를 프로그래밍의 관점으로 정의해 봅니다.
구조체 (Struct) 정의:
- 구조체 이름: Card
- 포함된 정보: (데이터 1: 색상 Color – 문자 Red, Green, Blue, Yellow (데이터 2: 숫자 number – 정수 0 ~ 9 (데이터 3: 카드종류 type – 문자 skip, Reverse, Draw2, Wildcard, Draw4Wildcard
- 배열 (Array) 정의:
- 배열 이름: PlayerHand 저장하는 데이터: Card 구조체들의 배열 용도: 플레이어가 현재 손에 들고 있는 카드들을 순서대로 보관
- 배열 이름: Deck 저장하는 데이터: Card 구조체들의 배열 용도: 카드 더미 - 뽑기용 카드
- 배열 이름: Table 저장하는 데이터: Card 구조체들의 배열 용도: 테이블에 놓여진 카드 (플레이어들이 낸 카드)
- 플레이어 턴 알고리즘 (의사코드 & 플로우차트)
나의 턴이 시작되어 끝날 때까지의 과정을 3대 제어 구조(순차, 선택, 반복)를 활용하여 스케치합니다.
UNO 게임의 내 턴 진행 로직
내 턴이 시작된다.
카드를 낼 수 있는지 확인한다.
반복 (내가 낼 수 있는 카드를 찾을 때까지)
{
내 손패(배열)를 첫 번째 카드부터 하나씩 확인한다.
선택 (현재 카드와 테이블 카드의 색상이 같으면 또는 현재 카드와 테이블 카드의 숫자가 같으면 또는 현재카드가 특수 카드라면)
{
해당 카드를 낸다.
반복 종료
}
}
선택 (낼 수 있는 카드가 하나도 없다면?)
{ Deck 카드 더미에서 카드를 1장 새로 뽑는다. }
선택 (손에 남은 카드가 1장이면) { "우노!" 라고 외친다. }
턴을 종료하고 다음 사람에게 순서를 넘긴다.

- 팀 회고 및 느낀 점
(입문자): 평소에 하던 게임을 직접 논리적인 구조로 바꿔서 생각해보니 생각보다 체계적으로 나뉘어 구성되어있는게 매우 신기하게 느껴졌고 단순해 보였던 규칙도 사실은 여러 조건과 반복 구조로 이루어져 있다는걸 느낄 수 있었다. 특히나 컴퓨터 입장에서 파악 할 수 있도록 명확한 기준과 순서를 정해야 한다는 점이 새롭게 느껴졌다. 이 과정을 통해서 체계적인 규칙과 논리로 구성된 시스템을 알 수 있게 되었다.



