summaryrefslogtreecommitdiff
path: root/Beginning_C++_through_game_programming/ch8.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Beginning_C++_through_game_programming/ch8.ipynb')
-rwxr-xr-xBeginning_C++_through_game_programming/ch8.ipynb484
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