유니티3D 프로그래밍

C# 1주차 3일 연습 과제 (21.03.10) 본문

C#/수업과제

C# 1주차 3일 연습 과제 (21.03.10)

tjdgus9955 2021. 3. 10. 16:02
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Study01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("방향을 입력하세요 : ");
            string input = Console.ReadLine();
            Move(input);

            Console.Write("공격할 적을 입력하세요 : ");
            input = Console.ReadLine();
            Attack(input);

            Console.Write("사용할 스킬을 입력하세요 : ");
            input = Console.ReadLine();
            UsingSkill(input);

            Console.Write("총알의 수량을 입력하세요 : ");
            input = Console.ReadLine();
            int num = Convert.ToInt32(input);
            Reload(num);

            Console.Write("도발할 대상을 입력하세요 : ");
            input = Console.ReadLine();
            Provocation(input);

            Console.Write("주울 아이템을 입력하세요 : ");
            input = Console.ReadLine();
            ItemGain(input);
        }
        //이동한다 (방향)
        static private void Move(string direction)
        {
            Console.WriteLine("{0}으로 이동한다.", direction);
        }

        //공격한다 (타겟이름)
        static private void Attack(string enemy)
        {
            Console.WriteLine("{0}을 공격한다.", enemy);
        }

        //스킬을 사용한다 (스킬이름)
        static private void UsingSkill(string skiilName)
        {
            Console.WriteLine("{0}을 사용한다.", skiilName);
        }

        //총알을 장전한다 (몇발)
        static private void Reload(int bulletAmount)
        {
            Console.WriteLine("{0}만큼 재장전한다.", bulletAmount);
        }

        //상대를 도발한다 (상대이름)
        static private void Provocation(string enemy)
        {
            Console.WriteLine("{0}을(를) 도발한다.", enemy);
        }

        //아이템을 줍는다 (아이템이름)
        static private void ItemGain(string itemName)
        {
            Console.WriteLine("{0}을(를) 줍는다.", itemName);
        }

        //아이템을 사용한다 (아이템이름)
        static private void UsingItem(string itemName)
        {
            Console.WriteLine("{0}을(를) 사용한다.", itemName);
        }

        //장비를 착용한다 (장비 이름)
        static private void Equip(string itemName)
        {
            Console.WriteLine("{0}을(를) 착용한다", itemName);
        }

        //장비를 벗는다 (장비이름)
        static private void Unequip(string itemName)
        {
            Console.WriteLine("{0}을(를) 장비해제한다.", itemName);
        }

        //아이템을 강화 한다 (아이템 이름)
        static private void Reinforce(string itemName)
        {
            Console.WriteLine("{0}을(를) 강화한다.", itemName);
        }

        //요금을 충전한다 (얼마)
        private void ChargeMoney(int pay)
        {
            Console.WriteLine("요금을 {0}만큼 충전한다.", pay);
        }

        //합성한다 (아이템1, 아이템2)
        private void Synthesize(string item1, string item2)
        {
            Console.WriteLine("{0}과 {1}을(를) 합성한다.", item1, item2);
        }

        //귀환한다 (어디로)
        private void returnArea(string area)
        {
            Console.WriteLine("{0}으로 귀환한다.", area);
        }

        //입장한다 (어디로)
        private void Entrance(string area)
        {
            Console.WriteLine("{0}으로 입장한다.", area);
        }
    }
}

 

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

namespace Study01
{
    class Program
    {
        public enum Race
        {
            Elf, Dwarf, Orc, Goblin, Human
        }
        static void Main(string[] args)
        {
            Console.WriteLine("몬스터를 생성합니다. : {0}", RespawnMonster());
            Console.WriteLine("생성한 몬스터의 종족 : {0}", Goblin());
            Console.WriteLine(KillEnemy());
            Console.WriteLine("획득한 아이템 : {0}", DropItem());
            Console.WriteLine("드랍된 아이템의 개수 : {0}", DropItemAmount());
            Console.WriteLine("획득한 골드 : {0}", GetGold());
            Console.WriteLine("획득한 아이템의 무게 : {0}", StingItemWeight());
            Console.WriteLine("획득한 아이템의 판매가격 : {0}", StingSold());
            Console.WriteLine("포션을 구매합니다. 가격 : {0}", BuyPotion());
            Console.WriteLine(LeaveTown());

        }



        //몬스터가 생성된다.
        static private string RespawnMonster()
        {
            string monster = "고블린";
            return monster;
        }

