c# 연습으로 제작한 텍스트 rpg입니다.

제작을 도와주신 분들 모두 정말 감사드립니다.

아래 투표도 부탁드립니다.


unity/c#

  • 17명 참여
  • 1개 선택
  • 모두 가능
  • 종료
결과 미리보기
  1. 1. 유니티로 넘어가서 게임 제작 연습76% · 13표
  2. 2. c#연습 더하면서 텍스트 rpg 더 제작24% · 4표



using System;


enum Choosestartorout


{


    selectstart = 1,


    selectout = 2,


    noneselect = 0


}


enum classtype

{

    none = 0 ,

    knight = 1 ,

    magician = 2 ,

    archer = 3 ,

    rogue = 4

}

public enum Monstertype

{

    none =0,

    slime = 1

}

namespace text_rpg


{

   public class Creature

    {

        public int hp = 0;

        public int at = 0;

        public int mana = 0;

        public string name;

        public void setting(int _at, int _hp, int _mana)

        {

            at = _at;

            hp = _hp;

            mana = _mana;

        }

    }

 public class  Player: Creature

    {


    }

    

    

    public class Monster: Creature

    {

        

    }

    class Program

    {

        static void Main()

        {

            Console.WriteLine("Text RPG");

            Console.WriteLine("[1] 게임을 시작합니다");

            Console.WriteLine("[2] 게임을 종료합니다.");

            Open();





        }

        static Choosestartorout Open()

        {


            Choosestartorout choice1 = Choosestartorout.noneselect;


            ConsoleKeyInfo Csi = Console.ReadKey();

            Console.WriteLine();

            




            switch (Csi.Key)


            {


                case ConsoleKey.D1:


                    choice1 = Choosestartorout.selectstart;

                    Console.WriteLine("게임을 시작합니다.");

                    Player Newplayer = new Player();

                    Monster Newmonster = new Monster();

                    classtype choice = classtype.none;

                    Choosename(Newplayer);

                    Chooseclass(ref choice);

                    Creatplayer(choice,Newplayer);

                    tutorial(Newplayer, Newmonster);



                    break;


                case ConsoleKey.D2:


                    choice1 = Choosestartorout.selectout;


                    Console.WriteLine("게임을 종료합니다.");

                    Overgame();

                    break;


            }


            return choice1;

        }

        static void Overgame()

        {

            Environment.Exit(0);

        }


        static string Choosename(Player Newplayer)

        {

            Console.WriteLine("당신의 이름은 무엇입니까?");

            string input = Console.ReadLine();

            Newplayer.name = input;

            Console.WriteLine("이름:" + input);



            return Newplayer.name;

        }

        static classtype Chooseclass(ref classtype choice)

        {

            Player Newplayer = new Player();

            Console.WriteLine("직업을 선택하십시오.");

            Console.WriteLine("[1] 기사");

            Console.WriteLine("[2] 마법사");

            Console.WriteLine("[3] 궁수");

            Console.WriteLine("[4] 도적");


            ConsoleKeyInfo Csi = Console.ReadKey();

            Console.WriteLine();

            


            switch (Csi.Key)

            {


                case ConsoleKey.D1:


                    choice = classtype.knight;


                    Console.WriteLine("기사를 선택했습니다.");

                    break;


                case ConsoleKey.D2:


                    choice = classtype.magician;

                    Console.WriteLine("마법사를 선택했습니다.");

                    break;

                case ConsoleKey.D3:

                    choice = classtype.archer;


                    Console.WriteLine("궁수를 선택했습니다");

                    break;

                case ConsoleKey.D4:

                    choice = classtype.rogue;

                    Console.WriteLine("도적을 선택했습니다");

                    break;


            }


            return choice;


        }

        static Player Creatplayer(classtype choice, Player Newplayer )

