본문 바로가기

정리 카테고리/실습_과제

실습_직업을 골라 늑대사냥 및 강화

1.요구사항

            // 1,2,3중 직업을 입력 하세요. [입력]
            // 1 : 전사, 2: 마법사, 3: 도적 
            // 전사 -> 검(5), 마법사 -> 지팡이(3), 3 -> 단검(1)  (강화 기본 단계는 0입니다.)
            // "강화"
            // 재료가 있다면 
                // 검 강화를 시작 합니다. 
                // 강화서 1장을 사용 
                // 50%확률로 강화 성공, 실패 
                // 성공 했다면 검 (+1강)   //강화 단계를 1단계 올리세요
                // 실패 했다면 검 (0강)    //강화 단계는 올라가지 않습니다.
            // 재료가 없다면 
                // 무기 강화서가 부족 합니다.
            // "퀘스트"
            // 늑대 10마리를 잡아 오세요. (늑대의 hp는 11)
            // "퀘스트 수락"
            // 퀘스트를 수락 했습니다.
            // 퀘스트 수락 상태에서 "늑대 모두 쳐"
            // [퀘스트 완료] 보상: 무기강화서 1장 
            // 퀘스트를 수락 하지 않았다면 : 알수없는 명령어 입니다.
            // "가방"
            // 무기 강화서: 1장

+늑대 공격시 직업별 확률 부여





2.결과 화면 + 샘플 파일



늑대잡고 강화하는거.exe









3.소스 코드



class Program
    {   
        static void Main(string[] args)
        {
            
            string jobName = "";
            int jobPower = 0;
            int passPer = 0;
            int upPaper = 0;
            int upLv = 0;
            int wolfHp = 330;
            int questCheck=0;
            string check = "";
            Random random = new Random();
            for (int i = 1; i > 0; i++)
            {
                Console.WriteLine("직업을 선택하시오.(번호)");
                Console.WriteLine("1.전사 2.마법사 3.도적");
                int selectJob = int.Parse(Console.ReadLine());
                if (selectJob == 1)
                {
                    jobName = "전사";
                    jobPower = 25;
                    passPer = 3;
                    break;
                }
                else if (selectJob == 2)
                {
                    jobName = "마법사";
                    jobPower = 20;
                    passPer = 4;
                    break;
                }
                else if (selectJob == 3)
                {
                    jobName = "도적";
                    jobPower = 15;
                    passPer = 5;
                    break;
                }
            }
            while(!(check == "게임종료"))
            {
                Console.WriteLine("");
                Console.WriteLine("원하는진행 명령어를 입력하세요.");
                Console.WriteLine("퀘스트확인-현재 퀘스트 수락여부");
                Console.WriteLine("퀘스트수락-퀘스트를 수락");
                Console.WriteLine("가방-현재 강화서 확인");
                Console.WriteLine("무기-현재 공격력 및 강화레벨 확인");
                Console.WriteLine("늑대모두쳐-퀘스트 진행");
                Console.WriteLine("강화-50%확률로 강화성공");
                Console.WriteLine("게임종료 - 게임을 종료합니다.");
                string select =  Console.ReadLine();
                switch (select)
                {
                    case "퀘스트확인":
                        {
                            if (questCheck == 1)//수락한 퀘스트가 있을때
                            {
                                Console.Clear();
                                Console.WriteLine("퀘스트를 진행중입니다.");

                            }
                            else//수락한 퀘스트가 없을때
                            {
                                Console.Clear();
                                Console.WriteLine("진행중인 퀘스트가 없습니다.");                                
                            }
                                break;
                        }
                    case "퀘스트수락":
                        {
                            if (questCheck == 1)//이미 수락했을때
                            {
                                Console.Clear();
                                Console.WriteLine("이미 퀘스트를 진행중입니다.");
                            }
                            else
                            {
                                Console.Clear();//정상적인 수락일때
                                Console.WriteLine("퀘스트를 수락했습니다.");
                                questCheck = 1;
                            }

                            break;
                        }
                    case "가방":
                        {
                            Console.Clear();
                            Console.WriteLine("현재 보관중인 강화서의 개수는 " + upPaper + "장 입니다.");
                            break;
                        }
                    case "무기":
                        {
                            Console.Clear();
                            Console.WriteLine("현재 당신의 직업은 " + jobName + " 입니다.");
                            Console.WriteLine("현재 당신의 무기의 공격력은 " + jobPower + " 입니다.");
                            Console.WriteLine("현재 당신의 강화 레벨은  " + upLv + " 입니다.");
                            break;
                        }
                    case "늑대모두쳐":
                        {
                            if (questCheck == 1)
                            {
                                for (int i = 1; i<11; i++)//총 10마리 잡을때까지
                                {
                                    wolfHp = 330;
                                    for (int j = 1; wolfHp > 0; j++)//한마리 잡는 과정
                                    {
                                        int pass = random.Next(1, 100);
                                        if (pass % passPer == 0)
                                        {
                                            Console.WriteLine("   " + j + "번째 공격시도 입니다. \n   늑대가 공격을 회피했습니다.");
                                        }
                                        else
                                        {
                                            wolfHp -= jobPower;
                                            Console.WriteLine("   " + j + "번째 공격시도 입니다. \n    현재 남은 늑대 체력은 " + wolfHp + "남았습니다.");
                                        }
                                    }
                                    Console.WriteLine("----현재 진행상태는 " + i + "/10 입니다.");

                                }
                                Console.WriteLine("+++퀘스트를 완료했습니다!!!!! 강화서 한장 획득!!!!");
                                upPaper += 1;
                                questCheck = 0;
                            }
                            else//늑대 잡기전 퀘스트 미수락시
                            {
                                Console.Clear();
                                Console.WriteLine("수락한 퀘스트가 없어 진행할 것이 없습니다.");
                            }
                            break;
                        }
                    case "강화":
                        {if (upPaper > 0)//강화서가 있을때
                            {
                                int cri = random.Next(1, 100);
                                if (cri % 2 == 0)
                                {
                                    jobPower += 15;
                                    upLv++;
                                    upPaper-- ;
                                    Console.Clear();
                                    Console.WriteLine("!!!강화!!!성공!!! ");
                                    Console.WriteLine("공격력 : " + jobPower + "\n 강화레벨 : +" + upLv);
                                    Console.WriteLine("남은 강화서의 개수는 " + upPaper + "장 입니다.");
                                }
                                else
                                {
                                    upPaper--;
                                    Console.Clear();
                                    Console.WriteLine("---------강화 실ㅠㅐ........ㅠ.,ㅜ");
                                    Console.WriteLine("남은 강화서의 개수는 " + upPaper + "장 입니다.");
                                }
                            }
                        else//강화서가 없을때
                            {
                                Console.Clear();
                                Console.WriteLine("강화서가 한장도 없어요.");
                            }
                            break;
                        }
                    case "게임종료"://종료 명령어
                        {
                            Console.Clear();
                            check = "게임종료";
                            break;
                        }
                    default:
                        {
                            Console.WriteLine("잘못된 명령어 입니다.");
                            break;
                        }

                }



            }
            Console.WriteLine("게임이 종료되었습니다.");
            Console.ReadKey();
        }
    }