Skip to content

Instantly share code, notes, and snippets.

@pikachu0310
Created June 18, 2019 11:12
Show Gist options
  • Save pikachu0310/fccac66cc1ecd12aeb6a48aa1d7364f4 to your computer and use it in GitHub Desktop.
Save pikachu0310/fccac66cc1ecd12aeb6a48aa1d7364f4 to your computer and use it in GitHub Desktop.
class definition:
import random
global random
import time
global time
global entities
entities = {}
class status:
# status(NAME,HP,ATK,DEF)
def __init__(self,*args):
self.status = [args[i] for i in range(len(args))]
self.NAME = self.status[0]
self.HP = self.status[1]
self.ATK = self.status[2]
self.DEF = self.status[3]
self.LV = self.status[4]
self.EXP = self.status[5]
def set(self):
self.status = [self.NAME,self.HP,self.ATK,self.DEF]
def print_status(self):
print(f'{self.NAME} HP: {self.HP} ATK: {self.ATK} DEF: {self.DEF} LV: {self.LV} EXP: {self.EXP}')
class entity:
def add(NAME,HP,ATK,DEF,LV,EXP):
entities[NAME] = status(NAME,HP,ATK,DEF,LV,EXP)
class battle:
def __init__(self,entity1,entity2):
self.e1 = entity1
self.e2 = entity2
def damage(ATK,DEF):
if ATK - DEF <= 0:
return 0
else:
return ATK - DEF
def oneattack(self):
self.e2.HP -= battle.damage(self.e1.ATK,self.e2.DEF)
self.e1.HP -= battle.damage(self.e2.ATK,self.e1.DEF)
def print_oneattack(self):
print(f'{self.e1.NAME} の攻撃! {self.e2.NAME} に {battle.damage(self.e1.ATK,self.e2.DEF)} のダメージ!')
print(f'{self.e2.NAME} の攻撃! {self.e1.NAME} に {battle.damage(self.e2.ATK,self.e1.DEF)} のダメージ!')
def print_status(self):
print(f'{self.e1.NAME} HP: {self.e1.HP} ATK: {self.e1.ATK} DEF: {self.e1.DEF}')
print(f'{self.e2.NAME} HP: {self.e2.HP} ATK: {self.e2.ATK} DEF: {self.e2.DEF}')
def check_dead(entity_name):
if entities[entity_name].HP > 0:
return False
else:
return True
def print_check_dead(entity_name):
if battle.check_dead(entity_name):
print(f'{entity_name}は倒れた')
def oneturn(self):
battle.print_status(self)
battle.oneattack(self)
battle.print_oneattack(self)
battle.print_check_dead(self.e1.NAME)
battle.print_check_dead(self.e2.NAME)
battle.final(self)
def final(self):
self.e1.set()
def exp(self):
if battle.check_dead(self.e1.NAME):
self.e2.EXP += self.e1.EXP
return True
elif battle.check_dead(self.e2.NAME):
self.e1.EXP += self.e2.EXP
return True
else:
return False
def battle(self):
while True:
time.sleep(0.1)
battle.oneturn(self)
if battle.exp(self):
if exp(self.e1).check():
exp(self.e1).print_check()
if exp(self.e2).check():
exp(self.e2).print_check()
break
class exp:
def __init__(self,entity):
self.e = entity
def check(self):
if self.e.EXP >= 10* self.e.LV:
while self.e.EXP >= 10* self.e.LV:
self.e.LV += 1
self.e.HP += 50
self.e.ATK += 1
self.e.DEF += 1
return True
def print_check(self):
print(f'おめでとう! {self.e.NAME} は LV{self.e.LV} に上がったぞ!')
print('ステータスがそれぞれちょっと上がった')
class main:
definition()
entity.add('pika',100,5,0,1,0)
entity.add('shoby',150,15,5,1,0)
entity.add('zako',15,5,1,1,5)
while True:
entity.add('zako',15,5,1,1,5)
status.print_status(entities['pika'])
enemy = 'zako'
if random.random() >= 0.9:
enemy = 'shoby'
battle(entities['pika'],entities[enemy]).battle()
if battle.check_dead('shoby') or battle.check_dead('pika'):
break
if battle.check_dead('pika'):
print('BAD END')
elif battle.check_dead('shoby'):
print('Happy END')
else:
print('Error END')
status.print_status(entities['pika'])
status.print_status(entities['shoby'])
status.print_status(entities['zako'])
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment