Created
June 18, 2019 11:12
-
-
Save pikachu0310/fccac66cc1ecd12aeb6a48aa1d7364f4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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