示例#1
0
    static void Main(string[] args)
    {
        Inven NewInven = new Inven(5, 3);

        Item NewItem1 = new Item("철검", 100);
        Item NewItem2 = new Item("천갑옷", 100);
        Item NewItem3 = new Item("바나나", 100);

        //이제 인벤에 아이템을 넣고 싶다.



        NewInven.AddItem(NewItem1);
        NewInven.AddItem(NewItem2);
        NewInven.AddItem(NewItem3);

        NewInven.AddItem(new Item("파란포션", 100), 5);
        // 알아서 처리해줄거라는 생각 자체를 하지 말라.
        // 방어 코드를 설계!!



        while (true)
        {
            // 이런 객체간의 구조를 만들 때 약간 도움이 될만한 규칙들. solid.
            // SOLID : 객체지향 개발 5대 원리.
            // 1. 단일책임의 원칙
            // 2. 개방폐쇄
            // 3. 어쩌구 치환
            // 4. 인터페이스 분리 // 이거 말할라고.
            // 5. 의존성역젼
            //
            // 인터페이스 분리원칙은
            // ex) 함수를 잘개 쪼개서 만든다음에
            // 그 잘게 쪼갠 함수들을 조합해서 새 기능을 만들어 내라. 예 : get(), set(), Damage() 등등
            NewInven.Render();
            NewInven.Select();
        }
    }
示例#2
0
 static public void ExchangeItem(Inven <ItemType> _Costomer, Inven <ItemType> _Seller, int _ItemIndex) // 일단 GOLD 없이.
 {                                                                                                     // 인자값과 반환값으로밖에 메소드끼리 소통하지 못한다는게 아쉽다.
     _Costomer.AddItem(_Seller.GetItem(_ItemIndex));
     _ItemIndex = 10;
     _Seller.DeleteItem(_ItemIndex);
 }
        static STARTSELECT Town(Player _Player)
        {
            // shopinven 이라는 인벤토리를 만들어줌.
            Inven <Item> ShopInven = new Inven <Item>(5, 5);

            ShopInven.AddItem(new Item("철검", 500), 1);
            ShopInven.AddItem(new Item("천갑옷", 300), 2);
            ShopInven.AddItem(new Item("돌칼", 300), 4);
            ShopInven.AddItem(new Item("녹슨 도끼", 350), 5);
            ShopInven.AddItem(new Item("빨간 포션", 50), 6);
            ShopInven.AddItem(new Item("파란 포션", 30), 10);
            ShopInven.AddItem(new Item("뭔가 수상한 지팡이", 50), 13);
            ShopInven.AddItem(new Item("천갑옷", 300), 16);
            ShopInven.AddItem(new Item("돌칼", 300), 20);
            ShopInven.AddItem(new Item("녹슨 도끼", 350), 21);
            ShopInven.AddItem(new Item("빨간 포션", 50), 22);
            ShopInven.AddItem(new Item("파란 포션", 30), 24);
            ShopInven.AddItem(new Item("파란 포션", 30), 25);


            while (true)
            {
                Console.Clear();
                _Player.StatusRender();

                Console.WriteLine("\n마을에서 무엇을 하시겠습니까?");
                Console.WriteLine("1.여관에 들려 체력을 회복한다.");
                Console.WriteLine("2.대장관에 들른다.");
                Console.WriteLine("3.상점에 들른다.");
                Console.WriteLine("4.마을을 나간다.\n");

                switch (Console.ReadKey().Key)
                {
                case ConsoleKey.D1:
                    Inn(_Player);
                    break;

                case ConsoleKey.D2:
                    break;

                case ConsoleKey.D3:
                    Shop(_Player, ShopInven);
                    break;

                case ConsoleKey.D4:
                    Console.WriteLine("");
                    Console.WriteLine("마을을 나갑니다.\n");
                    Console.ReadKey();

                    // 함수의 분기.
                    // 함수의 통합.
                    // 객체를 선언해야 될 때 이 세개가 초반 프로그래밍의 전부.

                    return(STARTSELECT.NONESELECT);    // 나간다.

                default:
                    break;
                }
            }
        }