From 3cb88fe19895aab6beef99e97b839b1e8fedfaf6 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 31 Aug 2015 06:42:03 +0200 Subject: [PATCH] some first changes to make the pet a class --- pet_functions.py | 306 +++++++++++++++++++++++------------------------ pet_variables.py | 25 +--- 2 files changed, 153 insertions(+), 178 deletions(-) diff --git a/pet_functions.py b/pet_functions.py index 5d10b3f..9774c0b 100644 --- a/pet_functions.py +++ b/pet_functions.py @@ -1,5 +1,3 @@ -# imports the global variables -import pet_variables # imports the time library needed to delay certain functions import time # imports the random library needed to generate a random number for @@ -11,206 +9,206 @@ import os # poking function from pygame import mixer - # variables needed for the guessing game secret = randint(1, 10) +### a class for controlling the pet ### -### Functions providing the basic function of the programme ### +class Pet(object): -# a function which displays the pet's stats in a nice way. -def pet_stats(): - os.system('clear') - print(pet_variables.pet_name) - print(pet_variables.pet_photo) - print("Status: " + pet_variables.pet_status) - print("Age: " + str(pet_variables.pet_age)) - print("Health: " + pet_variables.pet_health * "♥") - print("Hunger: " + pet_variables.pet_hunger * "*") - print("Happines: " + pet_variables.pet_happiness * "☺") + def __init__(self, name, photo, status, health, age, hunger, happiness, poke_count, + max_health, max_hunger, max_happiness): + # The pet's stats + self.name = name + self.photo = photo + self.status = status + self.health = health + self.age = age + self.hunger = hunger + self.happiness = happiness + self.poke_count = poke_count + self.max_health = max_health + self.max_hunger = max_hunger + self.max_happiness = max_happiness -# A function which checks if the pet is still alive -def is_alive(): - return pet_variables.pet_health > 0 + # a function which displays the pet's stats in a nice way. + def display_stats(self): + os.system('clear') + print(self.name) + print(self.photo) + print("Status: " + self.status) + print("Age: " + str(self.age)) + print("Health: " + self.health * "♥") + print("Hunger: " + self.hunger * "*") + print("Happines: " + self.happiness * "☺") -# A function which let's the player choose his pet. -def beginning(): - print("Which pet do you want to look after?") - print("1: Cat, 2: Mouse, 3: Fish, 4: Owl") - chosen_pet = int(input("Choose your pet:")) - if chosen_pet == 1: - pet_variables.pet_photo = pet_variables.cat - elif chosen_pet == 2: - pet_variables.pet_photo = pet_variables.mouse - elif chosen_pet == 3: - pet_variables.pet_photo = pet_variables.fish - elif chosen_pet == 4: - pet_variables.pet_photo = pet_variables.owl - pet_variables.pet_name = input("How do you want to call your pet?") + # A function which checks if the pet is still alive + def is_alive(self): + return self.health > 0 -# A function which changes the status of the pet depending of the age value. -# Each status has it's own characteristics. + # A function which changes the status of the pet depending of the age value. + # Each status has it's own characteristics. -def set_youngling_stats(): - pet_variables.max_health = 10 - pet_variables.max_happiness = 8 - pet_variables.max_hunger = 7 + def set_youngling_stats(self): + self.max_health = 10 + self.max_happiness = 8 + self.max_hunger = 7 -def set_adult_stats(): - pet_variables.max_health = 10 - pet_variables.max_happiness = 8 - pet_variables.max_hunger = 7 + def set_adult_stats(self): + self.max_health = 10 + self.max_happiness = 8 + self.max_hunger = 7 -def set_elderly_stats(): - pet_variables.max_health = 7 - pet_variables.max_happiness = 5 - pet_variables.max_hunger = 10 + def set_elderly_stats(self): + self.max_health = 7 + self.max_happiness = 5 + self.max_hunger = 10 -def reset_stats(): - pet_variables.pet_health = pet_variables.max_health - pet_variables.pet_happiness = pet_variables.max_happiness - pet_variables.pet_hunger = pet_variables.max_hunger + def reset_stats(self): + self.health = self.max_health + self.happiness = self.max_happiness + self.hunger = self.max_hunger -def aging(): - if pet_variables.pet_age == 5: - pet_variables.pet_status = "adult" - set_adult_stats() - print("Congratulation your pet has become an adult. It needs less food now") - print("and it's health has improved however it's grumpier than a youngling.") - elif pet_variables.pet_age == 15: - pet_variables.pet_status = "elderly" - set_elderly_stats() - print("Congratulation your pet has become an elderly it needs now less food.") - print("However it's health is worse and it's grumpier than an adult.") + def aging(self): + if self.age == 5: + self.status = "adult" + self.set_adult_stats() + print("Congratulation your pet has become an adult. It needs less food now") + print("and it's health has improved however it's grumpier than a youngling.") + elif self.age == 15: + self.status = "elderly" + self.set_elderly_stats() + print("Congratulation your pet has become an elderly it needs now less food.") + print("However it's health is worse and it's grumpier than an adult.") -### Functions to increase and decrease stats ### + ### Functions to increase and decrease stats ### -def increase_hunger(): - if pet_variables.pet_hunger < pet_variables.max_hunger: - pet_variables.pet_hunger += 1 + def increase_hunger(self): + if self.hunger < self.max_hunger: + self.hunger += 1 -def increase_poke_count(): - pet_variables.poke_count += 1 + def increase_poke_count(self): + self.poke_count += 1 -def increase_happiness(): - if pet_variables.pet_happiness < pet_variables.max_happiness: - pet_variables.pet_happiness += 1 + def increase_happiness(self): + if self.happiness < self.max_happiness: + self.happiness += 1 -def increase_health(): - if pet_variables.pet_health < pet_variables.max_health: - pet_variables.pet_health += 1 + def increase_health(self): + if self.health < self.max_health: + self.health += 1 -def decrease_hunger(): - if pet_variables.pet_hunger > 0: - pet_variables.pet_hunger -= 1 + def decrease_hunger(self): + if self.hunger > 0: + self.hunger -= 1 -def decrease_happiness(): - if pet_variables.pet_happiness > 0: - pet_variables.pet_happiness -= 1 + def decrease_happiness(self): + if self.happiness > 0: + self.happiness -= 1 -def decrease_health(): - if pet_variables.pet_health > 0: - pet_variables.pet_health -= 1 + def decrease_health(self): + if self.health > 0: + self.health -= 1 -def decrease_poke_count(): - pet_variables.poke_count -= 1 + def decrease_poke_count(self): + self.poke_count -= 1 -# The function to decrease the stats and make the pet "live" needs to -# run in the background. -def decrease_stats(): - while True: - time.sleep(pet_variables.day) - decrease_hunger() - if pet_variables.pet_hunger <= 0: - decrease_health() - decrease_happiness() + # The function to decrease the stats and make the pet "live" needs to + # run in the background. + def decrease_stats(self): + while True: + time.sleep(15) + self.decrease_hunger() + if self.hunger <= 0: + decrease_health() + decrease_happiness() -### Activities ### + ### Activities ### -# A function which simulates stroking it doesn't have any -# effect on the pet. -def stroking(): - os.system('clear') - print() - print("You're stroking the back of your pet gently.") - print("It makes comforting noises and leans against your hand.") - time.sleep(1) + # A function which simulates stroking it doesn't have any + # effect on the pet. + def stroking(self): + os.system('clear') + print() + print("You're stroking the back of your pet gently.") + print("It makes comforting noises and leans against your hand.") + time.sleep(1) -# Increases the pets hungriness by +1 unless the hunger is bigger than -# the pet's maximum hunger. In this case the pet will vomit and looses hunger -# and health. -def feeding(): - os.system('clear') - print("Hungriness of " + pet_variables.pet_name + ": " + pet_variables.pet_hunger * "*") - feeding_confirmed = input("Do you want to feed your pet?") - if feeding_confirmed in ("Y", "y"): - increase_hunger() + # Increases the pets hungriness by +1 unless the hunger is bigger than + # the pet's maximum hunger. In this case the pet will vomit and looses hunger + # and health. + def feeding(self): + os.system('clear') + print("Hungriness of " + self.name + ": " + self.hunger * "*") + feeding_confirmed = input("Do you want to feed your pet?") + if feeding_confirmed in ("Y", "y"): + self.increase_hunger() -# A simple guessing game which increases the pet's happiness -def playing(): - guess = 0 - os.system('clear') - while guess != secret: - g = input("Guess the Number") - guess = int(g) - if guess == secret: - print("You win!") - else: - if guess > secret: - print("Your guess is too high") + # A simple guessing game which increases the pet's happiness + def playing(self): + guess = 0 + os.system('clear') + while guess != secret: + g = input("Guess the Number") + guess = int(g) + if guess == secret: + print("You win!") else: - print("Too low") - increase_happiness() - print("Game over!") + if guess > secret: + print("Your guess is too high") + else: + print("Too low") + self.increase_happiness() + print("Game over!") -# let's you poke the pet and it will talk -# if you poke it more than 3 times it will get angry at you -def poking(): - os.system('clear') - if pet_variables.poke_count < 3: - print("You poke " + pet_variables.pet_name + " and it starts to speak.") - increase_poke_count() - mixer.init() - mixer.music.load('happy.mp3') - mixer.music.play() - time.sleep(5) - else: - print("You annoyed " + pet_variables.pet_name + "." + " It got angry at you.") - decrease_happiness() - mixer.init() - mixer.music.load('angry.mp3') - mixer.music.play() - time.sleep(3) + # let's you poke the pet and it will talk + # if you poke it more than 3 times it will get angry at you + def poking(self): + os.system('clear') + if self.poke_count < 3: + print("You poke " + self.name + " and it starts to speak.") + self.increase_poke_count() + mixer.init() + mixer.music.load('happy.mp3') + mixer.music.play() + time.sleep(5) + else: + print("You annoyed " + self.name + "." + " It got angry at you.") + self.decrease_happiness() + mixer.init() + mixer.music.load('angry.mp3') + mixer.music.play() + time.sleep(3) -# A function which let's the pet sleep and regenerates it's stats -def sleeping(): - os.system('clear') - print("Your pet is sleeping now.") - time.sleep(10) - if pet_variables.max_hunger / pet_variables.pet_hunger > 0.5: - reset_stats() - print("Your pet woke up feeling rested and in a good mood.") - else: - print("Your pet has woken up.") - time.sleep(3) + # A function which let's the pet sleep and regenerates it's stats + def sleeping(self): + os.system('clear') + print("Your pet is sleeping now.") + time.sleep(10) + if self.max_hunger / self.hunger > 0.5: + self.reset_stats() + print("Your pet woke up feeling rested and in a good mood.") + else: + print("Your pet has woken up.") + time.sleep(3) \ No newline at end of file diff --git a/pet_variables.py b/pet_variables.py index 4b56398..54c15d5 100644 --- a/pet_variables.py +++ b/pet_variables.py @@ -1,25 +1,2 @@ -# The pet's stats -pet_name = "Fluffy" -pet_photo = "<`)))><" -pet_status = "youngling" -pet_health = 5 -pet_age = 0 -pet_hunger = 5 -pet_happiness = 5 -pet_stomach = 0 - -# age based max values -max_health = 5 -max_hunger = 5 -max_happiness = 10 - -# Pictures and symbols used ingame -cat = "(=^o.o^=)__" -mouse = "<:3 )~~~~" -fish = "<`)))><" -owl = "(^0M0^)" - # programme variables -beginning_finished = False -poke_count = 0 -day = 15 +