보드게임중 Welcome back to the Dongeon 을 각색하여 간단하게 만들고자 한다.
서로 플레이어가 직업을 정한다
던전 카드 뭉치에서 몬스터 카드를 번갈아 가며 넣는다
카드 넣기 과정중 더 이상 본인 캐릭터가 깨지 못할거 같다 하는 시점에 중단 선언을 한다
끝까지 남은 플레이어가 본인의 캐릭터를 들고 중첩 되어 있던 카드 뭉치를 위에서부터 오픈하여 몬스터를 처리 해 나간다
플레이어가 던전 끝까지 몬스터를 다 처리했을 시 해당 플레이어 승리 +1 도중에 플레이어 사망시 플레이어 목숨 -1
- 난이도에 따라 던전의 위험 카드가 추가된다.
ex) Lv1 dungeon :슬라임(hp = 1, atk = 1) x4
Lv2 : 괴물쥐(hp = 2, atk = 1) +1- 던전에 위험카드 난이도 + 2 만큼 카드를 세팅한다.
- 플레이어는 보상 카드 더미에서 던전에 카드를 추가한다.
ex) 경험치 카드, 골드 카드 등..- 플레이어가 보상을 추가 할 때 마다 위험 카드도 추가한다.
- 플레이어가 중단 선언을 하고 해당 던전을 최근 추가한 카드 부터 클리어 해나간다.
- 클리어시 보상을 받고 패배시 게임이 종료된다.
플레이어 입력 오류 해결 및 재 권유
던전 카드 설정
플레이어 카드 및 보상 카드 설정
던전 카드 세팅
intro 설정
플레이어 이름 설정
플레이어 직업 설정
던전 입장 전 설정
게임 설명
스테이터스 확인
장비 확인
게임 시작
using System.Numerics;
namespace WelcomeToDungeon;
internal class Program
{
private static Character player;
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 Enter()
{
Console.WriteLine();
}
static void Main(string[] args)
{
GmaeIntro();
GameMainScene();
}
static void GmaeIntro()
{
string charactorName = "";
string charactorClass = "";
Console.WriteLine("Welcome to the dangerous mine!");
Thread.Sleep(2000);
Console.Clear();
Console.WriteLine("What is your name?");
Console.Write("name: ");
charactorName = Console.ReadLine();
Console.WriteLine("what is your class?" + "\n" + "1. Warrior");
Console.Write("class: ");
int input = CheckValidInput(1, 1);
switch (input)
{
case 1:
charactorClass = "Worrior";
break;
}
player = new Character(charactorName, charactorClass, 1, 10, 5, 100, 1500);
Thread.Sleep(1000);
Console.Clear();
}
static void GameMainScene()
{
Console.WriteLine("Please ask anything you want before entering the mine.");
Console.WriteLine("1. Dangerous dungeon??" + "\n" + "2. What is my status??" + "\n" + "3. Inventory?" + "\n" + "0. That's enough.");
Console.Write("Action... ");
Console.ReadLine();
int input = CheckValidInput(0, 4); //GameMainScene max input
switch (input)
{
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
}
}
static int CheckValidInput(int min, int max) //GameMainScene valid
{
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("What?");
}
}
}
주말에 쉬긴 글럿다 ㅋㅋ