C# 문법 종합반 개인 과제 - 던전 게임 만들기 / 기본 화면 세팅 /
2023. 8. 18. 16:57ㆍC# 문법 종합반
- C# 콘솔을 통해 마을에서 장비를 구하는 게임을 텍스트로 구현한다.
- 상점의 아이템들 중 내가 원하는 장비를 선택해 착용한다.
- 장비는 객체나 구조체를 활용, 여러 데이터를 다루는 부분은 배열을 활용.
<제작 프로세스>
1. 기본 화면 세팅
2. 아이템 정보 세팅 (배열 활용)
3. 기본화면 중 인벤토리에 아이템 정보 기입
4. 인벤토리를 통해 장비 장착 화면에서 아이템을 착용 및 해제할 수 있도록 적용
5. 추가 원하는 작업
1. 게임 기본 화면을 세팅한다.
- 게임 메인 페이지 / 내 정보 / 인벤토리 / 아이템 착용 및 해제
namespace project_dungeon
{
internal class Program
{
private static Character player; // 플레이어 변수 선언
static void Main(string[] args) // 프로그램 메인 화면
{
GameDataSetting(); // 게임 데이터 세팅
DisplayGameIntro(); // 게임 인트로 표시
DisplayInventory(); // 인벤토리
InventorySetting(); //
}
static void GameDataSetting() // 게임 데이터 세팅
{
// 캐릭터 정보 세팅
player = new Character("Chad", "전사", 1, 10, 5, 100, 1500); // 플레이어 정보 초기화
// 아이템 정보 세팅
// 추가할 것
}
static void DisplayGameIntro() // 게임 인트로 디스플레이
{
Console.Clear(); // 콘솔화면 클리어
Console.WriteLine("스파르타 마을에 오신 여러분 환영합니다.");
Console.WriteLine("이곳에서 던전으로 들어가기 전 활동을 할 수 있습니다.");
Console.WriteLine();
Console.WriteLine("1. 상태보기");
Console.WriteLine("2. 인벤토리");
Console.WriteLine();
Console.WriteLine("원하시는 행동을 입력해주세요.");
int input = CheckValidInput(1, 2); // 1 혹은 2를 사용자로부터 입력받는 메서드
switch (input) // switch문 (1혹은 2를 선택)
{
case 1:
DisplayMyInfo();
break;
case 2:
DisplayInventory();
break;
}
}
static void DisplayMyInfo() // 플레이어 상태 표시 메서드
{
Console.Clear();
Console.WriteLine("상태보기");
Console.WriteLine("캐릭터의 정보르 표시합니다.");
Console.WriteLine();
Console.WriteLine($"Lv.{player.Level}");
Console.WriteLine($"{player.Name}({player.Job})");
Console.WriteLine($"공격력 :{player.Atk}");
Console.WriteLine($"방어력 : {player.Def}");
Console.WriteLine($"체력 : {player.Hp}");
Console.WriteLine($"Gold : {player.Gold} G");
Console.WriteLine();
Console.WriteLine("0. 나가기");
int input = CheckValidInput(0, 0); // ///////무슨 코드인지 모르겠음
switch (input)
{
case 0:
DisplayGameIntro(); // 0을 입력하면 게임 인트로를 다시 보여주기
break;
}
}
static void DisplayInventory() // 인벤토리 표시
{
Console.Clear();
Console.WriteLine("인벤토리");
Console.WriteLine("보유 중인 아이템을 관리할 수 있습니다.");
Console.WriteLine();
Console.WriteLine("[아이템 목록]");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("원하시는 행동을 입력해주세요");
Console.WriteLine("1. 장착 관리");
Console.WriteLine("0. 나가기");
int input = CheckValidInput(0, 1); // ///////무슨 코드인지 모르겠음
switch (input)
{
case 0:
DisplayGameIntro(); // 0을 입력하면 게임 인트로를 다시 보여주기
break;
case 1:
InventorySetting();
break;
}
}
static void InventorySetting() // 장착관리 표시
{
Console.Clear();
Console.WriteLine("장착 관리");
Console.WriteLine("보유 중인 아이템을 관리할 수 있습니다.");
Console.WriteLine();
Console.WriteLine("[아이템 목록]");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("원하시는 행동을 입력해주세요");
Console.WriteLine("0. 인벤토리로");
int input = CheckValidInput(0, 0); //
switch (input)
{
case 0:
DisplayInventory(); //
break;
}
}
static int CheckValidInput(int min, int max)
{
while (true)
{
string input = Console.ReadLine();
bool parseSuccess = int.TryParse(input, out var ret);
if (parseSuccess)
{
if (ret >= min && ret <= max)
return ret;
}
Console.WriteLine("잘못된 입력입니다.");
}
}
}
public class Character // 캐릭터 정보
{
public string Name { get; }
public string Job { get; }
public int Level { get; }
public int Atk { get; }
public int Def { get; }
public int Hp { get; }
public int Gold { get; }
public Character(string name, string job, int level, int atk, int def, int hp, int gold)
{
Name = name;
Job = job;
Level = level;
Atk = atk;
Def = def;
Hp = hp;
Gold = gold;
}
}
}
static void main -> GameDataSetting / DisplayMyInfo / DisplayGameIntro / DisplayInventory / InventorySetting
을 통해 게임 기본 세팅 및 3가지 페이지를 구성했다.
- 인트로 화면에서 1을 입력해 상태창으로 이동 가능 - 내 정보 확인 - 0을 눌러 메인 화면으로 복귀
- 인트로 화면에서 2를 입력해 인벤토리로 이동 - 1을 입력해 장비 착용 - 혹은 0을 눌러 메인 화면으로 복귀
- 장비 착용 화면에서 0을 눌러 인벤토리로 복귀 가능
'C# 문법 종합반' 카테고리의 다른 글
C# 문법 종합반 개인 과제 / 던전 게임 만들기 / 아이템 세팅 및 착용 / 오류발생 (0) | 2023.08.21 |
---|---|
C# 문법 종합반 3주차 과제 1 - 지렁이 게임 (0) | 2023.08.18 |
C# 문법 종합반 / 2주차 / 배열 (0) | 2023.08.17 |
C# 문법 종합반 2주차 반복문, 반복문 심화 예제 (0) | 2023.08.17 |
C# 문법 종합반 2주차 / 조건문, 조건문 심화(예제) (0) | 2023.08.17 |