classで1:1ゲームを行う


classを使用してワークロード、弾丸、
一人が死ぬまで順番にゲームをします.
以前プレイした他のゲームよりも簡単です
1 vs 3まで作成
私はただコードを書いただけで、同じ複製感で怪物の行為をランダムに実行します.
1 vs 3ではなく1 vs 10以上の場合、効率は非常に低くなります
重複する文で効率的に整理するつもりです.
import random



class unit():
    hp = None
    normal_dmg = None
    name = None

    def attack(self, enemy):
        print(f'{self.name}가 {enemy.name}를 공격!')
        return enemy.hp - self.normal_dmg

class Warload(unit):
    hp = 200
    normal_dmg = 20
    bash_dmg = 40
    name = '워로드'

    def bash(self, enemy):
        print("읏~차!")
        print(f'{self.name}가 {enemy.name} 에게 40의 데미지!')
        return enemy.hp - self.bash_dmg
    def drink_potion(self):
        print(f'{self.name}회복회복 + 10')
        return self.hp + 10

class Baltan(unit):
    hp = 100
    normal_dmg = 30
    hard_atk_dmg = 50
    name = '발탄'

    def hard_atk(self, enemy):
        print("으읏~차!")
        print(f'{self.name}가 {enemy.name} 에게 50의 데미지!')

        return enemy.hp - self.hard_atk_dmg

    def drink_potion(self):
        print(f'{self.name} 회복회복 + 10')
        return self.hp + 10
    
    def wait(self):
        print(f'{self.name}이 대기합니다')




turn = random.randint ( 0 , 1 )


while True:

    print('워로드 체력:',Warload.hp)
    print('발탄 체력:', Baltan.hp)

    if turn == 1:
        a = input('워로드의 행동을 입력해주세요(일반공격,배쉬,체력회복): ')
        if a == '배쉬':
            Baltan.hp = Warload.bash(Warload, Baltan)
            print("발탄의 체력:",Baltan.hp)
            print('턴 종료')
        elif a == '일반공격':
            Baltan.hp = Warload.attack(Warload, Baltan)
            print("발탄의체력",Baltan.hp)
            print('턴 종료')
            
        elif a == '체력회복':
            Warload.hp = Warload.drink_potion(Warload)
            print('턴 종료')
        else :
            print('다시입력해주세요')
            continue
        turn -= 1

    else :
        b = random.randint (1 , 3)
        if b == 1:
            Warload.hp = Baltan.attack(Baltan, Warload)
            print("워로드의 체력:", Warload.hp)
            print('턴 종료')
        elif b == 2:
            Warload.hp = Baltan.hard_atk(Baltan, Warload)
            print("워로드의 체력:", Warload.hp)
            print('턴 종료')
        elif b == 3:
            Baltan.wait(Baltan)
            print('턴 종료')
        turn += 1
    
    if Warload.hp == 0:
        print('워로드 사망')
        break
    if Baltan.hp == 0:
        print('발탄 사망')
        break