summaryrefslogtreecommitdiff
path: root/Beginning_C++_Through_Game_Programming/ch7.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Beginning_C++_Through_Game_Programming/ch7.ipynb')
-rwxr-xr-xBeginning_C++_Through_Game_Programming/ch7.ipynb285
1 files changed, 285 insertions, 0 deletions
diff --git a/Beginning_C++_Through_Game_Programming/ch7.ipynb b/Beginning_C++_Through_Game_Programming/ch7.ipynb
new file mode 100755
index 00000000..b13fd7d8
--- /dev/null
+++ b/Beginning_C++_Through_Game_Programming/ch7.ipynb
@@ -0,0 +1,285 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 7 : Pointers: Tic-Tac-Toe 2.0"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.1 page no :225"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "pScore = 0 #declare and initialize a pointer\n",
+ "score = 1000 #assign pointer pScore address of variable score\n",
+ "pScore = score; \n",
+ "print \"Assigning &score to pScore\\n\";\n",
+ "print \"&score is: \" , id(score) # address of score variable\n",
+ "print \"pScore is: \" , pScore # address stored in pointer\n",
+ "print \"score is: \" , score\n",
+ "print \"pScore is: \" , pScore # value pointed to by pointer\n",
+ "print \"Adding 500 to score\";\n",
+ "score += 500;\n",
+ "print \"score is: \" , score \n",
+ "print \"*pScore is: \" , pScore \n",
+ "print \"Adding 500 to *pScore\\n\";\n",
+ "pScore += 500;\n",
+ "print \"score is: \" , score \n",
+ "print \"*pScore is: \" , pScore\n",
+ "print \"Assigning &newScore to pScore\\n\";\n",
+ "newScore = 5000;\n",
+ "pScore = newScore;\n",
+ "print \"&newScore is: \" , id(newScore)\n",
+ "print \"pScore is: \" , pScore\n",
+ "print \"newScore is: \" , newScore\n",
+ "print \"*pScore is: \" , pScore\n",
+ "\n",
+ "print \"Assigning &str to pStr\\n\";\n",
+ "str = \"score\";\n",
+ "pStr = str; \n",
+ "print \"str is: \" , str\n",
+ "print \"*pStr is: \" , pStr\n",
+ "print \"(*pStr).size() is: \" , len(pStr)\n",
+ "print \"pStr->size() is: \" , len(pStr)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Assigning &score to pScore\n",
+ "\n",
+ "&score is: 24878128\n",
+ "pScore is: 1000\n",
+ "score is: 1000\n",
+ "pScore is: 1000\n",
+ "Adding 500 to score\n",
+ "score is: 1500\n",
+ "*pScore is: 1000\n",
+ "Adding 500 to *pScore\n",
+ "\n",
+ "score is: 1500\n",
+ "*pScore is: 1500\n",
+ "Assigning &newScore to pScore\n",
+ "\n",
+ "&newScore is: 24880648\n",
+ "pScore is: 5000\n",
+ "newScore is: 5000\n",
+ "*pScore is: 5000\n",
+ "Assigning &str to pStr\n",
+ "\n",
+ "str is: score\n",
+ "*pStr is: score\n",
+ "(*pStr).size() is: 5\n",
+ "pStr->size() is: 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.2 page no : 235"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "def badSwap(x,y):\n",
+ " x,y = y,x\n",
+ " \n",
+ "def goodSwap(x,y):\n",
+ " x[0],y[0] = y[0],x[0]\n",
+ "\n",
+ "\n",
+ "myScore = [150]\n",
+ "yourScore = [1000]\n",
+ "print \"Original values\";\n",
+ "print \"myScore: \" , myScore[0]\n",
+ "print \"yourScore: \" , yourScore[0]\n",
+ "print \"Calling badSwap()\";\n",
+ "badSwap(myScore[0], yourScore[0]);\n",
+ "print \"myScore: \" , myScore[0] \n",
+ "print \"yourScore: \" , yourScore[0]\n",
+ "print \"Calling goodSwap()\\n\";\n",
+ "goodSwap(myScore,yourScore);\n",
+ "print \"myScore: \" , myScore[0] \n",
+ "print \"yourScore: \" , yourScore[0]"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original values\n",
+ "myScore: 150\n",
+ "yourScore: 1000\n",
+ "Calling badSwap()\n",
+ "myScore: 150\n",
+ "yourScore: 1000\n",
+ "Calling goodSwap()\n",
+ "\n",
+ "myScore: 1000\n",
+ "yourScore: 150\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example : 7.3 page no : 239"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "def ptrToElement(pVec, i):\n",
+ " return pVec[i]\n",
+ "\n",
+ "inventory = []\n",
+ "inventory.append(\"sword\");\n",
+ "inventory.append(\"armor\");\n",
+ "inventory.append(\"shield\");\n",
+ "#displays string object that the returned pointer points to\n",
+ "print \"Sending the objected pointed to by returned pointer:\";\n",
+ "print ptrToElement(inventory, 0)\n",
+ "# assigns one pointer to another - - inexpensive assignment\n",
+ "print \"Assigning the returned pointer to another pointer.\";\n",
+ "pStr = ptrToElement(inventory, 1);\n",
+ "print \"Sending the object pointed to by new pointer to cout:\";\n",
+ "print pStr \n",
+ "#copies a string object - - expensive assignment\n",
+ "print \"Assigning object pointed by pointer to a string object.\\n\";\n",
+ "s = (ptrToElement(inventory, 2));\n",
+ "print \"Sending the new string object to cout:\";\n",
+ "print s \n",
+ "#altering the string object through a returned pointer\n",
+ "print \"Altering an object through a returned pointer.\";\n",
+ "pStr = \"Healing Potion\";\n",
+ "inventory[1] = pStr\n",
+ "print \"Sending the altered object to cout:\\n\";\n",
+ "print inventory[1] "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sending the objected pointed to by returned pointer:\n",
+ "sword\n",
+ "Assigning the returned pointer to another pointer.\n",
+ "Sending the object pointed to by new pointer to cout:\n",
+ "armor\n",
+ "Assigning object pointed by pointer to a string object.\n",
+ "\n",
+ "Sending the new string object to cout:\n",
+ "shield\n",
+ "Altering an object through a returned pointer.\n",
+ "Sending the altered object to cout:\n",
+ "\n",
+ "Healing Potion\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "heading",
+ "level": 3,
+ "metadata": {},
+ "source": [
+ "example 7.4 page no : 244"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "def increase(array,NUM_ELEMENTS):\n",
+ " for i in range(NUM_ELEMENTS):\n",
+ " array[i] += 500;\n",
+ "\n",
+ "def display( array, NUM_ELEMENTS):\n",
+ " for i in range(NUM_ELEMENTS):\n",
+ " print array[i]\n",
+ "\n",
+ "\n",
+ "print \"Creating an array of high scores.\\n\\n\";\n",
+ "NUM_SCORES = 3;\n",
+ "highScores = [5000, 3500, 2700]\n",
+ "print \"Displaying scores using array name as a constant pointer.\";\n",
+ "print highScores[0]\n",
+ "print highScores[1]\n",
+ "print highScores[2]\n",
+ "print \"Increasing scores by passing array as a constant pointer.\";\n",
+ "increase(highScores, NUM_SCORES)\n",
+ "print \"Displaying scores by passing array as a constant pointer to a constant.\";\n",
+ "display(highScores, NUM_SCORES);"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Creating an array of high scores.\n",
+ "\n",
+ "\n",
+ "Displaying scores using array name as a constant pointer.\n",
+ "5000\n",
+ "3500\n",
+ "2700\n",
+ "Increasing scores by passing array as a constant pointer.\n",
+ "Displaying scores by passing array as a constant pointer to a constant.\n",
+ "5500\n",
+ "4000\n",
+ "3200\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file