Skip to content

Instantly share code, notes, and snippets.

@shiracamus
Last active April 3, 2022 09:58
Show Gist options
  • Save shiracamus/5c86e06344584c6180dfb4d1fe90e6ae to your computer and use it in GitHub Desktop.
Save shiracamus/5c86e06344584c6180dfb4d1fe90e6ae to your computer and use it in GitHub Desktop.
import random
class Character:
def __init__(self, name, hit_point, attack_power):
self.name = name
self.hit_point = hit_point
self.attack_power = range(attack_power + 1)
def is_dead(self):
return self.hit_point <= 0
def attack(self, defender):
print()
print(f'{self.name}の攻撃!')
defender.defense(random.choice(self.attack_power))
def defense(self, damage):
if damage <= 0:
print(f'{self.name}は攻撃をかわした!')
return
print(f'{self.name}は{damage}のダメージを受けた!')
self.hit_point -= damage
if self.is_dead():
print(f'{self.name}は力尽きた')
MONSTERS = [
Character('スライム', 10, 1),
Character('ドラキー', 13, 2),
Character('ダークドレアム', 130000, 999),
]
def main():
hero = Character('勇者', 30, 5)
monster = random.choice(MONSTERS)
print(f'{monster.name}が現れた!')
attacker, defender = hero, monster
while not attacker.is_dead():
attacker.attack(defender)
attacker, defender = defender, attacker
print()
if monster.is_dead():
print('勇者は戦闘に勝った!')
else:
print('勇者は戦闘に負けた!')
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment