카테고리 없음

[3.10] 메소드 연습 3 - 반환값과 매개변수 둘 다 있는 메소드

ljw4104 2021. 3. 10. 17:34
using System;

namespace Study00
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("1000000원 배팅 : {0}", Gamble(1000000));
            Console.WriteLine("나뭇가지 5개 합성 : {0}", MakeFishingRod("나뭇가지", 5));
            Console.WriteLine("물과 바람 스킬 상성 비교 : 기본공격력의 {0}배", CalculateSkillSynastry("물", "전기"));
        }

        //도박(확률 0.7%, 배팅비율 : 30배)
        static private int Gamble(int money)
        {
            int betting = (int)(money * 0.7);
            money -= betting;

            Random r = new Random();
            int prob = r.Next(1, 1001);
            if (prob <= 7)
            {
                betting *= 30;
                money += betting;
            }
            return money > 0 ? money : 0;
        }

        //낚싯대 제작
        static private string MakeFishingRod(string item, int itemNum)
        {
            if (item == "나뭇가지" && itemNum >= 5)
            {
                return "엉성한 낚싯대 1개";
            }
            else if (item == "엉성한 낚싯대" && itemNum >= 3)
            {
                return "낚싯대 1개";
            }

            return "낚싯대 만들기 실패";
        }

        //스킬 상성계산
        static private float CalculateSkillSynastry(string skill1, string skill2)
        {
            float defaultDamage = 1f;
            if (skill1 == "불" && skill2 == "물")
            {
                defaultDamage /= 2;
            }
            else if (skill1 == "물" && skill2 == "전기")
            {
                defaultDamage *= 3;
            }
            else if (skill1 == "불" && skill2 == "바람")
            {
                defaultDamage *= 2;
            }
            else if (skill1 == "언데드" && skill2 == "성")
            {
                defaultDamage = 0;
            }

            return defaultDamage;
        }
    }
}