2023.11.22 오늘의 기록 팀 과제 완성하기

2023. 11. 23. 09:20카테고리 없음

팀과제 완성하기를 목표로 오늘은 코딩을 진행했다.

 

아직 던전에서 배틀하는 부분과, 몬스터와의 전투에서 각 몬스터의 번호와 공격부분, 결과창을 나타내기 위한 코드, 인벤토리 등 다양한 점이 추가되어야 했다.

 

1. 배경음악을 넣어주셨는데, 음악파일이 개인 데스크탑에 있는 경우 다른 사람은 음악이 들리지 않는 오류를 해결하기 위해 음악 파일을 블로그에 올린 뒤, 파일 주소를 넣어서 해결해주었다.

WindowsMediaPlayer player = new WindowsMediaPlayer();
            ThreadPool.QueueUserWorkItem(_ =>
            {
                player.URL = @"https://blog.kakaocdn.net/dn/dMkM1O/btsALLfnxcm/Xbt63bVuFEmLHXhRtBgOh0/dfSeason1.mp3?attach=1&knm=tfile.mp3";
                player.settings.volume = 4;

            });

음악은 위의 코드로 팀원분이 넣어줬는데, 다시 한 번 학습을 통해 나도 완전히 이해할 수 있게 해야겠다.

 

2. 인벤토리에는 인벤토리씬과 장착관리씬 2가지가 있는데, 아이템을 리스트화해서 만들어주었다.

 public static List<Item> itemList = new List<Item>()
 {

     new Item(1, "무딘 검", "날이 많이 무딘 검이다.", 2, 0),
     new Item(2, "가죽 갑옷", "가죽으로 만들어진 갑옷이다.", 0, 3)

 };

 

장착관리 부분에서 아이템을 장착 시 공격력과 방어력이 오르게 되는데 장착 해제를 할 경우 값이 빠지지 않고 그대로 유지되고 다시 장착했을 때 또다시 추가가 되는 오류가 발생한다.

 

if (IsEquip)
{
    Console.Write("[E]");
    Console.Write(InputValidator.PadRightForMixedText(Name, 9));
    //IsEquip가 true일 때 Character의 공격과 방어에 값을 더해줌
    Character.instance.Atk += Atk;
    Character.instance.Def += Def;
}

위의 코드를 수정이 필요할 것 같다.

 

3. 몬스터 배틀 부분에서는 몬스터 역시 리스트로 만들어주었다.

 

 static List<Monster> _monsters = new List<Monster>();

 

Random random = new Random();
Monster[] choices =
{
new Monster("미니언", 2, 5, 15),
new Monster("공허충", 3, 9, 10),
new Monster("대포미니언", 5, 8, 25)
};

int monsterCnt = random.Next(1, 5);

 

랜덤한 몬스터가 1~4개가 등장할 수 있게 코드를 만들어주었고,

(1. 공격)을 누를 경우 몬스터 앞에 번호를 지정할 수 있게 만들어주었다.

 List<Monster> availableMonsters = _monsters.Where(monster => monster.IsAlive).ToList();

 

 for (int i = 0; i < availableMonsters.Count; i++)
 {
     Console.WriteLine($"{i + 1}. Lv.{availableMonsters[i].Level} {availableMonsters[i].Name} HP {availableMonsters[i].Hp}");
 }

 

팀과제다 보니 각자 맡은 역할을 수행해주었는데, 나는 아직 많이 코드를 짜지 못하기도 했고, 이해하는 부분도 부족하다고 느꼈다.

 

더 공부가 필요한 부분은 장착관리에서 아이템 효과를 지어주는 것과 리스트를 만들어서 관리하는 것, 적절한 반복문을 사용하는 방법을 더욱 실습해보아야 할 것 같다.