inflearn logo
강의

Course

Instructor

Free Python Tutorial (Basic) - Become a Developer in 6 Hours

StarCraft Project Second Half

시즈모드 실행이 안됩니다.

405

kx24712204

2 asked

0

#탱크
class Tank(AttackUnit):
    #시즈모드 : 탱크를 고정시켜, 더 높은 파워로 공격 가능. 이동불가
    

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

    seize_developed = False #시즈모드 개발여부

    def set_seize_mode(self):
        if Tank.seize_developed == False:
            return
        
        # 현재 시즈모드가 아닐 때 -> 시즈모드
        if self.seize_mode == False:
            print("{} : 시즈모드로 전환합니다.".format(self.name))
            self.damage *= 2
            self.seize_mode = True

        # 현재 시즈모드일 떄 -> 시즈모드 해제
        else:
            print("{} : 시즈모드를 해제합니다.".format(self.name))
            self.damage /= 2
            self.seize_mode = False


#드랍쉽 : 공중유닛, 수송기, 마린/파이어뱃/탱크 등을 수송, 공격불가
class Flyable:
    def __init__(selfflying_speed):
        self.flying_speed = flying_speed

    def fly(selfnamelocation):
        print("{} : {} 방향으로 날아갑니다. [속도{}]".format(name, location, self.flying_speed))

#공중 공격 유닛 클래스
class FlyableAttackUnit(AttackUnitFlyable):
    def __init__(selfnamehpdamageflying_speed):
        AttackUnit.__init__(self, name, hp, 0, damage)
        Flyable.__init__(self, flying_speed)

    def move(selflocation):
        self.fly(self.name, location)

#레이스
class Wraith(FlyableAttackUnit):
    def __init__(self):
        FlyableAttackUnit.__init__(self"레이스"80205)
        self.clocked = False

    def clocking(self):
        if self.clocked == True:
            print("{} : 클로킹 모드 해제합니다.".format(self.name))
            self.clocked == False

        else:
            print("{} : 클로킹 모드 설정합니다.".format(self.name))
            self.clocked == True


def game_start():
    print("[알림] 새로운 게임을 시작합니다.")

def game_over():
    print("Player : gg")
    print("[Player] 님이 게임에서 퇴장하셨습니다.")


game_start()

m1 = Marine()
m2 = Marine()
m3 = Marine()

t1 = Tank()
t2 = Tank()

w1 = Wraith()

attack_units = []
attack_units.append(m1)
attack_units.append(m2)
attack_units.append(m3)
attack_units.append(t1)
attack_units.append(t2)
attack_units.append(w1)

#전군 이동
for unit in attack_units:
    unit.move("1시")

#탱크 시즈모드 개발
Tank.seize_developed = True
print("[알림] 탱크 시즈모드 개발이 완료되었습니다.")

#공격모드 준비 (마린 : 스팀팩 탱크 : 시즈모드, 레이스 : 클로킹)
for unit in attack_units:
    if isinstance(unit, Marine):
        unit.stimpack()
    elif isinstance(unit, Tank):
        unit.set_seize_mode
    elif isinstance(unit, Wraith):
        unit.clocking()

#전군 공격
for unit in attack_units:
    unit.attack("1시")

#전군 피해
for unit in attack_units:
    unit.damaged(randint(5,21))

# 게임 종료
game_over()
[알림] 새로운 게임을 시작합니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 마린 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 탱크 유닛이 생성되었습니다. 레이스 유닛이 생성되었습니다. 마린 : 1시 방향으로 이동합니다. [속도 1] 마린 : 1시 방향으로 이동합니다. [속도 1] 마린 : 1시 방향으로 이동합니다. [속도 1] 탱크 : 1시 방향으로 이동합니다. [속도 1] 탱크 : 1시 방향으로 이동합니다. [속도 1] 레이스 : 1시 방향으로 날아갑니다. [속도5] [알림] 탱크 시즈모드 개발이 완료되었습니다. 마린 : 스팀팩을 사용합니다. (HP10 감소) 마린 : 스팀팩을 사용합니다. (HP10 감소) 마린 : 스팀팩을 사용합니다. (HP10 감소) 레이스 : 클로킹 모드 설정합니다. 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 마린 : 1시 방향으로 적군을 공격합니다. [공격력 5] 탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35] 탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35] 레이스 : 1시 방향으로 적군을 공격합니다. [공격력 20] 마린 : 5 데미지를 입었습니다. 마린 : 현재 체력은 25 입니다. 마린 : 12 데미지를 입었습니다. 마린 : 현재 체력은 18 입니다. 마린 : 11 데미지를 입었습니다. 마린 : 현재 체력은 19 입니다. 탱크 : 20 데미지를 입었습니다. 탱크 : 현재 체력은 130 입니다. 탱크 : 10 데미지를 입었습니다. 탱크 : 현재 체력은 140 입니다. 레이스 : 5 데미지를 입었습니다. 레이스 : 현재 체력은 75 입니다. Player : gg [Player] 님이 게임에서 퇴장하셨습니다.
똑같이 한것같은데 어디가 잘못되서 시즈모드가 안되는지
도저히 모르겠습니다 ㅠㅠ

