Text RPG
- 프로젝트 명 : Text Maple RPG
- 프로젝트 소개 :
- Text RPG 라는 기본 틀에 우리에게 친숙한 온라인 게임인 Maple Story를 더하여 몰입감 있는 Text RPG 구현하기
- 기본적인 객체 지향 프로그래밍 준수하여 구현하기
- 코드 컨벤션, 깃 컨벤션 준수하여 협업하기
- 클래스 다이어 그램

- 와이어 프레임

오늘은 얼추 프로그램이 돌아갈 정도로 진도가 나갔다. 기본 기능 구현은 거의 90% 정도로 완료되었다.
대충 출력 화면을 보면서 얘기를 이어 나가 보겠습니다.

가장 먼저 MainMenu 화면입니다. 여기서 입력을 받아 원하는 기능들을 둘러볼 수 있습니다.

메인메뉴에서 2번을 누르게되면 들어오는 상점 탭입니다. 여기서 상점에 있는 모든 장비들을 출력하게 되고 1을 눌러 구매 시 아이템 목록에서 사라지게 됩니다. 현재 판매는 인벤토리 창에서 구매 비용과 똑같은 돈으로 판매가 가능합니다.

메인 메뉴에서 1번을 누르면 들어오게 되는 메뉴입니다. 캐릭터의 상태를 볼 수 있고
1번을 누를 시 자신의 인벤토리를 볼 수 있습니다.

현재는 인벤토리에 아무 것도 없는 상태입니다. 인벤토리에 아이탬이 들어오게 되면 아이탬 들의 정보를 출력하게 됩니다.
또한 장착 관리에 들어가서 장착/해제 기능 까지 구현이 되어 있는 상태입니다.
만약 무기/방어구/방패를 장착하게 된다면 상태 보기 창에서 각 각에 맞는 장착중인 아이템 또한 출력이 됩니다.

다음의 코드는 장착 관리 시스템입니다. 418줄부터 설명을 드리면 먼저 출력 함수로 들어가게 됩니다. 출력 함수는

다음과 같이 아이템이 있는 지 없는 지를 나누어 아이탬이 있다면

무기, 방어구, 방패, 포션을 각 각 나누어 Player의 inventory를 전부 순회하여 출력을 하는 식으로 구현이 되어있습니다.
이렇게 출력을 하고 나서 사용자의 입력을 받고 그 입력에 맞추어 조건문에 들어가게 되는데
Player.IsEquiped() 함수에 사용자의 입력 -1를 주어 리스트의 인덱스와 사용자의 인덱스를 정렬 해준 뒤

Eqiped() 함수에 들어와서 타입을 먼저 검사하고, 무기가 끼워져 있는 상태면 무기를 일단 제거 하고
입력 받은 인덱스의 무기를 끼우는 식으로 구현이 되어있습니다.
그리곤 0을 입력 받으면 이전 메뉴로 돌아가고 그 외의 입력을 받으면 오류 구문을 출력하는 함수를 호출합니다.
게임의 기본 토대를 이런식으로 출력함수 - 입력 - 로직 - 출력함수의 구조를 띄고 있습니다.
회고
오늘은 기본 기능 구현은 거의 마무리되어 실행이 될 수 있도록 코드를 합쳐보았고 그로 인해 오류도 꽤 많았다.
사실 코드를 구현하는 파트도 어려웠지만 월, 화요일에 프로젝트 컨셉을 맞고 클래스 다이어그램, 와이어프레임을 제작 하는게
생각보다 많은 시간을 요구하였다.
또한 팀장으로써 팀원들에게 적절하게 파트를 분배해줘야 되는데 이것이 가장 큰 어려움이었다. 어떤 팀원분은 후딱 끝내고
어떤 팀원분은 오래 걸리시다 보니 파트의 분배에 아쉬움이 많이 남았던 것 같다.
앞으로 이런 일이 또 얼마나 있을진 모르곘지만 좀 더 체계적으로 기능을 나누어 파트를 나누는 기술을 배워 보고싶다.
'내일배움캠프 - TIL > 내일배움캠프 - TIL' 카테고리의 다른 글
| 내일배움캠프 13일차 - 팀 프로젝트 Text RPG 구현 완료 (0) | 2025.04.28 |
|---|---|
| 내일배움캠프 11일차 - Text RPG 구현 거의(?) 완료 (0) | 2025.04.24 |
| 내일배움캠프 9일차 코딩테스트 연습하기(타일 채우기 - 백준 15700, 모음의 개수 - 백준 1264) (0) | 2025.04.22 |
| 내일배움캠프 8일차 TextRPG 팀 과제 기초 (0) | 2025.04.21 |
| 내일배움캠프 7일차 TextRPG 마무리, C# 체크리스트 문제은행 (0) | 2025.04.18 |