# Critter Caretaker<br># A virtual pet to care for<br>class Farm(object):<br>#A collection of Critters   <br><br>    def talk(self,farm):<br>        farm.talk()<br><br><br><br>class Critter(object):<br>   <br>    &quot;&quot;&quot;A virtual pet&quot;&quot;&quot;<br>
    def __init__(self, name, hunger = 0, boredom = 0):<br>        <a href="http://self.name">self.name</a> = name<br>        self.hunger = hunger<br>        self.boredom = boredom<br><br>    # __ denotes private method<br>
    def __pass_time(self,farm):<br>        self.hunger += 1<br>        self.boredom += 1<br>        self.__str__()<br><br>    def __str__(self,farm):<br>        print(&quot;Hunger is&quot;,self.hunger, &quot;Boredom is &quot; ,self.boredom)<br>
        print(&quot;Unhappines is &quot;,self.hunger + self.boredom,&quot; and Mood is &quot;,self.mood)<br>       <br>        <br>    <br>    @property<br>    def mood(self,farm):<br>        unhappiness = self.hunger + self.boredom<br>
        if unhappiness &lt; 5:<br>            m = &quot;happy&quot;<br>        elif 5 &lt;= unhappiness &lt;= 10:<br>            m = &quot;okay&quot;<br>        elif 11 &lt;= unhappiness &lt;= 15:<br>            m = &quot;frustrated&quot;<br>
        else:<br>            m = &quot;mad&quot;<br>        return m<br>    <br>    def talk(self,farm):<br>        print(&quot;I&#39;m&quot;, <a href="http://self.name">self.name</a>, &quot;and I feel&quot;, self.mood, &quot;now.\n&quot;)<br>
        self.__pass_time()<br>        <br>    <br>    def eat(self,farm):<br>        food = int(input(&quot;Enter how much food you want to feed your critter: &quot;))<br>        print(&quot;Brruppp.  Thank you.&quot;)<br>
        self.hunger -= food<br>        # hunger = 0 at iniatition<br>        # self.hunger = self.boredom - food<br>        if self.hunger &lt; 0:<br>            self.hunger = 0<br>        self.__pass_time()<br>        <br>
<br>    def play(self,farm):<br>        fun = int(input(&quot;Enter how much fun you want your critter to have: &quot;))<br>        print(&quot;Wheee!&quot;)<br>        self.boredom -= fun<br>        # boredom = 0 at iniatition<br>
        # self.boredom = self.boredom - fun<br>        if self.boredom &lt; 0:<br>            self.boredom = 0<br>        self.__pass_time()<br>        <br><br>def main():<br>##    crit_name = input(&quot;What do you want to name your critter?: &quot;)<br>
##    crit = Critter(crit_name)  <br>    <br>    crit1 = Critter(&quot;Sweetie&quot;)<br>    crit2 = Critter(&quot;Dave&quot;)<br>    farm = [crit1,crit2]<br>    <br>    choice = None  <br>    while choice != &quot;0&quot;:<br>
        print \<br>        (&quot;&quot;&quot;<br>        Critter Caretaker<br>    <br>        0 - Quit<br>        1 - Listen to your critter<br>        2 - Feed your critter<br>        3 - Play with your critter<br>        &quot;&quot;&quot;)<br>
    <br>        choice = input(&quot;Choice: &quot;)<br>        print()<br><br>        # exit<br>        if choice == &quot;0&quot;:<br>            print(&quot;Good-bye.&quot;)<br><br>        # listen to your critter<br>        elif choice == &quot;1&quot;:<br>
            self.talk()<br>        <br>        # feed your critter<br>        elif choice == &quot;2&quot;:<br>            crit.eat()<br>         <br>        # play with your critter<br>        elif choice == &quot;3&quot;:<br>
            crit.play()<br><br>        # some unknown choice<br>        else:<br>            print(&quot;\nSorry, but&quot;, choice, &quot;isn&#39;t a valid choice.&quot;)<br><br><br><br><br><br>main()<br>(&quot;\n\nPress the enter key to exit.&quot;) <br>
<br>Critter Caretaker<br>    <br>        0 - Quit<br>        1 - Listen to your critter<br>        2 - Feed your critter<br>        3 - Play with your critter<br>        <br>Choice: 1<br><br>Traceback (most recent call last):<br>
  File &quot;D:\David\Python\programs\critter_farm2.py&quot;, line 118, in &lt;module&gt;<br>    main()<br>  File &quot;D:\David\Python\programs\critter_farm2.py&quot;, line 100, in main<br>    self.talk()<br>NameError: global name &#39;self&#39; is not defined<br>
&gt;&gt;&gt; <br clear="all"><br>-- <br>Dave Merrick<br><br><a href="mailto:merrickdav@gmail.com">merrickdav@gmail.com</a><br><br>Ph   03 3423 121<br>Cell 027 3089 169<br>