2023/11/10

안석환·2023년 11월 10일
0

오늘의 코딩

던전 게임 만들기

  1. 던전 컨셉
  2. 계획 및 적용

1. 던전 컨셉

보드게임중 Welcome back to the Dongeon 을 각색하여 간단하게 만들고자 한다.

내용은 이렇다.

  1. 서로 플레이어가 직업을 정한다

  2. 던전 카드 뭉치에서 몬스터 카드를 번갈아 가며 넣는다

  3. 카드 넣기 과정중 더 이상 본인 캐릭터가 깨지 못할거 같다 하는 시점에 중단 선언을 한다

  4. 끝까지 남은 플레이어가 본인의 캐릭터를 들고 중첩 되어 있던 카드 뭉치를 위에서부터 오픈하여 몬스터를 처리 해 나간다

  5. 플레이어가 던전 끝까지 몬스터를 다 처리했을 시 해당 플레이어 승리 +1 도중에 플레이어 사망시 플레이어 목숨 -1

지금까지 생각한 각색 내용.

  1. 난이도에 따라 던전의 위험 카드가 추가된다.
    ex) Lv1 dungeon :슬라임(hp = 1, atk = 1) x4
    Lv2 : 괴물쥐(hp = 2, atk = 1) +1
  2. 던전에 위험카드 난이도 + 2 만큼 카드를 세팅한다.
  3. 플레이어는 보상 카드 더미에서 던전에 카드를 추가한다.
    ex) 경험치 카드, 골드 카드 등..
  4. 플레이어가 보상을 추가 할 때 마다 위험 카드도 추가한다.
  5. 플레이어가 중단 선언을 하고 해당 던전을 최근 추가한 카드 부터 클리어 해나간다.
  6. 클리어시 보상을 받고 패배시 게임이 종료된다.

2. 이 때 까지의 목표 과제

플레이어 입력 오류 해결 및 재 권유
던전 카드 설정
플레이어 카드 및 보상 카드 설정
던전 카드 세팅

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?");
        }
    }

    
}



후기

주말에 쉬긴 글럿다 ㅋㅋ

profile
안석환!

0개의 댓글