오늘 진행 내용
팀프로젝트 [CH2: 팀 프로젝트] 텍스트 콘솔 RPG 진행
팀프로젝트 주제 선정
C++ 모험 RPG:
배경
코드월드에는 수많은 몬스터들이 존재한다. 이들은 프로그래밍의 지식을 흩트려 놓고, 혼돈을 만든다. 용감한 플레이어인 너는 “코드 마스터”가 되어 몬스터들을 물리치고, 각 라운드의 보스를 쓰러트려야 한다.
페이즈 1: 변수의 숲
- 몬스터 등장: 변수, 상수, 자료형, 초기화, 선언
- 목표: 모든 몬스터를 물리치고 레벨 3 달성
- 보스: 포인터
- 스토리: 숲 속에서 너를 기다리는 몬스터들은 기초적인 코드 지식을 시험한다. 포인터 보스는 변수의 주소를 자유자재로 조종하며 공격해온다. 이를 이겨야 다음 단계로 나아갈 수 있다.
페이즈 2: 클래스의 성
- 몬스터 등장: 클래스, 객체, 멤버변수, 함수, 생성자/소멸자
- 목표: 모든 몬스터를 물리치고 레벨 6 달성
- 보스: 다형성 혹은 상속 보스
- 스토리: 고대의 성 안에서 클래스 몬스터들이 너를 시험한다. 보스는 다양한 형태로 변신하며 다형성의 힘을 보여준다. 이 보스를 넘어야 진정한 객체 지향의 힘을 깨닫게 된다.
페이즈 3: 디자인 패턴의 탑
- 몬스터 등장: 싱글톤, 데코레이터, 옵저버, 전략 패턴 등
- 목표: 모든 몬스터를 물리치고 레벨 10 달성
- 보스: 팀 프로젝트
- 스토리: 탑 꼭대기에서 너를 기다리는 것은 혼자서는 상대할 수 없는 거대한 보스, 팀 프로젝트! 디자인 패턴 몬스터들을 모두 물리치고, 협업과 패턴을 활용해야만 승리할 수 있다.
주제 선정에 따른 프로젝트 구성 요소 선정
필수 기능
1. 플레이어
- 캐릭터 생성시 이름을 설정 할 수 있습니다.
- 캐릭터는 이름, 레벨, 체력, 공격력, 경험치를 가진다.
- 캐릭터는 레벨 1, 초기 체력 200, 공격력 30, 경험치 0으로 시작합니다.
- 게임 플레이 중, 언제든지 캐릭터 상태 확인할 수 있어야 합니다. (hp, 공격력, 경험치, 레벨 등등)
2. 몬스터
- 몬스터도 이름, 체력, 공격력을 가진다.
- 체력: (라운드 × 20) ~ (라운드 × 30)
- 공격력: (라운드 × 5) ~ (라운드 × 10)
3. 전투 시스템
- 라운드별로 정해진 몬스터와 싸운다.
- 전투 시작 조건
- 캐릭터 생성직후
- 전투 승리 후 상점 방문을 스킵하거나 이용을 다 끝냈을 경우
- 보상
- 필수: 골드(랜덤 10~20), 경험치
- 선택: 장비, 스탯 물약 등등
전투 시작전: 가지고있는 물약같은 아이템 중에 어떤걸 사용할지 결정할수있다. (공격력 버프 물약 등등)
캐릭터가 전투를 할때 기본적으로 행동 기준은
공격이 default
피가 없으면 체력 물약 있을시 체력물약을 먹거나
- 크리티컬 시스템 공격시 확률적으로 2배의 데미지를 준다.
- 크리티컬 떳을땐 글씨가 더 보이게 어찌구 저찌구
- 캐릭터가 사망시 라운드 시작전으로 돌아간다. 그냥 다시 시작
4. 레벨업
- 레벨이 오를 때 마다 최대 체력과 공격력이 상승한다.
- 레벨업 시 최대치까지 체력을 회복합니다.
- 최대 레벨은 10으로 제한한다.
5. 아이템
- 아이템을 사용하면 사라진다.
- 버프 아이템은 전투 시작전 사용할 수 있다.
- 소비 아이템은 전투할때 자동으로 기준에따라 사용된다.
- 체력 포션: 일정 체력을 회복하고 턴을 넘긴다.
6. 게임 로그 확인
- 공격, 피해, 아이템 사용, 골드 획득 등 중요한 이벤트는 콘솔에 나열하여 표시합니다.
- 로그를 통해 오늘 어떤 몬스터를 얼마나 잡았는지 한 눈에 확인 가능해야 합니다.
도전 기능
7. 몬스터 보스전
- 라운드 마다 중간 보스 존재
- 10레벨 달성 시 “이제 일반 몬스터는 상대도 안 된다!” 라는 메시지를 출력
- “보스 몬스터”가 등장합니다! 메세지와 함께 보스 등장 연출
- 중간 보스의 스탯은 기존 몬스터의 1.2배 범위 랜덤 설정
- 중간 보스 보상 버프 아이템 고정 지급(”~의 가호”,”~의 은혜”)
- 최종 보스의 스탯은 기존 몬스터의 1.5배 범위 랜덤 설정
- 보스 클리어하면 게임 엔딩 화면으로 넘어감
8. 상점 시스템
- 전투 시작전 상점에 입장할수있다. 입장 안해도 된다.
- 상점에서는 골드로 아이템을 구매/판매 가능해요.
- 아이템 구매
- 골드를 사용해서 아이템을 구매할 수 있어요.
- 구매 아이템은 인벤토리에 즉시 추가됩니다.
- 아이템 판매
- 보유한 아이템을 골드로 판매할 수있어요.
- 판매 가격은 구입 원가의 60%입니다.
- 판매된 아이템은 인벤토리에서 즉시 제거되요.
- 아이템 목록은 자유롭게 제작할 수 있습니다.
- 아이템은 가격이 정해져 있어야 합니다. 유동적으로 변할 수 없어요.
- 체력포션, 공격력 포션, 1회 무적, 즉사 아이템 (겁나 비쌈)
간단한 스켈레톤 코드 구성 및 클래스 다이어그램 구성
구상한 플로우 차트에 맞춰서 구상하는 과정에서 클래스 다이어그램 설계 및 수정 진행중
