Python for Data Analysts: Methods & Tools
{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "# Game Assignment Starter Code\n", "\n", "The purpose of this code is to demonstrate how to construct a structure based on a game map. In this starter code, we will assume that we have three rooms on our game map. The assignment requirements also specify that we have a fail function. Therefore, we will be creating a simple skeleton containing the following elements:\n", "* room_1\n", "* room_2\n", "* room_3\n", "* fail\n", "\n", "Our map can be visualized as follows:\n", "<br><br>\n", "\n", "~~~\n", " room_1 --> room_2 --> room_3 (win)\n", " | |\n", " `----------`------> fail\n", "~~~\n", "\n", "<br>\n", "\n", "## Part 1: Building up one room at a time (no fail function)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false }, "outputs": [], "source": [ "#########################################################\n", "# Constructing room_1 and calling it to start the game\n", "#########################################################\n", "\n", "def room_1():\n", " print(\"You're in room_1!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", "\n", "room_1() # This starts the game" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "<hr style=\"height:.9px;border:none;color:#333;background-color:#333;\" />" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false }, "outputs": [], "source": [ "#########################################################\n", "# Adding room_2 and linking it to room_1\n", "#########################################################\n", "\n", "def room_1():\n", " print(\"You're in room_1!\\n\")\n", " input('<Press any key to continue>\\n')\n", "\n", " room_2() # This moves us into room_2\n", "\n", "\n", "def room_2():\n", " print(\"You're in room_2!\\n\")\n", " input('<Press any key to continue>\\n')\n", "\n", " \n", "room_1() # Calling the first function in our map will start our game" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "<hr style=\"height:.9px;border:none;color:#333;background-color:#333;\" />" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false }, "outputs": [], "source": [ "#########################################################\n", "# Adding room_3 and linking it to room_2\n", "#########################################################\n", "\n", "def room_1():\n", " print(\"You're in room_1!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " room_2() # This moves us into room_2\n", "\n", "\n", "\n", "def room_2():\n", " print(\"You're in room_2!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " room_3() # This moves us into room_3\n", "\n", "\n", "\n", "def room_3():\n", " print(\"You're in room_3! You win!\\n\")\n", " input('<Press any key to exit>\\n')\n", "\n", "room_1() # Calling the first function in our map will start our game" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "<hr style=\"height:.9px;border:none;color:#333;background-color:#333;\" />\n", "\n", "<br>\n", "\n", "<h2>Part 2: Adding in a fail function and ways to fail</h2>" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false }, "outputs": [], "source": [ "def room_1():\n", " print(\"You're in room_1!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " print(\"Press 1 to go to room_2.\")\n", " print(\"Press 2 to fail.\")\n", " \n", " choice = input(\"> \")\n", " \n", " if choice == '1':\n", " room_2() # This moves us into room_2\n", "\n", " elif choice == '2':\n", " fail() # This moves us into fail\n", " \n", " else:\n", " print(\"Invalid entry. Please try again.\\n\")\n", " room_1() # Brings us back to the beginning of room_1 to try again\n", " \n", "\n", "\n", "def room_2():\n", " print(\"You're in room_2!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " print(\"Press 1 to go to room_3.\")\n", " print(\"Press 2 to fail.\")\n", " \n", " choice = input(\"> \")\n", " \n", " if choice == '1':\n", " room_3() # This moves us into room_2\n", "\n", " elif choice == '2':\n", " fail() # This moves us into fail\n", " \n", " else:\n", " print(\"Invalid entry. Please try again.\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " room_2() # Brings us back to the beginning of room_1 to try again\n", "\n", "\n", "\n", "def room_3():\n", " print(\"You're in room_3! You win!\\n\")\n", " input('<Press any key to exit>\\n')\n", "\n", "\n", "\n", "def fail():\n", " print(\"You've failed, but thanks for playing!\")\n", " input('<Press any key to exit>\\n')\n", "\n", "\n", "room_1() # EVERYTHING goes before this clause\n" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "<hr style=\"height:.9px;border:none;color:#333;background-color:#333;\" />\n", "\n", "<br>\n", "\n", "<h2>Part 3: Adding more functionality to the game</h2>\n", "Let's update our game as follows:\n", "\n", "* room_1\n", " * nested conditional\n", "* room_2\n", "* room_3\n", " * while loop\n", "* fail\n", "\n", "Our game map can be visualized as follows:\n", "<br><br>\n", "\n", "~~~\n", " room_1 <--> room_2 <--> room_3 (win)\n", " *nc | | *w\n", " `----------`------> fail\n", "~~~\n", "\n", "<br>" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "deletable": false, "editable": false, "scrolled": true }, "outputs": [], "source": [ "## Tip ##\n", "# make sure to make ample comments throughout your code\n", "\n", "\n", "def room_1():\n", " print(\"You're in room_1!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " print(\"Press 1 to go to room_2.\")\n", " print(\"Press 2 to fail.\")\n", " \n", " choice = input(\"> \")\n", " \n", " if choice == '1':\n", " print(\"Then you must answer this question.\\n\")\n", " \n", " print( \n", "\"\"\"\n", "What's bigger, an elephant or the moon?\n", "1) an elephant\n", "2) the moon\n", " \n", "\"\"\")\n", " \n", " choice = input(\"> \")\n", " \n", " # Start of nested conditional\n", " if choice == '1':\n", " print(\"That's incorrect.\")\n", " \n", " fail()\n", " \n", " \n", " \n", " elif choice =='2':\n", " print(\"That's correct! Please enjoy room_2!\")\n", " input('<Press any key to continue>\\n')\n", " \n", " room_2()\n", " \n", " # End of nested conditional\n", " \n", " \n", " elif choice == '2':\n", " fail()\n", " \n", " else:\n", " print(\"Invalid entry. Please try again.\\n\")\n", " input('<Press any key to continue>\\n')\n", " room_1()\n", " \n", "\n", "\n", "def room_2():\n", " print(\"You're in room_2!\\n\")\n", " input('<Press any key to continue>\\n')\n", " \n", " print(\"Press 1 to go to room_3.\")\n", " print(\"Press 2 to fail.\")\n", " \n", " choice = input(\"> \")\n", " \n", " if choice == '1':\n", " room_3()\n", "\n", " elif choice == '2':\n", " fail()\n", " \n", " else:\n", " print(\"Invalid entry. Please try again.\\n\")\n", " room_2()\n", "\n", "\n", "\n", "def room_3():\n", " print(\"You're in room_3!\\n\")\n", " print(\"All you have to do to win is press any key three times.\\n\")\n", " \n", " presses = 3\n", " \n", " while presses > 0:\n", " input('<Press any key>\\n')\n", " presses -= 1\n", " \n", " print(\"You win!\")\n", "\n", "\n", "\n", "def fail():\n", " print(\"You've failed, but thanks for playing!\")\n", " input('<Press any key to exit>\\n')\n", "\n", "\n", "room_1()" ] }, { "cell_type": "markdown", "metadata": { "deletable": false, "editable": false, "run_control": { "frozen": true } }, "source": [ "<br>" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }