Skip to content

Instantly share code, notes, and snippets.

@yunho0130
Last active January 14, 2017 10:45
Show Gist options
  • Save yunho0130/b85a92c5dc0cd8b23d350ba743993128 to your computer and use it in GitHub Desktop.
Save yunho0130/b85a92c5dc0cd8b23d350ba743993128 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
"""
Created on Sat Jan 14 11:21:47 2017
@author: Yunho
"""
class Monster:
def __init__(self, name, level, element):
self.name = name
self.level = level
self.element = element
self.hp = 100*int(self.level) # 체력추가
print "{}레벨의 {} 몬스터가 {} 속성을 가지고 생성되었습니다".format(self.level, self.name, self.element)
def skill(self):
if self.element == 'fire':
print "화덕구이로 만들겠다 으어어: 150 데미지"
return 150
elif self.element == 'water':
print "물대포 뿌우: 110 데미지"
return 110
elif self.element == 'grass':
print "솔라빔: 90 데미지"
return 90
else:
print "일반공격을 실시 합니다. 10의 데미지를 주었습니다."
return 10
def hp_check(self):
if self.hp <= 0:
print "몬스터가 죽었습니다. 전리품을 확인하세요"
print "{}골드를 획득했습니다".format(10*int(self.level))
return False
else:
print "남은 몬스터의 HP : {}".format(self.hp)
return True
def battle(self, damage):
self.hp -= damage # self.hp = self.hp - damage
print "몬스터는 {} 데미지를 입었습니다.".format(damage)
class BossMonster(Monster):
def __init__(self, name, level, element, gift):
Monster.__init__(self, name, level, element)
self.gift = gift
self.skill_counter = 0
def skill(self):
if self.skill_counter != 3:
print "보스몬스터가 일반공격을 합니다. {} 데미지".format(1500)
self.skill_counter += 1
return 1500
else:
print "보스몬스터가 필살기를 사용합니다. {} 데미지".format(15000)
return 15000
def hp_check(self):
if self.hp <= 0:
print "보스 몬스터가 죽었습니다. 전리품을 확인하세요"
print "{}골드를 획득했습니다".format(100*int(self.level))
print "전리품으로 {} 아이템을 받았습니다.".format(self.gift)
return False
else:
print "남은 몬스터의 HP : {}".format(self.hp)
return True
class Player:
def __init__(self, name, level, job):
self.name = name
self.level = level
self.job = job
self.hp = 200*int(self.level)
self.gold = 10
print "{}레벨의 {} 유저가 {} 직업을 가지고 생성되었습니다".format(self.level, self.name, self.job)
def skill(self):
if self.job == 'night':
print "어크로스 세이버!! : 1500 데미지"
return 1500
elif self.job == 'wizard':
print "파이어 볼을 받아랏!! : 2000 데미지"
return 2000
else:
print "초보자 일반공격을 실시 100의 데미지를 주었습니다."
return 100
def hp_check(self):
if self.hp <= 0:
print "플레이어가 죽었습니다. 계속하시려면 캐쉬템을 지르세요"
return False
else:
print "남은 플레이어의 HP : {}".format(self.hp)
return True
def battle(self, damage):
self.hp -= damage
print "플레이어는 {} 데미지를 입었습니다.".format(damage)
mon1 = Monster('불꽃숭이', '99', 'fire')
p1 = Player('지존검사','99', 'night')
def versus(p, mon):
condition = True
print '===전투시작==='
while condition:
mon.battle(p.skill())
p.battle(mon.skill())
condition = p.hp_check() & mon.hp_check()
#versus(p1, mon1)
mon2 = Monster('이상해씨', '199', 'grass')
p2 = Player('초보자','30', 'novice')
#versus(p2, mon2)
# name, level, element, gift
boss1 = BossMonster('보스몬스터','200','boss','진명왕의 집행검 +9')
for i in range(10):
versus(p1,boss1)
print "캐시템을 사용해서 부활하여 도전합니다."
#mon2.skill()
#mon3 = Monster('꼬부기', '88', 'water')
#mon3.skill()
#mon4 = Monster('슬라임', '11', 'normal')
#mon4.skill()
#p1 = player()
#while True:
# p1.battle(mon1.skill()) # 서로 싸우면서 HP에 변화가 생김
# mon1.batte(p1.skill())
# p1.hp_check()
# mon1.hp_check()
# # break
#
#print mon1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment