Till KTH:s startsida Till KTH:s startsida

Läxa 3 (förberedelse för labb 4)

I labb 4 ska du skriva ett program som använder en klass som du själv hittat på. Förberedelser:

  • Läs Kap 8 i (om klasser) i kursboken.
  • Gå igenom och provkör husdjursprogrammet (se nedan) så att du förstår hur det fungerar.
  • Skriv sedan en egen klass (tillsammans med din gruppkompis) med minst fem attribut och metoder.
#################################################################
#####################  klassen Husdjur  #########################
#################################################################

class Husdjur(object):
    """ Ett virtuellt husdjur """
    def __init__(self, djurnamn):
        """Konstruktorn"""
        self.namn = djurnamn
        self.glad = 0
        self.hunger = 0

    def __str__(self):
        sträng = self.namn
        sträng += ", " + str(self.glad)
        sträng += ", " + str(self.hunger)
        return sträng
        
    def visaStatus(self):
        """Visar husdjurets namn och hur det mår."""
        print("\n", self.namn, "är ",end="")
        if self.glad > 0 and self.hunger < 3:
            print("glad: (^_^)")
        else:
            print("ledsen: (T_T)")

    def banna(self):
        """Ger husdjuret bannor. glad minskas."""   
        print("\n - Fy på dig", self.namn, "!")
        self.glad -= 3

    def mata(self, mat):
        """Ger husdjuret mat. hunger minskas."""
        for i in range(mat):
            print("GLUFS",end=" ")
        self.hunger -= mat

    def leka(self):
        """Leker med husdjuret. glad och hunger ökar"""
        self.glad += 1
        print("\n~~~~~~~~~~~ WHEEEEEEE! ~~~~~~~~~~~")
        self.hunger += 1

    def avsked(self):
        """Skriver ut avskedet."""
        print
        print("Hejdå,", self.namn, "kommer att sakna dig!")

################################################################
############################ funktioner ########################
################################################################
def utskriftstest(djur):
    """Testar olika sätt att skriva ut objektet"""
    print("------------ Test av utskrifter -----------")
    print("Anropar visaStatus: ", end = "")
    djur.visaStatus()
    print("Anropar __str__: ", end = "")
    print(djur)
    print("Anropar type: ", end = "")
    print(type(djur))
    print("-------------------------------------------")

def skötsel(djur):
    """Meny för djurskötsel"""
    svar = input(" Vill du \n  banna \n  mata \n  leka med \n ditt husdjur? " )
    while svar:
        if svar[0]=="m":
            bullar = int(input("Hur många bullar? "))
            djur.mata(bullar)    
        elif svar[0]=="b":
            djur.banna()
        elif svar[0]=="l":
            djur.leka()
        else:
            print("Hursa? ")
        djur.visaStatus()
        print(djur)
        svar = input(" Vill du \n  banna \n  mata \n  leka med \n ditt husdjur? " )    

def main():
    djurnamn = input("Vad vill du döpa ditt husdjur till? ")
    djur = Husdjur(djurnamn)
    utskriftstest(djur)
    skötsel(djur)
    djur.avsked()


main()