카테고리 없음

2024 - 12- 17

mynote6590 2024. 12. 17. 14:54
  • Gun이라는 클래스와 Projectile이라는 클래스를 만들겠습니다. 그리고 Projectile 클래스를 상속받는 Bullet클래스와 Grenade 클래스를 만듭니다.
    • Grenade와 Bullet클래스에는 각각 필드로 int _damage 하나만 담아 둡니다.
    • Gun 클래스에서 Bullet들을 담을 수 있는 List, Grenade들을 담을 수 있는 List, 총 두개의 리스트를 필드로 가지게 합니다.
    • Gun의 생성자를 만들어서 해당 두 자료구조들을 뉴할당 시켜줍니다.
  • Gun의 필드에 자료구조를 하나 더 추가합니다. 방금 만들어진 두 자료구조(Bullet을 담는 리스트, Grenade를 담는 리스트) 를 value값으로 관리할 수 있는 딕셔너리를 만듭니다. 키값으로는 string을 사용합니다. 이를 구현하기 위해 필요한 기존 코드 리팩토링을 진행합니다
    • 방금 만들어진 딕셔너리를 Gun의 생성자에서 뉴할당 하고, Bullet을 담은 List와 Grenade를 담은 List 둘을 각각 "Bullet", "Grenade" 이라는 키값으로 저장시켜주시기 바랍니다.

Gun에 메소드를 하나 더 추가하겠습니다. "Bullet" 이라는 인자값을 넘겨주면 총알이 담긴 리스트를 반환 받고, "Grenade"라는 인자값을 넘겨주면 수류탄이 담긴 리스트를 반환 받는 메소드를 작성하여 주세요

 

using ConsoleApp2;
using System;
using System.Collections.Generic;
using System.Xml.Linq;

namespace ConsoleApp2
{
    class Gun
    {
        public Dictionary<string, List<Projectile>> gunDict;
        public List<Projectile> listBullet;
        public List<Projectile> listGrenade;

        public Gun()
        {
            gunDict = new Dictionary<string, List<Projectile>>();
            listBullet = new List<Projectile>();
            listGrenade = new List<Projectile>();

            gunDict.Add("총알",listBullet);
            gunDict.Add("수류탄", listGrenade);

        }

        public List<Projectile> A(string stringInput)
        {
            if (gunDict[stringInput] != null)
            {
                return gunDict[stringInput];

            }
            else
            {
                return null;
            }


        }

            // result



    }

    //발사체
    class Projectile
    {
    }

    class Bullet : Projectile
    // 총알
    {
        public string _name;
        public int _damage;

    }

    // 수류탄
    class Grenade : Projectile
    {
        public string _name;
        public int _damage;

    }

    internal class Program
    {
        static void Main(string[] args)
        {
            Gun bulletDic = new Gun();
            

            bulletDic.A("총알");
        }

    }
}