inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

스타크래프트 프로젝트 후반전

Tank 쪽 시즈모드 오류

400

rlagus0629

작성한 질문수 3

0

class Tank(AttackUnit):
    sieze_developed = False        
    
    def __init__(self):
        AttackUnit.__init__(self"탱크"150135)
        self.seize_mode = False

    def set_seize_mode(self):
        if Tank.seize.developed == False:
            return
        
        # 시즈모드 아닐 경우
        if self.seize_mode == False:
            print("{0} : 시즈모드로 전환합니다.".format(self.name))
            self.damage *= 2
            self.seize_mode = True
        else:
            print("{0} : 일반모드로 전환합니다.".format(self.name))
            self.damage /= 2
            self.seize_mode = False
 
for unit in attack_units:
    if isinstance(unit, Marine): #isinstance는 객체가 특정 클래스의 객체인지 확인하는 방법으로 쓰임
        unit.stimpack()
    elif isinstance(unit, Tank):
        unit.set_seize_mode()
    elif isinstance(unit. Wraith):
       unit.setclocking()
 
Tank 클래스 쪽 무슨 오류인지 모르겠습니다 실행하면 밑에처럼 나오는데 도저히 모르겠어서 ㅠ
 
 
[알림] 새로운 게임을 시작합니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 레이스 유닛이 생성되었습니다. 마린 : 1시 방향으로 이동합니다. 마린 : 1시 방향으로 이동합니다. 마린 : 1시 방향으로 이동합니다. 탱크 : 1시 방향으로 이동합니다. 탱크 : 1시 방향으로 이동합니다. 레이스 : 1시 방향으로 날아갑니다. [속도 5] [알림] 탱크 시즈 모드 개발 완료. 마린 : 스팀팩을 사용합니다. (HP 10 감소) 마린 : 스팀팩을 사용합니다. (HP 10 감소) Traceback (most recent call last): File "c:\Users\rlagu\Desktop\python\super.py", line 129, in <module> unit.seize_mode() TypeError: 'bool' object is not callable PS C:\Users\rlagu\Desktop\python> & C:/Users/rlagu/AppData/Local/Programs/Python/Python39/python.exe c:/Users/rlagu/Desktop/python/super.py [알림] 새로운 게임을 시작합니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 레이스 유닛이 생성되었습니다. 마린 : 1시 방향으로 이동합니다. 마린 : 1시 방향으로 이동합니다. 마린 : 1시 방향으로 이동합니다. 탱크 : 1시 방향으로 이동합니다. 탱크 : 1시 방향으로 이동합니다. 레이스 : 1시 방향으로 날아갑니다. [속도 5] [알림] 탱크 시즈 모드 개발 완료. 마린 : 스팀팩을 사용합니다. (HP 10 감소) 마린 : 스팀팩을 사용합니다. (HP 10 감소) 마린 : 스팀팩을 사용합니다. (HP 10 감소) Traceback (most recent call last): File "c:\Users\rlagu\Desktop\python\super.py", line 129, in <module> unit.set_seize_mode() File "c:\Users\rlagu\Desktop\python\super.py", line 50, in set_seize_mode if Tank.seize.developed == False: AttributeError: type object 'Tank' has no attribute 'seize' PS C:\Users\rlagu\Desktop\python>
 
 
 

python

답변 3

0

John Goh

