C# 문법 - 4주차 과제(1)

이준호·2023년 11월 13일
0

챕터 4: 과제



📌 Console Text-Rpg Game

과제 요구사항

4주차 과제로 C#을 이용한 Console TextRpg 게임을 만들게 되었다.

필수 요구사항으로는

  • 게임 시작 화면

  • 상태보기

  • 인벤토리

선택요구사항

  • 아이템 정보를 클래스 / 구조체로 활용

  • 아이템 정보를 배열로 관리

  • 아이템 추가 - 나만의 아이템

  • 콘솔 꾸미기 - 콘솔의 색 지정, 라인등을 이용

  • 인벤토리 크기 맞춤

  • 인벤토리 정렬

  • 상점

  • 상점 - 아이템 판매

  • 장착 개선

  • 던전입장

  • 던전입장 - 휴식 기능

  • 던전입장 - 레벨업 기능

  • 게임 저장기능


게임 구상

던전에서 몬스터를 잡으며 레벨업을 하고 돈을 모아서 더 좋은 아이템을 사고 상위 던전으로 도전하는 형식의 게임을 구상했다.

GameManager Class

Player의 정보가 있는 Player클래스와 Item들의 정보들이 있는 ItemManager클래스의 정보를 GameManager 클래스의 생성자에서 객체를 초기화하며 생성해준다.

  1. TitleScene()
    1-1. 시작하기 -> StoryScene()
    1-2. 이어하기(미구현)
    1-3. 종료하기(콘솔종료)

  2. StroyScene()
    2-1. 마을로 가기 -> MainScene()
    2-1. 다른 이벤트(종료함정) -> TitleScene()

  3. MainScene()
    3-1. 상태창 -> Statistics()
    3-2. 인벤토리 -> Inventory()
    3-3. 상점 -> Shop()
    3-4. 던전 -> InDungeon()
    3-5. 타이틀 화면 -> TitleScene()
    3-6. (회복기능 추가 예정)

ItemManager Class

Item Class

Creatrue Class

Player Class

Enemy Class

Monster Struct

Program(Main) Class


배운 기능들

ConsoleTable패키지

  • 문자열 보간 없이 깔끔하게 테이블 구성이 가능해진다.

  • 비주얼 스튜디오[도구] -> NuGet패키지 관리자 -> 솔루션 NuGet패키지 관리자-> "ConsoleTables"검색 후 설치

예제

출력결과

예제 코드의 9번째 줄인 buyShopTable.AddRow뒤 세미콜론(;)전에 .Configure(o => o.EnableCount = false);
를 쓰는 이유는 저 람다식을 써주지 않는다면 buyShopTable.Wrte();로 나오고 그 및에 Count : (숫자) 가 출력되기 때문이다. 저 람다식을 통해 카운트가 안뜨게할 수 있다.

profile
No Easy Day

0개의 댓글