From b9bba6d8e8b27ac97d316035555168550e22934a Mon Sep 17 00:00:00 2001 From: park_sihyeon Date: Sun, 28 Apr 2024 15:52:30 +0900 Subject: [PATCH] =?UTF-8?q?c#=EA=B3=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.idea.13psh_assignment/.idea/.gitignore | 13 + .../.idea/indexLayout.xml | 8 + .../.idea.13psh_assignment/.idea/vcs.xml | 6 + 13psh_assignment/13psh_assignment.sln | 16 + .../13psh_assignment/13psh_assignment.csproj | 55 ++++ 13psh_assignment/13psh_assignment/Program.cs | 295 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 35 +++ .../bin/Debug/_13psh_assignment.exe | Bin 0 -> 7168 bytes .../bin/Debug/_13psh_assignment.pdb | Bin 0 -> 19968 bytes ...ework,Version=v4.7.1.AssemblyAttributes.cs | 4 + ..._assignment.csproj.AssemblyReference.cache | Bin 0 -> 2337 bytes ..._assignment.csproj.CoreCompileInputs.cache | 1 + ...psh_assignment.csproj.FileListAbsolute.txt | 6 + .../obj/Debug/_13psh_assignment.exe | Bin 0 -> 7168 bytes .../obj/Debug/_13psh_assignment.pdb | Bin 0 -> 19968 bytes 15 files changed, 439 insertions(+) create mode 100644 13psh_assignment/.idea/.idea.13psh_assignment/.idea/.gitignore create mode 100644 13psh_assignment/.idea/.idea.13psh_assignment/.idea/indexLayout.xml create mode 100644 13psh_assignment/.idea/.idea.13psh_assignment/.idea/vcs.xml create mode 100644 13psh_assignment/13psh_assignment.sln create mode 100644 13psh_assignment/13psh_assignment/13psh_assignment.csproj create mode 100644 13psh_assignment/13psh_assignment/Program.cs create mode 100644 13psh_assignment/13psh_assignment/Properties/AssemblyInfo.cs create mode 100644 13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.exe create mode 100644 13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.pdb create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/.NETFramework,Version=v4.7.1.AssemblyAttributes.cs create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/13psh_assignment.csproj.AssemblyReference.cache create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/13psh_assignment.csproj.CoreCompileInputs.cache create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/13psh_assignment.csproj.FileListAbsolute.txt create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/_13psh_assignment.exe create mode 100644 13psh_assignment/13psh_assignment/obj/Debug/_13psh_assignment.pdb diff --git a/13psh_assignment/.idea/.idea.13psh_assignment/.idea/.gitignore b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/.gitignore new file mode 100644 index 0000000..aac5aad --- /dev/null +++ b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/modules.xml +/.idea.13psh_assignment.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/13psh_assignment/.idea/.idea.13psh_assignment/.idea/indexLayout.xml b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/13psh_assignment/.idea/.idea.13psh_assignment/.idea/vcs.xml b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/13psh_assignment/.idea/.idea.13psh_assignment/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/13psh_assignment/13psh_assignment.sln b/13psh_assignment/13psh_assignment.sln new file mode 100644 index 0000000..7c20056 --- /dev/null +++ b/13psh_assignment/13psh_assignment.sln @@ -0,0 +1,16 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "13psh_assignment", "13psh_assignment\13psh_assignment.csproj", "{A0A394BC-F612-40FA-AFC6-C297203D2C21}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A0A394BC-F612-40FA-AFC6-C297203D2C21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A0A394BC-F612-40FA-AFC6-C297203D2C21}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A0A394BC-F612-40FA-AFC6-C297203D2C21}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A0A394BC-F612-40FA-AFC6-C297203D2C21}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/13psh_assignment/13psh_assignment/13psh_assignment.csproj b/13psh_assignment/13psh_assignment/13psh_assignment.csproj new file mode 100644 index 0000000..5e8ad35 --- /dev/null +++ b/13psh_assignment/13psh_assignment/13psh_assignment.csproj @@ -0,0 +1,55 @@ + + + + + Debug + AnyCPU + {A0A394BC-F612-40FA-AFC6-C297203D2C21} + Exe + Properties + _13psh_assignment + _13psh_assignment + v4.7.1 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + diff --git a/13psh_assignment/13psh_assignment/Program.cs b/13psh_assignment/13psh_assignment/Program.cs new file mode 100644 index 0000000..1cc2ec5 --- /dev/null +++ b/13psh_assignment/13psh_assignment/Program.cs @@ -0,0 +1,295 @@ +using System; + +namespace _13psh_assignment +{ + internal class Program + { + enum ClassType + { + None = 0, + Knight = 1, + Archer = 2, + Mage = 3 + } + + struct Player + { + public int hp; + public int attack; + } + + // ClassType, Player를 참고해 MonsterType과 Monster 구조체를 완성해보세요. + // 몬스터 종류 + // Slime -> 체력: 20 / 공격력: 2 + // Orc -> 체력: 40 / 공격력: 5 + // Skeleton -> 체력: 30 / 공격력: 7 + enum MonsterType + { + // TODO + 슬라임, + 오크, + 스켈레톤 + } + + struct Monster + { + // TODO + public int hp; + public int attack; + } + + // 플레이어 직업 선택 함수 + static ClassType ChooseClass() + { + Console.WriteLine("직업을 선택하세요!"); + Console.WriteLine("[1]. 검사"); + Console.WriteLine("[2]. 궁수"); + Console.WriteLine("[3]. 법사"); + + ClassType choice = ClassType.None; + + string input = Console.ReadLine(); + + switch (input) + { + case "1": + choice = ClassType.Knight; + break; + case "2": + choice = ClassType.Archer; + break; + case "3": + choice = ClassType.Mage; + break; + } + + return choice; + } + + // 플레이어 생성 함수 + static void CreatePlayer(ClassType choice, out Player player) + { + switch (choice) + { + case ClassType.Knight: + player.hp = 100; + player.attack = 10; + break; + case ClassType.Archer: + player.hp = 85; + player.attack = 12; + break; + case ClassType.Mage: + player.hp = 60; + player.attack = 15; + break; + default: + player.hp = 0; + player.attack = 0; + break; + } + } + + static void InitializeMonsterStats(MonsterType monsterType, out int hp, out int attack) + { + hp = 0; + attack = 0; + + switch (monsterType) + { + case MonsterType.슬라임: + hp = 20; + attack = 2; + break; + case MonsterType.오크: + hp = 40; + attack = 5; + break; + case MonsterType.스켈레톤: + hp = 30; + attack = 7; + break; + + default: + hp = 0; + attack = 0; + break; + } + } + + // 플레이어 생성 함수 (CreatePlayer)를 참고해 몬스터 랜덤 생성 함수 (CreateRandomMonster)를 완성해보세요. + // 1. 1~3 중 랜덤으로 수를 하나 뽑습니다. + // 2. 뽑은 숫자가 1일 경우에는 슬라임, 2일 경우에는 오크, 3일 경우에는 스켈레톤을 생성하는 코드를 짭니다. (CreatePlayer 참고) + // default의 경우 몬스터의 체력을 0, 공격력을 0이로 초기화만 해줍니다. + // 2-1. 이 때 공격력과 체력을 초기화해주는 코드가 case 실행문에 반복적으로 나타납니다. 함수로 따로 빼서 구현해봅시다. + // 3. "(몬스터 이름)이 생성되었습니다."라는 문구를 출력해줍니다. (default의 경우 생략) + + // 몬스터 종류 + // Slime -> 체력: 20 / 공격력: 2 + // Orc -> 체력: 40 / 공격력: 5 + // Skeleton -> 체력: 30 / 공격력: 7 + + // 몬스터 랜덤 생성 함수 + static void CreateRandomMonster(out Monster monster) + { + // TODO + + Random random = new Random(); + + int randomValue = random.Next(0,3); + + monster.hp = 0; + monster.attack = 0; + + MonsterType monsterType = (MonsterType)randomValue; + + InitializeMonsterStats(monsterType, out monster.hp, out monster.attack); + + Console.WriteLine($"{monsterType}이 생성되었습니다."); + + } + + + + + + // 게임 접속 함수 + static void EnterGame(ref Player player) + { + while (true) + { + Console.WriteLine("마을에 접속했습니다!"); + Console.WriteLine("[1]. 필드로 간다"); + Console.WriteLine("[2]. 로비로 돌아가기"); + + string choice = Console.ReadLine(); + switch (choice) + { + case "1": + EnterField(ref player); + break; + case "2": + return; + } + } + } + + // 필드 접속 함수 + static void EnterField(ref Player player) + { + Console.WriteLine("필드에 접속했습니다!"); + + while (true) + { + // 랜덤 몬스터 등장 + Monster monster; + CreateRandomMonster(out monster); + + Console.WriteLine("[1]. 전투 모드로 돌입"); + Console.WriteLine("[2]. 일정 확률로 마을로 도망"); + + // 사용자 입력을 받아 input에 저장 + string input = Console.ReadLine(); + + if (input == "1") + { + Fight(ref player, ref monster); + + //continue를 이용해 플레이어가 사망상태가 아니라면 루프를 계속 돌고 , + //사망한 상태라면 break로 EnterField를 빠져나가 마을로 가게 함. + if (player.hp > 0) + continue; + break; + } + else + { + // 30퍼센트 확률로 도망에 성공 + Random rand = new Random(); + int randValue = rand.Next(0, 101); + if (randValue <= 33) + { + Console.WriteLine("도망쳤습니다!"); + break; + } + // 도망에 실패했다면 전투에 돌입한다. + else + { + Console.WriteLine("도망치지 못합니다!"); + Fight(ref player, ref monster); + if (player.hp > 0) + continue; + break; + } + } + } + } + + // 무한루프 안을 채워 플레이어 vs 몬스터 전투 함수를 완성해보세요. + // 1. 플레이어가 먼저 몬스터를 공격한 뒤, 몬스터가 플레이어를 공격합니다. 플레이어가 몬스터를 공격할 경우, 몬스터의 체력에서 플레이어의 공격력 수치만큼을 뺍니다. 몬스터가 플레이어를 공격할 경우, 플레이어의 체력에서 몬스터의 공격력 수치만큼을 뺍니다. + // 2. 플레이어가 몬스터를 공격했을 때, 몬스터의 체력이 0 이하가 된다면 + // 1. "적을 무찔렀습니다!" 라는 문구를 출력합니다 + // 2. 플레이어의 남은 체력을 출력해줍니다 (ex. 남은 체력: 87) + // 3. 무한루프를 빠져나갑니다. + // 3. 몬스터가 플레이어를 공격했을 때, 플레이어의 체력이 0 이하가 된다면 "Game Over... 마을로 돌아갑니다..."를 출력한 뒤 무한루프를 빠져나갑니다. + + // 플레이어 vs 몬스터 전투 함수 + static void Fight(ref Player player, ref Monster monster) + { + + // TODO + + while (true) + { + + // Player attacks monster + monster.hp -= player.attack; + Console.WriteLine($"몬스터에게 {player.attack}의 피해를 입혔습니다."); + + if (monster.hp <= 0) + { + Console.WriteLine("적을 무찔렀습니다!"); + Console.WriteLine($"남은 체력: {player.hp}"); + break; + } + + // Monster attacks player + player.hp -= monster.attack; + Console.WriteLine($"몬스터의 공격! 플레이어는 {monster.attack}의 피해를 입었습니다."); + + if (player.hp <= 0) + { + Console.WriteLine("Game Over... 마을로 돌아갑니다..."); + break; + } + } + + + } + + + + public static void Main(string[] args) + { + ClassType choice = ClassType.None; + + while (true) + { + // 플레이어의 직업을 선택 + choice = ChooseClass(); + + // continue 이용해 ClassType선택이 완료되지 않은 상태라면 이후 코드로 넘어가지 않도록 함. + if (choice == ClassType.None) + continue; + + // 플레이어 생성 (체력과 공격력 정보 초기화) + Player player; + CreatePlayer(choice, out player); + Console.WriteLine($"HP:{player.hp} Attack:{player.attack}"); + + // 게임 시작 + EnterGame(ref player); + } + } + } + +} \ No newline at end of file diff --git a/13psh_assignment/13psh_assignment/Properties/AssemblyInfo.cs b/13psh_assignment/13psh_assignment/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f9688a9 --- /dev/null +++ b/13psh_assignment/13psh_assignment/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("_13psh_assignment")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("_13psh_assignment")] +[assembly: AssemblyCopyright("Copyright © 2024")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("A0A394BC-F612-40FA-AFC6-C297203D2C21")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.exe b/13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.exe new file mode 100644 index 0000000000000000000000000000000000000000..1d04b2369b2a95f40b71793ce1ffc00e91912743 GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.pdb b/13psh_assignment/13psh_assignment/bin/Debug/_13psh_assignment.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c598cb2579608d15246069c8924ae629b48c163 GIT binary patch literal 19968 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 +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.7.1", FrameworkDisplayName = ".NET Framework 4.7.1")] diff --git a/13psh_assignment/13psh_assignment/obj/Debug/13psh_assignment.csproj.AssemblyReference.cache b/13psh_assignment/13psh_assignment/obj/Debug/13psh_assignment.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..053a96799b6e42cfb0cf8a626142c9740e9cd618 GIT binary patch literal 2337 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 literal 0 HcmV?d00001 diff --git a/13psh_assignment/13psh_assignment/obj/Debug/_13psh_assignment.pdb b/13psh_assignment/13psh_assignment/obj/Debug/_13psh_assignment.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6c598cb2579608d15246069c8924ae629b48c163 GIT binary patch literal 19968 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