저도 오타 문제일까요? class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print("{0} 유닛을 생성했습니다".format(name)) def move(self, location): print("{0}: {1} 방향으로 이동합니다. [속도 {2}]"\ .format(self.name, location, self.speed)) def damaged(self, damage): print("{0}:{1}만큼 피해를 입었습니다.".format(self.name, damage)) self.hp -= damage print("{0}: 현재 체력은 {1} 입니다.".format(self.name, self.hp)) if self.hp <= 0: print("{0}: 파괴됐습니다.".format(self.name)) class AttackUnit(Unit): def __init__(self, name, hp, damage, speed): Unit.__init__(self, name, hp, speed) self.damage = damage def attack(self, location): print("{0}: {1} 방향 적군을 공격합니다. [공격력 {2}]".format(self.name, location, self.damage)) class Soldier(AttackUnit): def __init__(self): AttackUnit.__init__(self, "보병", 40, 5, 1) def booster(self): if self.hp >10: self.hp -= 10 print("{0}: 강화제를 사용합니다. (HP 10 감소)".format(self.name)) else: print("{0}: 체력이 부족해 기술을 사용할 수 없습니다.".format(self.name)) class Tank(AttackUnit): siege_developed = False def __init__(self): AttackUnit.__init__(self, "탱크", 150, 35, 1) self.sige_mode = False def set_seige_mode(self): if Tank.siege_developed == False: return if self.siege_mode == False: print("{0} : 시지 모드로 전환합니다.".format(self.name)) self.damage *= 2 self.sige_mode = True else: print("{0}: 시지 모드를 해제합니다.".format(self.name)) self.damage //=2 self.siege_mode = False class Flyable: def __init__(self, flying_speed): self.flying_speed = flying_speed def fly(self, name, location): print("{0}: {1} 방향으로 날아갑니다. [속도 {2}]".format(name, location, self.flying_speed)) class FlyableAttackUnit(AttackUnit, Flyable): def __init__(self, name, hp, damage, flying_speed): AttackUnit.__init__(self, name, hp, damage, 0) Flyable.__init__(self, flying_speed) def move(self, location): self.fly(self.name, location) class Stealth(FlyableAttackUnit): def __init__(self): FlyableAttackUnit.__init__(self,"전투기", 80, 20,5) self.cloaked = False def cloaking(self): if self.cloaked == True: print("{0} : 은폐모드를 해제합니다.".format(self.name)) self.cloaked = False else: print("{0}: 은폐모드를 설절합니다.".format(self.name)) self.cloaked = True

0

구름

1. 2번째 줄 오타 있습니다.

sieze_developed -> seize_developed

 

2.

def set_seize_mode(self):

 

        if Tank.seize.developed == False:
            return
 
여기서 오타 있습니다.
Tank.seize_developed == False:
로 고쳐보세요
 

0

rlagus0629

레이스 : 1시 방향으로 날아갑니다. [속도 5]

[알림] 탱크 시즈 모드 개발 완료.

마린 : 스팀팩을 사용합니다. (HP 10 감소)

마린 : 스팀팩을 사용합니다. (HP 10 감소)

마린 : 스팀팩을 사용합니다. (HP 10 감소)

Traceback (most recent call last):

  File "c:\Users\rlagu\Desktop\python\super.py", line 129, in <module>

    unit.set_seize_mode()

  File "c:\Users\rlagu\Desktop\python\super.py", line 50, in set_seize_mode

    if Tank.seize.developed == False:

AttributeError: type object 'Tank' has no attribute 'seize'

PS C:\Users\rlagu\Desktop\python>

quiz 8 오류 문제

0

70

1

str() 작성 위치

0

51

1

아나콘다

0

60

1

윈도우 설치 도와주세요

0

74

1

std_weight함수에서weight만return가능한가요?

0

68

1

오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.

0

34

1

설치해서 시작하는데 문제가 있습니다.

0

69

1

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

0

104

1

2장 환경설정 문의

0

74

1

스타크래프트 프로젝트

0

74

1

python 파일명.py 입력시 Python 출력

0

133

1

로드맵 질문있습니다!

0

85

2

오류

0

74

1

질문 있습니다.

0

75

1

블로그에 학습한 내용을 정리해도 괜찮을까요?

0

172

1

#퀴즈 3의 5번 질문

0

72

1

print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다

0

81

1

가변인자의 위치가 중요한가요?

0

79

1

vscode옛날 버전 설치

0

221

1

글자색상이 선생님처럼 안나옵니다

0

186

1

슬프네

0

156

1

quiz 6번 관련 문의입니다.

0

129

1

퀴즈#3에 대해서 이렇게 작성해도 되나요?

0

194

1

피드백 부탁드립니다

0

93

1