Exercise_A.cpp
1 #include <iostream> 2 using namespace std; 3 #include "Knight.h" 4 #include "Archer.h" 5 #include "Mage.h" 6 #include "Pet.h" 7 #include "Arrow.h" 8 9 // [Bug Report #10] 10 // 궁수라며면 자고로 화살을 쏴야겠죠. 11 // Arrow는 자신을 목표 대상물을 target으로 관리하고 12 // Arrow를 만들 때 설정한 데미지 만큼 target의 체력을 깎습니다. 13 // 테스트를 위해 화살 10개를 생성해서 기사를 피격했는데... 14 // C++이 늘 그렇지만 되는 일이 없고 또 크래시가 납니다. 15 // 뭐가 문제일까요? 16 17 int main() 18 { 19 srand(static_cast<unsigned int>(time(nullptr))); 20 21 Archer* archer = new Archer(new Pet()); 22 archer->_hp = 100; 23 archer->_maxHp = 100; 24 archer->_attack = 20; 25 26 Knight* knight = new Knight(); 27 knight->_hp = 150; 28 knight->_maxHp = 150; 29 knight->_attack = 10; 30 31 Arrow* arrows[10] = {}; 32 for (int i = 0; i < 10; i++) 33 { 34 // 기사를 타겟으로, 궁수의 공격력을 지닌 상태 35 Arrow* arrow = new Arrow(knight, archer->_attack); 36 arrows[i] = arrow; 37 } 38 39 for (int i = 0; i < 10; i++) 40 { 41 arrows[i]->AttackTarget(); 42 43 // 기사가 죽었으면 소멸시켜준다 44 // if (knight != nullptr) 45 // { 46 // if (knight->IsDead()) 47 // { 48 // delete knight; 49 // knight = nullptr; 50 // } 51 // } 52 53 delete arrows[i]; 54 arrows[i] = nullptr; 55 } 56 }