포켓몬의 다음과 같은 기능을 클래스를 통해 만드세요
클래스 이름: PocketMon
인스턴스 변수: hp(default 100) level(default 1)
인스턴스 메소드: sleep:
휴식, hp 풀 충전됨
body_attack:
다른 포켓몬에게 몸통박치기 내 level * 10 만큼 상대방의 hp가 깎임 상대방의 피가 0이 되면 내 레벨이 1 증가(hp가 0미만이 되진 않게 하세요)
★ 잠깐! 풀기 전에 생각하기
이건 재미있어서 해보고 싶었다. 추억 회상 겸 부족하지만 배운 내용으로 만들어 낼 수 있을까?
class PocketMon:
# 포켓몬 도감을 만들어 줬다. 생성된 포켓몬 리스트
pocketmon = []
# 이름, hp, 레벨을 속성으로 가져온다.
def __init__(self, name, hp=100, level=1):
self.name = name
self.hp = hp
self.level = level
PocketMon.pocketmon.append(self) # 이렇게 구성이 될까?
# 휴식 메서드 제작
def sleep(self):
self.hp = 100
# 공격 메서드 제작(어렵다.. 포켓몬 이름을 넣으면 작동하게 하고 싶은데...)
def body_attack(self, enemy):
# enemy = random.choice(pocketmon)
enemy.hp -= self.level*10
print(f'{enemy.name}의 피가 {enemy.hp}가 되었다.')
if enemy.hp <= 0:
enemy.hp = 100
print(f'상대의 피가 모두 소진되었다.')
self.level += 1
print(f'level이 {self.level}로 올랐다.')
p1 = PocketMon('파이리')
p2 = PocketMon('꼬부기')
p1.body_attack(p2) # p2 말고 '꼬부기'라고 넣어서는 못 푸나?
p1.body_attack(p2) #공격
p1.body_attack(p2) #공격
p1.body_attack(p2) #공격
p1.body_attack(p2) #공격 하면서 레벨일 오른다. 공격력도 오른다.
p1.body_attack('꼬부기') 이런 명령어를 하면 꼬부기를 공격하도록 설정하고 싶었는데 방법을 모르겠다....
'꼬부기'를 입력하면 p2의 정보를 가져오게 하고 그걸로 진행하면 될 듯 싶다.
''꼬부기'를 입력하면 p2의 정보를 가져오게 하고' 이부분을 해결하면 될 것 같다.
'잡동사니_코딩' 카테고리의 다른 글
[스펫트럼]UCC영상 (0) | 2021.11.26 |
---|---|
[ClubChain]UCC 영상 (0) | 2021.11.26 |
[메타Study] UCC 영상 (0) | 2021.08.24 |
[나닮배] 프로젝트 소개 영상 (0) | 2021.06.19 |