diff options
Diffstat (limited to 'Beginning_C++_through_game_programming/ch8.ipynb')
-rwxr-xr-x | Beginning_C++_through_game_programming/ch8.ipynb | 484 |
1 files changed, 484 insertions, 0 deletions
diff --git a/Beginning_C++_through_game_programming/ch8.ipynb b/Beginning_C++_through_game_programming/ch8.ipynb new file mode 100755 index 00000000..1b140b06 --- /dev/null +++ b/Beginning_C++_through_game_programming/ch8.ipynb @@ -0,0 +1,484 @@ +{ + "metadata": { + "name": "" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Chapter 8 : Classes: Critter Caretaker" + ] + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.1 page no : 256" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "Simple Critter\n", + "Demonstrates creating a new type\n", + "'''\n", + "\n", + "class Critter:\n", + " def __init__(self):\n", + " self.m_Hunger = 0\n", + "\n", + " def Greet(self):\n", + " print \"Hi. I'm a critter. My hunger level is \" , self.m_Hunger\n", + "\n", + "crit1 = Critter()\n", + "crit2 = Critter()\n", + "crit1.m_Hunger = 9;\n", + "print \"crit1's hunger level is \" , crit1.m_Hunger\n", + "crit2.m_Hunger = 3;\n", + "print \"crit2's hunger level is \" , crit2.m_Hunger\n", + "crit1.Greet()\n", + "crit2.Greet()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "crit1's hunger level is 9\n", + "crit2's hunger level is 3\n", + "Hi. I'm a critter. My hunger level is 9\n", + "Hi. I'm a critter. My hunger level is 3\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.2 page no: 261" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "Constructor Critter\n", + "Demonstrates constructors\n", + "'''\n", + "\n", + "class Critter:\n", + " def __init__(self,h=0):\n", + " print \"A new critter has been born!\" \n", + " self.m_Hunger = h\n", + "\n", + " def Greet(self):\n", + " print \"Hi. I'm a critter. My hunger level is \" , self.m_Hunger\n", + "\n", + "crit = Critter(7);\n", + "crit.Greet();" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "A new critter has been born!\n", + "Hi. I'm a critter. My hunger level is 7\n" + ] + } + ], + "prompt_number": 2 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.3 page no : 265" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "Private Critter\n", + "Demonstrates setting member access levels\n", + "'''\n", + "\n", + "class Critter:\n", + " def __init__(self,h=0):\n", + " print \"A new critter has been born!\" \n", + " self.m_Hunger = h\n", + "\n", + " def Greet(self):\n", + " print \"Hi. I'm a critter. My hunger level is \" , self.m_Hunger\n", + "\n", + " def GetHunger(self):\n", + " return self.m_Hunger;\n", + "\n", + " def SetHunger(self,hunger):\n", + " if (hunger < 0):\n", + " print \"You can't set a critter's hunger to a negative number.\";\n", + " else:\n", + " self.m_Hunger = hunger;\n", + "\n", + "\n", + "crit = Critter(5)\n", + "#print crit.m_Hunger; //illegal, m_Hunger is private!\n", + "print \"Calling GetHunger(): \" , crit.GetHunger()\n", + "print \"Calling SetHunger() with -1.\";\n", + "crit.SetHunger(-1);\n", + "print \"Calling SetHunger() with 9.\";\n", + "crit.SetHunger(9);\n", + "print \"Calling GetHunger(): \" , crit.GetHunger()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "A new critter has been born!\n", + "Calling GetHunger(): 5\n", + "Calling SetHunger() with -1.\n", + "You can't set a critter's hunger to a negative number.\n", + "Calling SetHunger() with 9.\n", + "Calling GetHunger(): 9\n" + ] + } + ], + "prompt_number": 3 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.4 page no: 270" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "//Static Critter\n", + "//Demonstrates static member variables and functions\n", + "'''\n", + "\n", + "class Critter:\n", + " s_Total = 0\n", + " def __init__(self,h=0):\n", + " print \"A new critter has been born!\" \n", + " self.m_Hunger = h\n", + " Critter.s_Total += 1\n", + "\n", + " def GetTotal(self):\n", + " return Critter.s_Total;\n", + "\n", + "print \"The total number of critters is: \";\n", + "print Critter.s_Total\n", + "crit1 = Critter() \n", + "crit2 = Critter()\n", + "crit3 = Critter()\n", + "print \"\\nThe total number of critters is: \",\n", + "print Critter.GetTotal(crit1) " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "The total number of critters is: \n", + "0\n", + "A new critter has been born!\n", + "A new critter has been born!\n", + "A new critter has been born!\n", + "\n", + "The total number of critters is: 3\n" + ] + } + ], + "prompt_number": 4 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.5 page no : 277" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "//Critter Caretaker\n", + "//Simulates caring for a virtual pet\n", + "Note : Book program has error, PassTime() is taking time integer as argument, but while calling it , no-function is \n", + "passing that time so this would give error.\n", + "'''\n", + "\n", + "\n", + "class Critter:\n", + " def __init__(self,hunger = 0, boredom = 0):\n", + " self.m_Hunger= hunger\n", + " self.m_Boredom = boredom\n", + "\n", + " def GetMood(self):\n", + " return (self.m_Hunger + self.m_Boredom);\n", + "\n", + " def PassTime(self,time):\n", + " self.m_Hunger += time;\n", + " self.m_Boredom += time;\n", + "\n", + " def Talk(self):\n", + " print \"I'm a critter and I feel \";\n", + " mood = self.GetMood();\n", + " if (mood > 15):\n", + " print \"mad.\\n\";\n", + " elif (mood > 10):\n", + " print \"frustrated.\\n\";\n", + " elif (mood > 5):\n", + " print \"okay.\\n\";\n", + " else:\n", + " print \"happy.\\n\";\n", + " self.PassTime();\n", + "\n", + " def Eat(self,food):\n", + " print \"Brruppp.\\n\";\n", + " self.m_Hunger -= food;\n", + " if (self.m_Hunger < 0):\n", + " self.m_Hunger = 0;\n", + " self.PassTime();\n", + "\n", + " def Play(self,fun):\n", + " print \"Wheee!\\n\";\n", + " self.m_Boredom -= fun;\n", + " if (self.m_Boredom < 0):\n", + " self.m_Boredom = 0;\n", + " self.PassTime();\n", + "\n", + "crit = Critter()\n", + "crit.Talk();\n", + "while True:\n", + " print \"\\nCritter Caretaker\\n\\n\";\n", + " print \"0 - Quit\\n\";\n", + " print \"1 - Listen to your critter\\n\";\n", + " print \"2 - Feed your critter\\n\";\n", + " print \"3 - Play with your critter\\n\\n\";\n", + " print \"Choice: \";\n", + " choice = int(raw_input())\n", + " if choice == 0:\n", + " print \"Good-bye.\\n\";\n", + " break\n", + " elif choice == 1:\n", + " crit.Talk();\n", + " elif choice == 2:\n", + " crit.Eat();\n", + " elif choice == 3:\n", + " crit.Play();\n", + " else:\n", + " print \"\\nSorry, but \" , choice , \" isn't a valid choice.\\n\";\n", + "\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "PassTime() takes exactly 2 arguments (1 given)", + "output_type": "pyerr", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m<ipython-input-1-6005a1e33d51>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 47\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[0mcrit\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mCritter\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 49\u001b[1;33m \u001b[0mcrit\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTalk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 50\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 51\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[1;34m\"\\nCritter Caretaker\\n\\n\"\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m<ipython-input-1-6005a1e33d51>\u001b[0m in \u001b[0;36mTalk\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 30\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 31\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[1;34m\"happy.\\n\"\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 32\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPassTime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m;\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 33\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 34\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mEat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mfood\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: PassTime() takes exactly 2 arguments (1 given)" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "I'm a critter and I feel \n", + "happy.\n", + "\n" + ] + } + ], + "prompt_number": 1 + }, + { + "cell_type": "heading", + "level": 3, + "metadata": {}, + "source": [ + "example 8.6 page no : 280" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "'''\n", + "Critter Caretaker\n", + "Simulates caring for a virtual pet\n", + "'''\n", + "\n", + "\n", + "class Critter:\n", + " def __init__(self,hunger = 0, boredom = 0):\n", + " self.m_Hunger= hunger\n", + " self.m_Boredom = boredom\n", + "\n", + " def Talk(self):\n", + " print \"I'm a critter and I feel \";\n", + " mood = self.GetMood();\n", + " if (mood > 15):\n", + " print \"mad.\\n\";\n", + " elif (mood > 10):\n", + " print \"frustrated.\\n\";\n", + " elif (mood > 5):\n", + " print \"okay.\\n\";\n", + " else:\n", + " print \"happy.\\n\";\n", + " self.PassTime();\n", + " \n", + " def Eat(self,food = 4):\n", + " print \"Brruppp.\";\n", + " self.m_Hunger -= food;\n", + " if (self.m_Hunger < 0):\n", + " self.m_Hunger = 0;\n", + " self.PassTime();\n", + " \n", + " def Play(self,fun = 4):\n", + " print \"Wheee!\";\n", + " self.m_Boredom -= fun;\n", + " if (self.m_Boredom < 0):\n", + " self.m_Boredom = 0;\n", + " self.PassTime();\n", + " \n", + " def PassTime(self, time = 1):\n", + " self.m_Hunger += time;\n", + " self.m_Boredom += time;\n", + "\n", + "\n", + " def GetMood(self):\n", + " return (self.m_Hunger + self.m_Boredom);\n", + "\n", + "crit = Critter()\n", + "crit.Talk();\n", + "choice = 1;\n", + "choices = [1,2,3,0]\n", + "i = 0\n", + "while choice != 0 :\n", + " print \"\\nCritter Caretaker\\n\";\n", + " print \"0 - Quit\";\n", + " print \"1 - Listen to your critter\";\n", + " print \"2 - Feed your critter\";\n", + " print \"3 - Play with your critter\\n\";\n", + "\n", + " print \"Choice: \",\n", + " choice = choices[i] #int(raw_input())\n", + " i += 1\n", + "\n", + " if choice ==0:\n", + " print \"Good-bye.\\n\";\n", + " elif choice==1:\n", + " crit.Talk(); \n", + " elif choice == 2:\n", + " crit.Eat();\n", + " elif choice == 3:\n", + " crit.Play();\n", + " else:\n", + " print \"\\nSorry, but \" , choice , \" isn't a valid choice.\";" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " I'm a critter and I feel \n", + "happy.\n", + "\n", + "\n", + "Critter Caretaker\n", + "\n", + "0 - Quit\n", + "1 - Listen to your critter\n", + "2 - Feed your critter\n", + "3 - Play with your critter\n", + "\n", + "Choice: I'm a critter and I feel \n", + "happy.\n", + "\n", + "\n", + "Critter Caretaker\n", + "\n", + "0 - Quit\n", + "1 - Listen to your critter\n", + "2 - Feed your critter\n", + "3 - Play with your critter\n", + "\n", + "Choice: Brruppp.\n", + "\n", + "Critter Caretaker\n", + "\n", + "0 - Quit\n", + "1 - Listen to your critter\n", + "2 - Feed your critter\n", + "3 - Play with your critter\n", + "\n", + "Choice: Wheee!\n", + "\n", + "Critter Caretaker\n", + "\n", + "0 - Quit\n", + "1 - Listen to your critter\n", + "2 - Feed your critter\n", + "3 - Play with your critter\n", + "\n", + "Choice: Good-bye.\n", + "\n" + ] + } + ], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +}
\ No newline at end of file |