● 공격 준비와 전군 공격
자, 이제 적군이 눈앞에 있습니다. 전쟁 직전에 각 유닛의 특수 기술을 사용해 더 강력한 공격을 할 텐데요. 보병은 강화제, 탱크는 시지 모드, 전투기는 은폐 모드를 각각 사용합니다. 리스트로 관리되는 유닛들이 서로 다른 기술을 사용해야 하죠. 이들을 구분하려면 isinstance() 함수를 사용합니다.
이 함수는 객체가 특정 클래스의 인스턴스인지를 확인할 수 있습니다. 여기서는 각 유닛 객체가 Soldier 클래스의 인스턴스인지, Tank 또는 Stealth 클래스의 인스턴스인지를 확인해 각 유닛에 맞는 특수 기술을 사용하도록 합니다.
형식
isinstance(객체명, 클래스명)
# 공격 모드 준비(보병: 강화제, 탱크: 시지 모드, 전투기: 은폐 모드)
for unit in attack_units:
if isinstance(unit, Soldier): # Soldier 클래스의 인스턴스이면 강화제
unit.booster()
elif isinstance(unit, Tank): # Tank 클래스의 인스턴스이면 시지 모드
unit.set_siege_mode()
elif isinstance(unit, Stealth): # Stealth 클래스의 인스턴스이면 은폐 모드
unit.cloaking()