본문 바로가기
WIL&TIL/WIL

WIL 20230320 ~ 20230326 - Class, 알고리즘

by 코드뭉치 2023. 3. 26.

이번주에 배운 것

 

class 라는것은 과자틀이다
과자틀로 찍어낸 쿠키가 인스턴스(=객체)다.

 

 ↓ 과자틀 만들어보기

더보기

 

class Monster:
    def __init__(self, name, hp):
        self.name = name
        self.max_hp = hp
        self.hp = hp
       

    def attack(self, player):
        damage = random.randint(3, 7)
        player.hp = max(player.hp - damage, 0)
        print(f"{self.name}의 공격! {player.name}에게 {damage}의 데미지를 입혔습니다.")
        if player.hp == 0:
            print("GAME OVER")

    def show_status(self):
        print(f"{self.name}의 상태: HP {self.hp}/{self.max_hp}")
# 콩벌레
class Louse(Monster):
    def __init__(self, name, hp):
        super().__init__(name, hp)

# 가시슬라임
class Spike_Slime(Monster):
    def __init__(self, name, hp):
        super().__init__(name, hp)

# 광신도
class Cultist(Monster):
    def __init__(self, name, hp):
        super().__init__(name, hp)

내가 만든 쿠키 완성

이렇게 하면 super().__init__()로 부모클래스의 코드를 그대로 사용할 수 있다.

서브 클래스들은 attack이나 show_status 등의 메소드를 별도의 선언 없이 사용할 수 있다. 

또한 overriding 도 가능하다.

 

 

이것들을 활용해서 개인과제 "플레이어와 몬스터를 생성하여 1대 1으로 싸우는 상황을 파이썬으로 구현하기"를 하면 된다.기본적인 클래스 설정과 메소드들은 가이드에서 주어지기 때문에 나머지 값들을 input()으로 받아와서 해당 데이터를 쓰도록 하면 끝.

 


이번주 프로그래머스 문제 풀기(47)

일차 상관없이 송사리부터 해치우는 방식이라 점점 속도가 느려질 예정이지만 틈틈히 많이 푼것같다.

 


저번주 목표

 

1. git강의 완강하기. > 실패

사유 : 심각한 파이썬의 난이도와 더 심각한 내 이해도

 

2.TIL 꾸준히 작성하기 > 성공!

 

3.새로운 팀과 친해지기 > 성공!


이번주 목표 

 

1. 개인과제 완성하기

 

2. 팀과제 구체화하기

 

3. 진짜 GIT 강의 듣기(안되면 알고리즘이라도 꾸준히 듣기)

 

댓글