Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import choice, randint
- class Player(object):
- """Class to represent the player. Takes a name and the healthpoints as parameters."""
- def __init__(self, name, life):
- self.name = name
- self.life = life
- self.alive = True
- self.defend = False
- self.attacks = [ ("Slap", 5, 95)
- , ("Frying pan", 10, 80)
- , ("Kick to the groin", 80, 10)
- , ("Defend", None) ]
- def get_hit(self, damage):
- print "%s (%d HP) got hit for %d damage!" % (self.name, self.life, damage)
- self.life -= damage
- if self.life < 0:
- self.alive = False
- def choose_attack(self):
- print "Choose an attack:"
- for i, attack in enumerate(self.attacks):
- if attack[1] is None:
- print "\t(%d) Defend (-50%% chance to get hit)" % i
- else:
- name, damage, chance = attack
- print "\t(%d) %s (Damage: %d, %d%%)" % (i, name, damage, chance)
- # no error checking, because I'm lazy \o/
- choice = int(raw_input("Choose now: "))
- return self.attacks[choice]
- class Enemy(object):
- """Class to represent the enemy. Takes a name and the healthpoints as parameters."""
- def __init__(self, name, life):
- self.name = name
- self.life = life
- self.alive = True
- self.defend = False
- self.attacks = [ ("Claw", 5, 95)
- , ("Rake", 20, 60)
- , ("Defend", None, None) ]
- def get_hit(self, damage):
- print "%s (%d HP) got hit for %d damage!" % (self.name, self.life, damage)
- self.life -= damage
- if self.life < 0:
- self.alive = False
- def choose_attack(self):
- return choice(self.attacks)
- if __name__ == "__main__":
- mausi = Player("Mausi", 100)
- ben = Enemy("Ben", 70)
- while True:
- mausi_attack = mausi.choose_attack()
- ben_attack = ben.choose_attack()
- if mausi_attack[1] is None:
- mausi.defend = True
- else:
- mausi.defend = False
- if ben_attack[1] is None:
- ben.defend = True
- else:
- ben.defend = False
- if not mausi.defend:
- _, damage, chance = mausi_attack
- if ben.defend: chance -= 50
- if chance > randint(0, 100):
- ben.get_hit(damage)
- if not ben.defend:
- _, damage, chance = ben_attack
- if mausi.defend: chance -= 50
- if chance > randint(0, 100):
- mausi.get_hit(damage)
- if not mausi.alive:
- print "You are dead."
- break
- if not ben.alive:
- print "You win!"
- break
- print "%s life: %d -- %s life: %d" % (mausi.name, mausi.life, ben.name, ben.life)
Add Comment
Please, Sign In to add comment