ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연산자, 선택문, 반복문, 점프문을 사용한 과제
    C#/수업과제 2021. 3. 10. 00:34

    던파 레인저 무기인 제스 가텐을 강화 재료인 무색 큐브 조각을 전부 소모하거나 무기가 파괴될때까지 강화를 반복하는 코드

    using System;
    
    namespace Study00
    {    
        class Program
        {
            static void Main(string[] args)
            {
                //변수 초기화
                string itemName = "제스 가텐";
                int colorlessCubePieces = 500;
                int colorlessCubePiecesConsumption = 0;
                int itemReinforce = 0;
                int percentage = 0;
                Random random = new Random();
                int randomResult = 0;
                bool destructionPlug = false;
    
                while(true)
                {
                    Console.WriteLine("*********************************************");
                    Console.WriteLine("+{0} {1}의 강화를 시도합니다.", itemReinforce, itemName);
    
                    //강화수치에 따른 강화 확률 및 무색 큐브 조각 소비량
                    switch (itemReinforce)
                    {
                        case 0:
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                            percentage = 100;
                            colorlessCubePiecesConsumption = 1;
                            break;
                        case 7:
                        case 8:
                            percentage = 90;
                            colorlessCubePiecesConsumption = 5;
                            break;
                        case 9:
                        case 10:
                            percentage = 80;
                            colorlessCubePiecesConsumption = 10;
                            break;
                        case 11:
                        case 12:
                            percentage = 50;
                            colorlessCubePiecesConsumption = 20;
                            break;
                        default:
                            percentage = 10;
                            colorlessCubePiecesConsumption = 50;
                            break;
                    }
    
                    //강화 재료 소지 확인
                    if (colorlessCubePieces < colorlessCubePiecesConsumption)
                    {
                        //강화재료 부족
                        Console.WriteLine("무색 큐브 조각이 부족합니다.");
                        break;
                    }
    
                    //무색 큐브 조각 소비
                    colorlessCubePieces -= colorlessCubePiecesConsumption;
    
                    //1~100 난수 생성
                    randomResult = random.Next(1, 101);
    
                    //강화 성공 여부 판정
                    if (randomResult < percentage)
                    {
                        //강화성공                    
                        itemReinforce++;
                        Console.WriteLine("+{0} {1}의 강화를 성공하였습니다.", itemReinforce, itemName);
                        Console.WriteLine("남은 무색 큐브 조각 갯수 : {0}", colorlessCubePieces);
                        continue;
                    }
                    Console.WriteLine("{0}의 강화를 실패하였습니다.", itemName);
                    Console.WriteLine("남은 무색 큐브 조각 갯수 : {0}", colorlessCubePieces);
    
                    //강화실패
                    switch (itemReinforce)
                    {
                        //0~10강화 실패 시 패널티 없음
                        case 0:
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                        case 7:
                        case 8:
                        case 9:
                        case 10:
                            break;
                        //11~12강화 실패 시 -3강
                        case 11:
                        case 12:
                            itemReinforce -= 3;
                            Console.WriteLine("강화 실패로 인해 +{0} {1}이 되었습니다.", itemReinforce, itemName);
                            break;
                        //13강이상 실패 시 파괴
                        default:
                            Console.WriteLine("강화 실패로 인해 +{0} {1}이 파괴되었습니다.", itemReinforce, itemName);
                            destructionPlug = true;
                            break;
                    }
                    //무기 파괴 시 종료
                    if (destructionPlug)
                    {
                        break;
                    }
                }
            }
        }
    }
    

Designed by Tistory.