python

Answer 4

0

kx24712204

아.. 저걸 못봤네요! 잘 실행됩니다. 감사합니다!

0

nadocoding

아.. 시즈모드 개발이 아니라 시즈모드로 변환부분이 ㅎㅎ

set_seize_mode 뒤에 괄호 ( ) 가 빠졌네요 ^^ 붙이고 다시 해보세요

0

kx24712204

[알림] 새로운 게임을 시작합니다.

마린 유닛이 생성되었습니다.

마린 유닛이 생성되었습니다.

마린 유닛이 생성되었습니다.

탱크 유닛이 생성되었습니다.

탱크 유닛이 생성되었습니다.

레이스 유닛이 생성되었습니다.

마린 : 1시 방향으로 이동합니다. [속도 1]

마린 : 1시 방향으로 이동합니다. [속도 1]

마린 : 1시 방향으로 이동합니다. [속도 1]

탱크 : 1시 방향으로 이동합니다. [속도 1]

탱크 : 1시 방향으로 이동합니다. [속도 1]

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

[알림] 탱크 시즈모드 개발이 완료되었습니다.

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

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

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

레이스 : 클로킹 모드 설정합니다.

마린 : 1시 방향으로 적군을 공격합니다. [공격력 5]

마린 : 1시 방향으로 적군을 공격합니다. [공격력 5]

마린 : 1시 방향으로 적군을 공격합니다. [공격력 5]

탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35]

탱크 : 1시 방향으로 적군을 공격합니다. [공격력 35]

레이스 : 1시 방향으로 적군을 공격합니다. [공격력 20]

마린 : 7 데미지를 입었습니다.

마린 : 현재 체력은 23 입니다.

마린 : 11 데미지를 입었습니다.

마린 : 현재 체력은 19 입니다.

마린 : 17 데미지를 입었습니다.

마린 : 현재 체력은 13 입니다.

탱크 : 9 데미지를 입었습니다.

탱크 : 현재 체력은 141 입니다.

탱크 : 13 데미지를 입었습니다.

탱크 : 현재 체력은 137 입니다.

레이스 : 14 데미지를 입었습니다.

레이스 : 현재 체력은 66 입니다.

Player : gg

[Player] 님이 게임에서 퇴장하셨습니다.

시즈모드만 화면에 출력이 안나옵니다.. 대체 왜이런지 썼던 문장들을 다시 읽어봐도 모르겠어요.. 

0

nadocoding

아래 [알림] 부분 내용을 살펴보니 프로그램 종료 부분까지 모두 출력이 잘 된듯한데요? 줄바꿈이 없어서 안 보이지만 스크롤을 옮기시면 보일 거에요 ^^

quiz 8 오류 문제

0

69

1

str() 작성 위치

0

50

1

아나콘다

0

60

1

윈도우 설치 도와주세요

0

73

1

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

0

67

1

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

0

33

1

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

0

68

1

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

0

103

1

2장 환경설정 문의

0

72

1

스타크래프트 프로젝트

0

74

1

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

0

133

1

로드맵 질문있습니다!

0

84

2

오류

0

74

1

질문 있습니다.

0

73

1

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

0

171

1

#퀴즈 3의 5번 질문

0

71

1

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

0

80

1

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

0

79

1

vscode옛날 버전 설치

0

220

1

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

0

186

1

슬프네

0

155

1

quiz 6번 관련 문의입니다.

0

129

1

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

0

192

1

피드백 부탁드립니다

0

91

1