        //생성된 몬스터의 종족
        static private Race Goblin()
        {
            Race race = Race.Goblin;
            return race;
        }

        //적을 처치했다.
        static private string KillEnemy()
        {
            return "적을 처치했다.";
        }

        //아이템을 드랍하다
        static private string DropItem()
        {
            string itemName = "고블린의 독침";
            return itemName;
        }

        //드랍된 아이템의 개수
        static private int DropItemAmount()
        {
            Random rand = new Random();
            int itemAmount = rand.Next(1, 4);
            return itemAmount;
        }

        //골드를 획득한다.
        static private int GetGold()
        {
            int gold = 100;
            return gold;
        }

        //독침 아이템의 무게
        static private float StingItemWeight()
        {
            return 0.3f;
        }

        //독침 아이템을 판다
        static private int StingSold()
        {
            int soldItemPrice = 200;
            return soldItemPrice;
        }

        //포션을 구매하다.
        static private int BuyPotion()
        {
            int potionPrice = 100;
            return potionPrice;
        }

        //마을을 떠난다.
        static private string LeaveTown()
        {
            return "마을을 떠납니다.";
        }
    }
}

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

namespace Study01
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("현재 보유 골드 : ");
            string input = Console.ReadLine();
            int num1 = Convert.ToInt32(input);
            Console.WriteLine(ReinforceItem(num1));

            Console.WriteLine();
            Console.Write("처치한 몬스터 : ");
            input = Console.ReadLine();
            Console.WriteLine("{0}로부터 획득한 골드 : {1}", input, DropMoney(input));

            Console.WriteLine();
            Console.Write("사용한 무기 : ");
            input = Console.ReadLine();
            int subItemDamage = 30;
            Console.WriteLine("{0}(으)로 입힌 데미지 : {1}", input, Damage(input, subItemDamage, 100, 20));
            
            Console.WriteLine();
            Console.WriteLine("몬스터 2마리 입력과 몬스터 나이 입력 : ");
            input = Console.ReadLine();
            string input2 = Console.ReadLine();
            string input3 = Console.ReadLine();
            num1 = Convert.ToInt32(input3);
            Console.WriteLine(MonsterEvolution(input, input2, num1));

            Console.WriteLine();
            Console.Write("경매장의 아이템 개수 :");
            input = Console.ReadLine();
            num1 = Convert.ToInt32(input);
            int[] array = new int[num1];
            Random rand = new Random();

            for(int i = 0; i < array.Length; i++)
            {
                int num2 = rand.Next(50, 101);
                array[i] = num2;
                Console.WriteLine("아이템의 가격 : {0}", num2);
            }

            Console.WriteLine("경매장의 아이템 평균 시세 : {0}",AverageItemGold(array, num1));

        }

        //아이템을 강화한다.
        static private string ReinforceItem(int gold)
        {
            if(gold > 150)
            {
                return "강화를 시작합니다.";
            }
            else
            {
                return "돈이 부족합니다.";
            }
        }

        //몬스터가 드랍하는 돈
        static private int DropMoney(string monster)
        {
            if(monster == "고블린")
            {
                return 100;
            }
            else if(monster == "오크")
            {
                return 200;
            }
            else
            {
                return 0;
            }
        }

        //무기로 입히는 몬스터에게 입히는 데미지 반환
        static private int Damage(string item, int subItemDamage, int itemDamage, int monsterShield)
        {
            if (item == "대검")
            {
                //대검은 통상 아이템 데미지의 2배
                itemDamage = itemDamage * 2;
            }
            else if (item == "활")
            {
                //활 데미지는 활 자체 데미지 + 화살 데미지
                itemDamage = itemDamage + subItemDamage;
            }
            else
                return itemDamage - monsterShield;

            return itemDamage - monsterShield;
        }

        //몬스터 진화 방식
        static private string MonsterEvolution(string monster1, string monster2, int monsterAge)
        {
            if(monsterAge > 30)
            {
                return "몬스터가 나이를 먹어 진화했습니다.";
            }
            else
            {
                return monster1 + "와(과) " + monster2 + " 가 만나 돌연변이가 탄생하였습니다.";
            }
        }

        //아이템의 평균 시세
        static private int AverageItemGold(int[] tradeItemPrice, int itemCount)
        {
            //tradeItemPrice 배열은 거래된 가격의 정보들 
            int sum = 0;
            for(int i = 0; i < tradeItemPrice.Length; i++)
            {
                sum += tradeItemPrice[i];
            }
            int avg = sum / itemCount;
            return avg;
        }
    }
}