        {

            Console.WriteLine("이름:"+Newplayer.name);

            switch (choice)

            {

                case classtype.knight:

                Console.WriteLine("직업: 기사");

                    Newplayer.setting(20, 80,10);

                    Console.WriteLine("공격력:" + Newplayer.at);

                    Console.WriteLine("생명력:" + Newplayer.hp);

                    Console.WriteLine("마나:" + Newplayer.mana);

                    break;

                case classtype.magician:

                    Console.WriteLine("직업: 마법사");

                    Newplayer.setting(10, 50, 50);

                    Console.WriteLine("공격력:" + Newplayer.at);

                    Console.WriteLine("생명력:" + Newplayer.hp);

                    Console.WriteLine("마나:" + Newplayer.mana);

                    break;

                case classtype.archer:

                    Console.WriteLine("직업: 궁수");

                    Newplayer.setting(40,50,20);

                    Console.WriteLine("공격력:" + Newplayer.at);

                    Console.WriteLine("생명력:" + Newplayer.hp);

                    Console.WriteLine("마나:" + Newplayer.mana);

                    break;

                case classtype.rogue:

                    Console.WriteLine("직업: 도적");

                    Newplayer.setting(30, 60, 20);

                    Console.WriteLine("공격력:" + Newplayer.at);

                    Console.WriteLine("생명력:" + Newplayer.hp);

                    Console.WriteLine("마나:" + Newplayer.mana);

                    break;

            }

            return Newplayer;


        }

        static void Creatmonster(Monstertype ramdommonster, Monster Newmonster)

        {

            switch(ramdommonster)

            {

                case Monstertype slime:

                    Newmonster.name = "slime";

                    Newmonster.hp = 30;

                    Newmonster.at = 10;

                    Newmonster.mana = 0;

                    break;


            }

        }

        static void tutorial(Player Newplayer, Monster Newmonster)

        {

            Console.WriteLine("당신은 튜토리얼에 진입했습니다.");

            Monstertype randommonster = Monstertype.slime;

            Creatmonster(randommonster, Newmonster);

            Console.WriteLine("당신의 앞에"+ Newmonster.name + "이 나타났습니다!");

            Console.WriteLine("1.배틀");

            ConsoleKeyInfo c1 = Console.ReadKey();

            Console.WriteLine();

            switch (c1.Key)

                {

                case ConsoleKey.D1:

                    Console.WriteLine("전투를 시작한다");

                    Console.WriteLine("당신의 턴 입니다. 무엇을 하시겠습니까?");

                    Console.WriteLine("1.공격한다");

                    Console.WriteLine("2.도망친다");

                    yourturn(Newplayer, Newmonster);

                   

                    break;


            }

            static void yourturn(Player Newplayer, Monster Newmonster)

            {

                ConsoleKeyInfo c2 = Console.ReadKey();

                Console.WriteLine();

                switch (c2.Key)

                {

                    case ConsoleKey.D1:

                        Console.WriteLine(Newplayer.name + "은(는)" + Newmonster.name + "을(를) 공격했다!");

                        Console.WriteLine(Newplayer.name + "은(는)" + Newmonster.name + "에게" + Newplayer.at + "만큼의 데미지를 입혔다!");

                        Newmonster.hp -= Newplayer.at;

                        if (Newmonster.hp <= 0)

                        {

                            Console.WriteLine(Newmonster.name + "가 죽었습니다.");

                            Console.WriteLine("튜토리얼을 종료합니다.");


                        }

                        else

                        {

                            monsterturn(Newplayer, Newmonster);

                        }

                        break;

                    case ConsoleKey.D2:

                        Console.WriteLine("무사히 도망쳤다!");

                        tutorial(Newplayer, Newmonster);

                        break;

                }

                static void monsterturn(Player Newplayer, Monster Newmonster)

                {

                    Random rand = new Random();

                    int randomact = rand.Next(1, 2);

                    switch (randomact)

                    {

                        case (int)1:

                            Console.WriteLine(Newmonster.name + "은(는)" + Newplayer.name + "을(를) 공격했다!");

                            Console.WriteLine(Newmonster.name + "은(는)" + Newplayer.name + "에게" + Newmonster.at + "만큼의 데미지를 입혔다!");

                            Newplayer.hp -= Newmonster.at;

                            if (Newplayer.hp <= 0)

                            {

                                Console.WriteLine(Newplayer.name + "가 사망했습니다.");

                                Console.WriteLine("game over");

                                Main();

                            }

                            else

                            {

                                yourturn(Newplayer, Newmonster);

                            }

                            break;

                        case (int)2:

                            Console.WriteLine(Newmonster.name + "은(는)체력을 10 회복했습니다");

                            Newmonster.hp += 10;

                            yourturn(Newplayer, Newmonster);

                            break;

                    }

                }

            }

            

        }

    }

       


            }