📍 짱구게임
: 클래스의 개념 및 상속의 이해를 위해 연습으로 구현해본 간단한 랜덤게임
✅ 기본 구조
- Class Character
- def attack
- def check_hp
- Class Boy : Character 상속
- def boy_attack1
- def boy_attack2
- Class Girl : Character 상속
- def girl_attack1
- def girl_attack2
✅ 기본 룰
- 체력 : 나이 * 10
- 기본 데미지 남 : 7
여 : 5 - 추가 데미지 남 : 랜덤하게 액션가면공격 (+2)
여 : 랜덤하게 토끼 공격 (+5)
✅ 코드 구현
class Character():
def __init__(self, name, age, gen):
self.name = name
self.age = age
self.gen = gen # 남 : 액션가면 공격, 여 : 토끼인형 공격
self.hp = age * 10
if self.gen == 'boy':
self.damage = 7 ####
else :
self.damage = 5 ####
def attack(self, opponent):
opponent.hp -= damage
def check_hp(self):
if self.hp <= 0:
return True
else:
return False
class Boy (Character):
def boy_attack1 (self, opponent):
print(f'{self.name}가 {opponent.name}에게 {self.damage}의 피해를 주었다.')
opponent.hp -= self.damage
def boy_attack2 (self, opponent):
damage = self.damage + random.randrange(0, 3, 2)
print(f'{self.name}가 {opponent.name}에게 액션빔을 맞춰 {damage}의 피해를 주었다.')
opponent.hp -= damage
class Girl (Character):
def girl_attack1 (self, opponent):
print(f'{self.name}가 {opponent.name}에게 {self.damage}의 피해를 주었다.')
opponent.hp -= self.damage
def girl_attack2 (self, opponent):
damage = self.damage + random.randrange(0, 8, 7)
print(f'{self.name}가 {opponent.name}에게 흰둥이와 함께 {damage}의 피해를 주었다.')
opponent.hp -= damage
JJANGU = Boy('짱구', 5, 'boy')
JJANGA = Girl('짱아', 3, 'girl')
import random
while not JJANGU.check_hp() or not JJANGA.check_hp():
random_attack = random.randint(0, 1)
if random_attack:
JJANGU.boy_attack2(JJANGA)
else:
JJANGU.boy_attack1(JJANGA)
if JJANGA.check_hp():
print(f'{JJANGU.name} 승리')
break
random_attack = random.randint(0, 1)
if random_attack:
JJANGA.girl_attack2(JJANGU)
else:
JJANGA.girl_attack1(JJANGU)
if JJANGA.check_hp():
print(f'{JJANGA.name} 승리')
break
print(f'{JJANGU.name}: {JJANGU.hp}')
print(f'{JJANGA.name}: {JJANGA.hp}')
'Python' 카테고리의 다른 글
[Python / 기초] 파이썬 클래스(OOP) - 생성자, 소멸자, 인스턴스, 변수, 메소드, 상속 (0) | 2024.01.15 |
---|---|
[Python / 기초] 파이썬 모듈, 패키지 - math, random, datetime (0) | 2024.01.15 |
[Python / 기초] 파이썬 error 예외처리 - try, except, else, finally, raise (0) | 2024.01.12 |
[Python / 기초] 파이썬 세트메소드 - add, update, remove, pop, map, filter, zip (0) | 2024.01.12 |
[Python / 기초] 파이썬 딕셔너리메소드 - pop, update, get (0) | 2024.01.12 |