c#/복습

(재연습)메서드 연습

yeeendy 2023. 1. 21. 22:11

메서드 연습 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study0121
{
    class App
    {
        int heroMaxHp = 10;
        int heroHp;
        string heroName = "홍길동";
        //생성자
        public App()
        {

            heroHp = heroMaxHp;
            HitHero(3);
            HealHero(1);
            HealHero(1);
            HealHero(1);
            HealHero(1);
            HitHero(100);
            //홍길동이 3 만큼 피해를 입었습니다. (7/10)
            //홍길동이 1만큼 회복 되었습니다 (8/10)
            //홍길동이 1만큼 회복 되었습니다 (9/10)
            //홍길동이 1만큼 회복 되었습니다 (10/10)
            //더이상 치유 할수 없습니다.
            //홍길동이 100 만큼 피해를 입었습니다. (0/10)
            //홍길동이 죽었습니다.
        }
        void HitHero(int damage)
        {
            heroHp = heroHp - damage;
            if(heroHp >= 0)
            {
                Console.WriteLine("홍길동이 {0}만큼 피해를 입었습니다. ({1}/{2})", damage, heroHp, heroMaxHp);
            }
            else
            {
                heroHp = 0;
                Console.WriteLine("홍길동이 {0}만큼 피해를 입었습니다. ({1}/{2})", damage, heroHp, heroMaxHp);
                Console.WriteLine("홍길동이 죽었습니다.");
            }
        }
        void HealHero(int heal)
        {
            heroHp = heroHp + heal;
            if(heroHp <= 10)
            {
                Console.WriteLine("홍길동이 {0}만큼 회복 되었습니다 ({1}/{2})", heal, heroHp, heroMaxHp);
            }
            else
            {
                Console.WriteLine("더이상 치유 할수 없습니다.");
            }
        }
       
    }
}

메서드 연습 2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study0121
{
    class App
    {
        int hp = 10;
        int maxHp = 10;
        bool isDie = false;
        //생성자
        public App()
        {
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
            Hit(3);
        }
        void Hit(int damage)
        {
            if (hp <= 0) return;
            hp = hp - damage;
            if(hp > 0)
            {
                Console.WriteLine("피해를 받았습니다. {0}/{1}", hp, maxHp);
            }
            else
            {
                hp = 0;
                Console.WriteLine("피해를 받았습니다. {0}/{1}", hp, maxHp);
                Console.WriteLine("죽었습니다.");
            }
        }

    }
}

메서드 연습 3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study0121
{
    class App
    {
        enum MenuType
        {
            CHARACTER,
            SHOP,
            PET
        }
        //생성자
        public App()
        {
            Console.WriteLine("App");

            SelectMenu(MenuType.SHOP);
            SelectMenu(MenuType.CHARACTER);
        }
        void SelectMenu(MenuType myMenuType)
        {
            if (myMenuType == MenuType.CHARACTER)
                Console.WriteLine("캐릭터 메뉴를 선택 했습니다.");
            else if (myMenuType == MenuType.PET)
                Console.WriteLine("펫 메뉴를 선택 했습니다.");
            else
                Console.WriteLine("상점 메뉴를 선택 했습니다.");
        }

    }
}

메서드 연습 4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study0121
{
    class App
    {
        float nextExp = 115f;
        float myExp = 89.5f;
        int maxLevel = 2;
        int level = 1;
        int maxExp = 115;
        //생성자
        public App()
        {
            Console.WriteLine("App");

            GetExp(19f);
            GetExp(33.14f);
            GetExp(33.14f);
        }
        void GetExp(float getExp)
        {
            if (level >= maxLevel)
                Console.WriteLine("최대 레벨에 도달하였습니다.");
            else
            {
                if (myExp + getExp < maxExp)
                {
                    myExp = myExp + getExp;
                    float per = myExp / maxExp * 100;
                    Console.WriteLine("경험치({0})를 획득 했습니다.  ({1}/{2}) {3:0}%", getExp, myExp, maxExp, per);
                }
                else
                {
                    myExp = 115f;
                    float per = myExp / maxExp * 100;
                    Console.WriteLine("경험치({0})를 획득 했습니다.  ({1}/{2}) {3}%", getExp, myExp, maxExp, per);
                    Console.WriteLine("레벨업을 했습니다.");
                    level = level + 1;
                    Console.WriteLine("{0}레벨이 되었습니다.", level);
                }
            }
            
        }
        //경험치(19)를 획득 했습니다.    (108.50/115) 94%
        //경험치(33.14)를 획득 했습니다.    (115/115) 100%
        //레벨업을 했습니다. 
        //2레벨이 되었습니다.   
        //최대 레벨에 도달 했습니다.
    }
}