Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import time
- def sleep():
- time.sleep(1.5)
- print("")
- class Player():
- def __init__(self, hitpoints, attack):
- self.hitpoints = hitpoints
- self.attack = attack
- def pAttack(self, monster):
- sleep()
- diceRoll = random.randint(1,6)
- if(diceRoll >= 5):
- criticalHit = (self.attack * 2) - 1
- monster.hitpoints -= criticalHit
- print("You critically hit the monster!")
- print("You deal {} damage. The monster now has {} hitpoints left".format(criticalHit, monster.hitpoints))
- else:
- monster.hitpoints -= self.attack
- print("You manage to hit the monster!")
- print("You deal {} damage. The monster now has {} hitpoints left".format(self.attack, monster.hitpoints))
- def pBlock(self):
- sleep()
- print("You manage to block the monster's hit!")
- print("You still have {} hitpoints left".format(self.hitpoints))
- def pMisses(self, monster):
- sleep()
- print("You miss your swing at the monster!")
- print("The monster still has {} hitpoints left.".format(monster.hitpoints))
- class Monster():
- def __init__(self, color, hitpoints, attack):
- self.color = color
- self.hitpoints = hitpoints
- self.attack = attack
- def mAttack(self, player):
- sleep()
- player.hitpoints -= self.attack
- print("The monster hits its attack!")
- print("It deals {} damage. You now have {} hitpoints left.".format(self.attack, player.hitpoints))
- def mMisses(self, player):
- sleep()
- print("The monster misses its attack!")
- print("You still have {} hitpoints left".format(player.hitpoints))
- def mBlock(self):
- sleep()
- print("The monster is able to block your attack!")
- print("The monster still has {} hitpoints left".format(self.hitpoints))
- def fightMonster(player, monster):
- print("The monster has {} attack and {} hitpoints.".format(monster.attack, monster.hitpoints))
- print("You have {} attack and {} hitpoints.".format(player.attack, player.hitpoints))
- while(True):
- mIsStunned = False
- if(player.hitpoints > 0):
- wantsToAttack = input("Do you want to attack or block? 'A' / 'B'\n\n").upper()
- if(wantsToAttack == "A"):
- pDiceRoll = random.randint(1,6)
- if(pDiceRoll > 3):
- player.pAttack(monster)
- else:
- player.pMisses(monster)
- else:
- pDiceRoll = random.randint(1,6)
- if(pDiceRoll > 3):
- player.pBlock()
- print("You stun the monster, it's a guaranteed hit!")
- mIsStunned = True
- player.pAttack(monster)
- else:
- monster.mAttack(player)
- if(monster.hitpoints <= 0):
- print("The monster is all out of hitpoints! You win the battle!")
- break
- else:
- if(mIsStunned):
- sleep()
- print("The monster is stunned and unable to attack")
- else:
- print("The monster tries to attack you.")
- mDiceRoll = random.randint(1,6)
- if(mDiceRoll > 3):
- monster.mAttack(player)
- else:
- monster.mMisses(player)
- else:
- print("You are out of hitpoints! You lose the battle!")
- break
- def playGame():
- myMonster = Monster("red", 15, 2)
- myPlayer = Player(20, 4)
- fightMonster(myPlayer, myMonster)
- playGame()
Advertisement
Add Comment
Please, Sign In to add comment