diff --git a/Some Pig Homework.ipynb b/Some Pig Homework.ipynb new file mode 100644 index 0000000..76568c9 --- /dev/null +++ b/Some Pig Homework.ipynb @@ -0,0 +1,2648 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Some Pig Simulation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A player has 7 turns. A turn consists of a number of rolls of a single die. The number of rolls is decided by the player as he goes. The turn can end at the player's choosing. At any time during a turn, a roll of a 1 ends the turn and the player's total score remains the same. Each roll > 1 during a turn is added to a turn total. When the player chooses to end the turn (not having rolled a 1), the turn total is added to the total score. The objective is to get the total score to 100 in the 7 turns." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There will be a generic Player class. GP will roll once per turn, then stand(function) to end the turn. \n", + "\n", + "Three other players will be created that have different set playing strategies. One will stand when the turn total reaches 15, as 7 successful turns will result in a score of 100.\n", + "\n", + "Another will stand when the turn total reaches 20.\n", + "\n", + "The fourth player will randomly stand after 3-7 rolls. This increases his chance at a high scoring turn while occassionally playing conservatively.\n", + "\n", + "Time allowing, I will create a fifth player that will stand after rolling the same number back-to-back." + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import random\n", + "import math\n", + "import statistics as st\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sb\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class Player():\n", + " \"\"\"\n", + " Responsibilities:\n", + " - rolling the die\n", + " - choosing to roll or stand\n", + " - keep track of turn total\n", + " \"\"\"\n", + " def __init__(self):\n", + " self.turn_total = 0\n", + " \n", + " \n", + " def roll(self):\n", + " return random.randint(1, 6)\n", + " \n", + " \n", + " def stand(self):\n", + " return self.turn_total\n", + " \n", + " \n", + " def reset_turn_total(self):\n", + " self.turn_total = 0\n", + " return self.turn_total\n", + " \n", + " \n", + " def play_and_get_turn_total(self):\n", + " self.reset_turn_total()\n", + " roll = self.roll()\n", + " if roll > 1:\n", + " self.turn_total += roll\n", + " self.stand()\n", + " elif roll == 1:\n", + " return self.turn_total\n", + " else:\n", + " self.turn_total += self.roll()\n", + " return self.turn_total\n", + " \n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class Game():\n", + " \"\"\"\n", + " Responsibilities:\n", + " - keeping total score\n", + " - ending turns with 1\n", + " - ending the game at 7 turns\n", + " \"\"\"\n", + " \n", + " \n", + " def __init__(self, player):\n", + " \n", + " self.player = Player()\n", + " self.overall_score = 0\n", + " self.turns = 0 \n", + " \n", + " \n", + " def get_score_from_turn(self):\n", + " self.overall_score += player.turn_total\n", + " return self.overall_score\n", + " \n", + " \n", + " def take_turn(self):\n", + " player.play_and_get_turn_total() \n", + " self.turns += 1\n", + " return self.turns, player.turn_total\n", + " \n", + " \n", + " def play_game(self, player):\n", + " while self.turns < 7:\n", + " self.take_turn()\n", + " self.get_score_from_turn()\n", + " return self.overall_score\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Initiate Gameplay" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7 5 29\n", + "7 5 29\n", + "7 5 29\n", + "7 5 29\n", + "7 5 29\n", + "7 5 29\n" + ] + } + ], + "source": [ + "player = Player()\n", + "game = Game(player)\n", + "\n", + "\n", + "for _ in range(6):\n", + " game.play_game(player)\n", + " print(game.turns, player.turn_total, game.overall_score)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "23" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "def run_simulation_for_default_player():\n", + " \"\"\"Allows player to play 7 turns\"\"\"\n", + " player = Player()\n", + " game = Game(player)\n", + " final_score = game.play_game(player)\n", + "# print(game.turns, player.turn_total, game.overall_score)\n", + " return final_score \n", + " \n", + "run_simulation_for_default_player() \n" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class SafetyPlayer(Player):\n", + " \"\"\"Will play until turn_total reaches 15\"\"\"\n", + "\n", + " def play_and_get_turn_total(self):\n", + " self.turn_total = 0\n", + " while self.turn_total <= 15:\n", + " self.points = self.roll()\n", + " if self.points > 1:\n", + " self.turn_total += self.points\n", + " elif self.roll == 1:\n", + " self.turn_total = 0 \n", + " return self.turn_total\n" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "103" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def run_simulation_for_SafetyPlayer():\n", + " player = SafetyPlayer()\n", + " game = Game(player)\n", + " scores = []\n", + " for _ in range(6):\n", + " scores.append(player.play_and_get_turn_total())\n", + " return sum(scores)\n", + "\n", + "\n", + "run_simulation_for_SafetyPlayer()" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate n Trials for Default Player" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[20,\n", + " 30,\n", + " 28,\n", + " 22,\n", + " 28,\n", + " 17,\n", + " 18,\n", + " 28,\n", + " 16,\n", + " 24,\n", + " 20,\n", + " 36,\n", + " 22,\n", + " 33,\n", + " 13,\n", + " 24,\n", + " 27,\n", + " 34,\n", + " 31,\n", + " 22,\n", + " 21,\n", + " 28,\n", + " 22,\n", + " 20,\n", + " 19,\n", + " 16,\n", + " 35,\n", + " 14,\n", + " 26,\n", + " 33,\n", + " 25,\n", + " 28,\n", + " 19,\n", + " 26,\n", + " 21,\n", + " 26,\n", + " 15,\n", + " 28,\n", + " 26,\n", + " 23,\n", + " 20,\n", + " 26,\n", + " 22,\n", + " 24,\n", + " 27,\n", + " 30,\n", + " 28,\n", + " 24,\n", + " 25,\n", + " 16,\n", + " 19,\n", + " 28,\n", + " 25,\n", + " 25,\n", + " 24,\n", + " 21,\n", + " 16,\n", + " 27,\n", + " 34,\n", + " 27,\n", + " 27,\n", + " 21,\n", + " 17,\n", + " 28,\n", + " 21,\n", + " 23,\n", + " 22,\n", + " 19,\n", + " 27,\n", + " 23,\n", + " 17,\n", + " 19,\n", + " 30,\n", + " 24,\n", + " 17,\n", + " 19,\n", + " 25,\n", + " 27,\n", + " 25,\n", + " 22,\n", + " 28,\n", + " 21,\n", + " 18,\n", + " 21,\n", + " 31,\n", + " 23,\n", + " 23,\n", + " 26,\n", + " 21,\n", + " 25,\n", + " 26,\n", + " 18,\n", + " 22,\n", + " 29,\n", + " 23,\n", + " 15,\n", + " 22,\n", + " 18,\n", + " 24,\n", + " 15,\n", + " 23,\n", + " 24,\n", + " 8,\n", + " 27,\n", + " 24,\n", + " 17,\n", + " 22,\n", + " 18,\n", + " 21,\n", + " 24,\n", + " 24,\n", + " 27,\n", + " 29,\n", + " 17,\n", + " 25,\n", + " 27,\n", + " 22,\n", + " 25,\n", + " 15,\n", + " 26,\n", + " 24,\n", + " 12,\n", + " 18,\n", + " 15,\n", + " 28,\n", + " 29,\n", + " 25,\n", + " 19,\n", + " 31,\n", + " 30,\n", + " 23,\n", + " 29,\n", + " 13,\n", + " 18,\n", + " 15,\n", + " 33,\n", + " 21,\n", + " 21,\n", + " 27,\n", + " 29,\n", + " 18,\n", + " 21,\n", + " 30,\n", + " 22,\n", + " 29,\n", + " 17,\n", + " 19,\n", + " 15,\n", + " 24,\n", + " 23,\n", + " 16,\n", + " 20,\n", + " 26,\n", + " 20,\n", + " 25,\n", + " 28,\n", + " 27,\n", + " 21,\n", + " 27,\n", + " 19,\n", + " 22,\n", + " 20,\n", + " 25,\n", + " 22,\n", + " 20,\n", + " 26,\n", + " 27,\n", + " 34,\n", + " 23,\n", + " 26,\n", + " 20,\n", + " 20,\n", + " 22,\n", + " 21,\n", + " 22,\n", + " 29,\n", + " 17,\n", + " 17,\n", + " 29,\n", + " 17,\n", + " 25,\n", + " 25,\n", + " 22,\n", + " 22,\n", + " 23,\n", + " 32,\n", + " 24,\n", + " 27,\n", + " 25,\n", + " 23,\n", + " 27,\n", + " 29,\n", + " 24,\n", + " 20,\n", + " 23,\n", + " 21,\n", + " 21,\n", + " 20,\n", + " 26,\n", + " 19,\n", + " 27,\n", + " 31,\n", + " 19,\n", + " 32,\n", + " 27,\n", + " 34,\n", + " 30,\n", + " 22,\n", + " 20,\n", + " 14,\n", + " 25,\n", + " 31,\n", + " 24,\n", + " 31,\n", + " 19,\n", + " 23,\n", + " 7,\n", + " 26,\n", + " 28,\n", + " 18,\n", + " 30,\n", + " 27,\n", + " 26,\n", + " 21,\n", + " 29,\n", + " 25,\n", + " 8,\n", + " 36,\n", + " 24,\n", + " 37,\n", + " 26,\n", + " 15,\n", + " 32,\n", + " 17,\n", + " 10,\n", + " 23,\n", + " 31,\n", + " 18,\n", + " 24,\n", + " 22,\n", + " 19,\n", + " 25,\n", + " 23,\n", + " 29,\n", + " 17,\n", + " 20,\n", + " 11,\n", + " 21,\n", + " 29,\n", + " 29,\n", + " 27,\n", + " 29,\n", + " 27,\n", + " 14,\n", + " 23,\n", + " 23,\n", + " 32,\n", + " 23,\n", + " 21,\n", + " 27,\n", + " 18,\n", + " 25,\n", + " 12,\n", + " 18,\n", + " 17,\n", + " 22,\n", + " 29,\n", + " 26,\n", + " 19,\n", + " 25,\n", + " 23,\n", + " 27,\n", + " 13,\n", + " 20,\n", + " 21,\n", + " 23,\n", + " 21,\n", + " 14,\n", + " 24,\n", + " 22,\n", + " 21,\n", + " 21,\n", + " 22,\n", + " 29,\n", + " 25,\n", + " 16,\n", + " 27,\n", + " 36,\n", + " 19,\n", + " 20,\n", + " 28,\n", + " 15,\n", + " 22,\n", + " 20,\n", + " 33,\n", + " 13,\n", + " 29,\n", + " 26,\n", + " 29,\n", + " 27,\n", + " 24,\n", + " 20,\n", + " 21,\n", + " 25,\n", + " 15,\n", + " 26,\n", + " 33,\n", + " 13,\n", + " 24,\n", + " 24,\n", + " 26,\n", + " 28,\n", + " 11,\n", + " 25,\n", + " 20,\n", + " 27,\n", + " 19,\n", + " 28,\n", + " 17,\n", + " 22,\n", + " 30,\n", + " 22,\n", + " 20,\n", + " 22,\n", + " 26,\n", + " 29,\n", + " 18,\n", + " 18,\n", + " 18,\n", + " 22,\n", + " 17,\n", + " 20,\n", + " 18,\n", + " 24,\n", + " 26,\n", + " 32,\n", + " 28,\n", + " 15,\n", + " 29,\n", + " 30,\n", + " 31,\n", + " 29,\n", + " 25,\n", + " 31,\n", + " 9,\n", + " 24,\n", + " 23,\n", + " 26,\n", + " 23,\n", + " 17,\n", + " 31,\n", + " 24,\n", + " 18,\n", + " 31,\n", + " 29,\n", + " 30,\n", + " 26,\n", + " 26,\n", + " 25,\n", + " 20,\n", + " 20,\n", + " 24,\n", + " 32,\n", + " 24,\n", + " 29,\n", + " 24,\n", + " 27,\n", + " 16,\n", + " 26,\n", + " 27,\n", + " 23,\n", + " 19,\n", + " 21,\n", + " 31,\n", + " 28,\n", + " 32,\n", + " 18,\n", + " 21,\n", + " 24,\n", + " 29,\n", + " 25,\n", + " 19,\n", + " 21,\n", + " 26,\n", + " 25,\n", + " 25,\n", + " 25,\n", + " 29,\n", + " 19,\n", + " 26,\n", + " 23,\n", + " 17,\n", + " 26,\n", + " 20,\n", + " 28,\n", + " 28,\n", + " 19,\n", + " 27,\n", + " 29,\n", + " 27,\n", + " 20,\n", + " 23,\n", + " 25,\n", + " 19,\n", + " 23,\n", + " 27,\n", + " 13,\n", + " 25,\n", + " 24,\n", + " 30,\n", + " 21,\n", + " 21,\n", + " 5,\n", + " 27,\n", + " 19,\n", + " 17,\n", + " 31,\n", + " 27,\n", + " 24,\n", + " 24,\n", + " 26,\n", + " 21,\n", + " 18,\n", + " 22,\n", + " 24,\n", + " 19,\n", + " 25,\n", + " 18,\n", + " 29,\n", + " 31,\n", + " 17,\n", + " 34,\n", + " 15,\n", + " 31,\n", + " 23,\n", + " 23,\n", + " 28,\n", + " 31,\n", + " 28,\n", + " 20,\n", + " 19,\n", + " 27,\n", + " 14,\n", + " 22,\n", + " 18,\n", + " 28,\n", + " 22,\n", + " 26,\n", + " 20,\n", + " 17,\n", + " 20,\n", + " 17,\n", + " 24,\n", + " 27,\n", + " 28,\n", + " 26,\n", + " 15,\n", + " 21,\n", + " 24,\n", + " 20,\n", + " 23,\n", + " 33,\n", + " 31,\n", + " 20,\n", + " 26,\n", + " 18,\n", + " 23,\n", + " 25,\n", + " 32,\n", + " 20,\n", + " 25,\n", + " 28,\n", + " 34,\n", + " 30,\n", + " 27,\n", + " 20,\n", + " 27,\n", + " 26,\n", + " 27,\n", + " 21,\n", + " 25,\n", + " 23,\n", + " 21,\n", + " 18,\n", + " 14,\n", + " 17,\n", + " 15,\n", + " 19,\n", + " 22,\n", + " 27,\n", + " 18,\n", + " 22,\n", + " 23,\n", + " 18,\n", + " 26,\n", + " 27,\n", + " 29,\n", + " 22,\n", + " 22,\n", + " 24,\n", + " 29,\n", + " 20,\n", + " 24,\n", + " 20,\n", + " 30,\n", + " 15,\n", + " 27,\n", + " 28,\n", + " 30,\n", + " 27,\n", + " 30,\n", + " 25,\n", + " 22,\n", + " 21,\n", + " 21,\n", + " 25,\n", + " 25,\n", + " 28,\n", + " 18,\n", + " 31,\n", + " 20,\n", + " 25,\n", + " 23,\n", + " 22,\n", + " 18,\n", + " 30,\n", + " 25,\n", + " 27,\n", + " 27,\n", + " 25,\n", + " 16,\n", + " 29,\n", + " 35,\n", + " 20,\n", + " 23,\n", + " 21,\n", + " 25,\n", + " 28,\n", + " 22,\n", + " 29,\n", + " 27,\n", + " 23,\n", + " 26,\n", + " 19,\n", + " 14,\n", + " 17,\n", + " 28,\n", + " 23,\n", + " 24,\n", + " 27,\n", + " 16,\n", + " 23,\n", + " 24,\n", + " 24,\n", + " 27,\n", + " 19,\n", + " 17,\n", + " 26,\n", + " 30,\n", + " 29,\n", + " 21,\n", + " 22,\n", + " 26,\n", + " 28,\n", + " 24,\n", + " 24,\n", + " 30,\n", + " 24,\n", + " 19,\n", + " 25,\n", + " 22,\n", + " 22,\n", + " 20,\n", + " 15,\n", + " 21,\n", + " 17,\n", + " 19,\n", + " 18,\n", + " 28,\n", + " 25,\n", + " 21,\n", + " 22,\n", + " 30,\n", + " 25,\n", + " 29,\n", + " 27,\n", + " 25,\n", + " 26,\n", + " 25,\n", + " 17,\n", + " 24,\n", + " 26,\n", + " 31,\n", + " 27,\n", + " 17,\n", + " 23,\n", + " 16,\n", + " 27,\n", + " 20,\n", + " 26,\n", + " 22,\n", + " 13,\n", + " 27,\n", + " 20,\n", + " 23,\n", + " 28,\n", + " 27,\n", + " 29,\n", + " 33,\n", + " 29,\n", + " 22,\n", + " 27,\n", + " 16,\n", + " 30,\n", + " 19,\n", + " 27,\n", + " 27,\n", + " 27,\n", + " 20,\n", + " 24,\n", + " 19,\n", + " 24,\n", + " 20,\n", + " 26,\n", + " 19,\n", + " 23,\n", + " 18,\n", + " 20,\n", + " 20,\n", + " 29,\n", + " 28,\n", + " 14,\n", + " 34,\n", + " 26,\n", + " 31,\n", + " 20,\n", + " 20,\n", + " 26,\n", + " 26,\n", + " 15,\n", + " 26,\n", + " 18,\n", + " 21,\n", + " 17,\n", + " 27,\n", + " 23,\n", + " 15,\n", + " 11,\n", + " 20,\n", + " 20,\n", + " 15,\n", + " 25,\n", + " 16,\n", + " 30,\n", + " 18,\n", + " 22,\n", + " 29,\n", + " 27,\n", + " 25,\n", + " 17,\n", + " 15,\n", + " 27,\n", + " 36,\n", + " 26,\n", + " 23,\n", + " 25,\n", + " 21,\n", + " 21,\n", + " 32,\n", + " 15,\n", + " 29,\n", + " 14,\n", + " 25,\n", + " 21,\n", + " 23,\n", + " 25,\n", + " 17,\n", + " 22,\n", + " 27,\n", + " 16,\n", + " 26,\n", + " 20,\n", + " 20,\n", + " 24,\n", + " 21,\n", + " 27,\n", + " 28,\n", + " 18,\n", + " 26,\n", + " 12,\n", + " 30,\n", + " 24,\n", + " 29,\n", + " 23,\n", + " 30,\n", + " 19,\n", + " 11,\n", + " 27,\n", + " 20,\n", + " 24,\n", + " 22,\n", + " 24,\n", + " 22,\n", + " 31,\n", + " 24,\n", + " 21,\n", + " 25,\n", + " 24,\n", + " 20,\n", + " 20,\n", + " 32,\n", + " 20,\n", + " 20,\n", + " 22,\n", + " 29,\n", + " 18,\n", + " 21,\n", + " 32,\n", + " 30,\n", + " 25,\n", + " 23,\n", + " 23,\n", + " 29,\n", + " 20,\n", + " 29,\n", + " 24,\n", + " 25,\n", + " 17,\n", + " 28,\n", + " 30,\n", + " 21,\n", + " 19,\n", + " 20,\n", + " 18,\n", + " 21,\n", + " 22,\n", + " 21,\n", + " 20,\n", + " 32,\n", + " 18,\n", + " 23,\n", + " 22,\n", + " 17,\n", + " 32,\n", + " 20,\n", + " 21,\n", + " 32,\n", + " 21,\n", + " 26,\n", + " 22,\n", + " 30,\n", + " 24,\n", + " 18,\n", + " 18,\n", + " 29,\n", + " 29,\n", + " 25,\n", + " 25,\n", + " 28,\n", + " 21,\n", + " 25,\n", + " 25,\n", + " 19,\n", + " 28,\n", + " 16,\n", + " 14,\n", + " 31,\n", + " 25,\n", + " 21,\n", + " 17,\n", + " 19,\n", + " 13,\n", + " 19,\n", + " 22,\n", + " 25,\n", + " 25,\n", + " 15,\n", + " 35,\n", + " 19,\n", + " 21,\n", + " 30,\n", + " 22,\n", + " 17,\n", + " 25,\n", + " 14,\n", + " 24,\n", + " 25,\n", + " 32,\n", + " 29,\n", + " 37,\n", + " 18,\n", + " 34,\n", + " 25,\n", + " 33,\n", + " 25,\n", + " 18,\n", + " 23,\n", + " 27,\n", + " 20,\n", + " 31,\n", + " 31,\n", + " 32,\n", + " 27,\n", + " 25,\n", + " 29,\n", + " 27,\n", + " 24,\n", + " 15,\n", + " 22,\n", + " 25,\n", + " 26,\n", + " 30,\n", + " 18,\n", + " 20,\n", + " 14,\n", + " 22,\n", + " 34,\n", + " 16,\n", + " 25,\n", + " 28,\n", + " 16,\n", + " 23,\n", + " 24,\n", + " 22,\n", + " 27,\n", + " 24,\n", + " 25,\n", + " 28,\n", + " 18,\n", + " 30,\n", + " 22,\n", + " 30,\n", + " 26,\n", + " 14,\n", + " 27,\n", + " 18,\n", + " 30,\n", + " 18,\n", + " 27,\n", + " 17,\n", + " 26,\n", + " 24,\n", + " 15,\n", + " 15,\n", + " 26,\n", + " 30,\n", + " 28,\n", + " 15,\n", + " 18,\n", + " 23,\n", + " 27,\n", + " 23,\n", + " 19,\n", + " 22,\n", + " 27,\n", + " 28,\n", + " 27,\n", + " 22,\n", + " 24,\n", + " 27,\n", + " 25,\n", + " 19,\n", + " 25,\n", + " 22,\n", + " 20,\n", + " 27,\n", + " 23,\n", + " 24,\n", + " 20,\n", + " 20,\n", + " 25,\n", + " 23,\n", + " 26,\n", + " 29,\n", + " 26,\n", + " 23,\n", + " 30,\n", + " 19,\n", + " 22,\n", + " 25,\n", + " 26,\n", + " 20,\n", + " 34,\n", + " 22,\n", + " 28,\n", + " 20,\n", + " 26,\n", + " 27,\n", + " 24,\n", + " 26,\n", + " 17,\n", + " 18,\n", + " 22,\n", + " 13,\n", + " 32,\n", + " 29,\n", + " 34,\n", + " 20,\n", + " 21,\n", + " 20,\n", + " 26,\n", + " 20,\n", + " 19,\n", + " 25,\n", + " 24,\n", + " 24,\n", + " 25,\n", + " 20,\n", + " 13,\n", + " 28,\n", + " 14,\n", + " 16,\n", + " 10,\n", + " 21,\n", + " 32,\n", + " 21,\n", + " 16,\n", + " 27,\n", + " 22,\n", + " 30,\n", + " 12,\n", + " 24,\n", + " 30,\n", + " 29,\n", + " 20,\n", + " 29,\n", + " 28,\n", + " 32,\n", + " 20,\n", + " 27,\n", + " 32,\n", + " 23,\n", + " 26,\n", + " 28,\n", + " 25,\n", + " 24,\n", + " 19,\n", + " 25,\n", + " 13,\n", + " 22,\n", + " 26,\n", + " 26,\n", + " 18,\n", + " 20,\n", + " 25,\n", + " 28,\n", + " 16,\n", + " 19,\n", + " 18,\n", + " 27,\n", + " 25,\n", + " 27,\n", + " 28,\n", + " 27,\n", + " 17,\n", + " 23,\n", + " 19,\n", + " 13,\n", + " 31,\n", + " 29,\n", + " 18,\n", + " 21,\n", + " 20,\n", + " 19,\n", + " 29,\n", + " 30,\n", + " 26,\n", + " 28,\n", + " 15,\n", + " 15,\n", + " 17,\n", + " 28,\n", + " 30,\n", + " 20,\n", + " 22,\n", + " 23,\n", + " 35,\n", + " 26,\n", + " 21,\n", + " 27,\n", + " 30,\n", + " 21,\n", + " 22,\n", + " 21,\n", + " 27,\n", + " 28,\n", + " 25,\n", + " 21,\n", + " 22,\n", + " 8,\n", + " 24,\n", + " 29,\n", + " 17,\n", + " 19,\n", + " 24,\n", + " 29,\n", + " 30,\n", + " 31,\n", + " 22,\n", + " 21]" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def run_simulation_for_trials(n=100):\n", + " results = [run_simulation_for_default_player() for _ in range(n-1)]\n", + " n += 1\n", + " return results\n", + "\n", + "run_simulation_for_trials(1000)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "default_player_results = run_simulation_for_trials(1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Histogram of Scores While Rolling Once per Turn" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "default_player_avg = st.mean(default_player_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plt.plot(default_player_results)\n", + "plt.hist(default_player_results)\n", + "plt.ylabel(\"Games\")\n", + "plt.xlabel(\"Scores\")\n", + "plt.axvline(default_player_avg, color = 'r')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Generate n Trials for Default Player" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[112,\n", + " 107,\n", + " 107,\n", + " 112,\n", + " 101,\n", + " 102,\n", + " 110,\n", + " 107,\n", + " 102,\n", + " 106,\n", + " 104,\n", + " 106,\n", + " 110,\n", + " 103,\n", + " 104,\n", + " 105,\n", + " 105,\n", + " 106,\n", + " 107,\n", + " 104,\n", + " 107,\n", + " 104,\n", + " 115,\n", + " 105,\n", + " 99,\n", + " 99,\n", + " 105,\n", + " 107,\n", + " 111,\n", + " 113,\n", + " 105,\n", + " 112,\n", + " 102,\n", + " 106,\n", + " 108,\n", + " 112,\n", + " 105,\n", + " 107,\n", + " 102,\n", + " 108,\n", + " 112,\n", + " 103,\n", + " 107,\n", + " 101,\n", + " 110,\n", + " 106,\n", + " 105,\n", + " 112,\n", + " 106,\n", + " 107,\n", + " 104,\n", + " 106,\n", + " 101,\n", + " 101,\n", + " 116,\n", + " 104,\n", + " 110,\n", + " 104,\n", + " 108,\n", + " 109,\n", + " 112,\n", + " 100,\n", + " 101,\n", + " 105,\n", + " 100,\n", + " 103,\n", + " 105,\n", + " 103,\n", + " 110,\n", + " 108,\n", + " 104,\n", + " 105,\n", + " 103,\n", + " 108,\n", + " 111,\n", + " 109,\n", + " 103,\n", + " 114,\n", + " 99,\n", + " 109,\n", + " 105,\n", + " 112,\n", + " 113,\n", + " 105,\n", + " 108,\n", + " 105,\n", + " 112,\n", + " 107,\n", + " 105,\n", + " 111,\n", + " 107,\n", + " 106,\n", + " 106,\n", + " 101,\n", + " 101,\n", + " 104,\n", + " 106,\n", + " 108,\n", + " 102,\n", + " 108,\n", + " 103,\n", + " 102,\n", + " 104,\n", + " 107,\n", + " 101,\n", + " 104,\n", + " 105,\n", + " 103,\n", + " 104,\n", + " 106,\n", + " 103,\n", + " 107,\n", + " 111,\n", + " 106,\n", + " 110,\n", + " 105,\n", + " 114,\n", + " 113,\n", + " 102,\n", + " 107,\n", + " 107,\n", + " 102,\n", + " 109,\n", + " 100,\n", + " 106,\n", + " 114,\n", + " 113,\n", + " 106,\n", + " 101,\n", + " 109,\n", + " 106,\n", + " 112,\n", + " 113,\n", + " 114,\n", + " 104,\n", + " 116,\n", + " 107,\n", + " 106,\n", + " 104,\n", + " 104,\n", + " 104,\n", + " 105,\n", + " 108,\n", + " 100,\n", + " 107,\n", + " 108,\n", + " 102,\n", + " 104,\n", + " 108,\n", + " 106,\n", + " 105,\n", + " 109,\n", + " 110,\n", + " 108,\n", + " 108,\n", + " 113,\n", + " 101,\n", + " 103,\n", + " 109,\n", + " 105,\n", + " 102,\n", + " 104,\n", + " 105,\n", + " 107,\n", + " 102,\n", + " 105,\n", + " 105,\n", + " 113,\n", + " 113,\n", + " 107,\n", + " 110,\n", + " 105,\n", + " 103,\n", + " 106,\n", + " 101,\n", + " 101,\n", + " 101,\n", + " 104,\n", + " 103,\n", + " 101,\n", + " 108,\n", + " 113,\n", + " 106,\n", + " 107,\n", + " 100,\n", + " 112,\n", + " 105,\n", + " 103,\n", + " 109,\n", + " 111,\n", + " 101,\n", + " 107,\n", + " 103,\n", + " 110,\n", + " 107,\n", + " 104,\n", + " 105,\n", + " 105,\n", + " 99,\n", + " 106,\n", + " 111,\n", + " 103,\n", + " 114,\n", + " 111,\n", + " 109,\n", + " 103,\n", + " 106,\n", + " 108,\n", + " 111,\n", + " 101,\n", + " 113,\n", + " 103,\n", + " 110,\n", + " 107,\n", + " 105,\n", + " 103,\n", + " 104,\n", + " 100,\n", + " 116,\n", + " 113,\n", + " 109,\n", + " 119,\n", + " 108,\n", + " 108,\n", + " 104,\n", + " 106,\n", + " 105,\n", + " 111,\n", + " 110,\n", + " 107,\n", + " 108,\n", + " 104,\n", + " 110,\n", + " 102,\n", + " 109,\n", + " 109,\n", + " 107,\n", + " 109,\n", + " 120,\n", + " 110,\n", + " 109,\n", + " 103,\n", + " 103,\n", + " 107,\n", + " 101,\n", + " 112,\n", + " 110,\n", + " 107,\n", + " 104,\n", + " 107,\n", + " 114,\n", + " 104,\n", + " 104,\n", + " 101,\n", + " 103,\n", + " 110,\n", + " 105,\n", + " 106,\n", + " 110,\n", + " 105,\n", + " 107,\n", + " 111,\n", + " 109,\n", + " 106,\n", + " 103,\n", + " 104,\n", + " 103,\n", + " 104,\n", + " 108,\n", + " 110,\n", + " 107,\n", + " 105,\n", + " 105,\n", + " 104,\n", + " 109,\n", + " 111,\n", + " 104,\n", + " 104,\n", + " 105,\n", + " 107,\n", + " 105,\n", + " 114,\n", + " 103,\n", + " 103,\n", + " 105,\n", + " 105,\n", + " 109,\n", + " 111,\n", + " 110,\n", + " 109,\n", + " 102,\n", + " 116,\n", + " 103,\n", + " 106,\n", + " 103,\n", + " 106,\n", + " 104,\n", + " 107,\n", + " 110,\n", + " 103,\n", + " 101,\n", + " 102,\n", + " 113,\n", + " 106,\n", + " 105,\n", + " 108,\n", + " 101,\n", + " 112,\n", + " 104,\n", + " 112,\n", + " 105,\n", + " 102,\n", + " 108,\n", + " 102,\n", + " 103,\n", + " 111,\n", + " 104,\n", + " 108,\n", + " 109,\n", + " 107,\n", + " 106,\n", + " 107,\n", + " 103,\n", + " 100,\n", + " 114,\n", + " 107,\n", + " 105,\n", + " 101,\n", + " 107,\n", + " 111,\n", + " 104,\n", + " 103,\n", + " 104,\n", + " 108,\n", + " 109,\n", + " 104,\n", + " 110,\n", + " 104,\n", + " 102,\n", + " 106,\n", + " 99,\n", + " 105,\n", + " 113,\n", + " 113,\n", + " 105,\n", + " 104,\n", + " 104,\n", + " 104,\n", + " 104,\n", + " 101,\n", + " 107,\n", + " 105,\n", + " 113,\n", + " 104,\n", + " 101,\n", + " 108,\n", + " 106,\n", + " 110,\n", + " 113,\n", + " 107,\n", + " 115,\n", + " 100,\n", + " 110,\n", + " 106,\n", + " 102,\n", + " 110,\n", + " 107,\n", + " 110,\n", + " 104,\n", + " 102,\n", + " 105,\n", + " 112,\n", + " 111,\n", + " 104,\n", + " 104,\n", + " 108,\n", + " 102,\n", + " 112,\n", + " 115,\n", + " 104,\n", + " 110,\n", + " 109,\n", + " 108,\n", + " 103,\n", + " 107,\n", + " 112,\n", + " 105,\n", + " 109,\n", + " 110,\n", + " 103,\n", + " 107,\n", + " 109,\n", + " 113,\n", + " 106,\n", + " 100,\n", + " 100,\n", + " 104,\n", + " 104,\n", + " 107,\n", + " 105,\n", + " 103,\n", + " 104,\n", + " 107,\n", + " 107,\n", + " 110,\n", + " 97,\n", + " 103,\n", + " 106,\n", + " 101,\n", + " 109,\n", + " 110,\n", + " 102,\n", + " 105,\n", + " 106,\n", + " 107,\n", + " 108,\n", + " 106,\n", + " 102,\n", + " 114,\n", + " 110,\n", + " 105,\n", + " 104,\n", + " 105,\n", + " 109,\n", + " 100,\n", + " 106,\n", + " 100,\n", + " 102,\n", + " 116,\n", + " 99,\n", + " 108,\n", + " 111,\n", + " 102,\n", + " 113,\n", + " 107,\n", + " 98,\n", + " 103,\n", + " 100,\n", + " 108,\n", + " 105,\n", + " 107,\n", + " 105,\n", + " 103,\n", + " 108,\n", + " 108,\n", + " 111,\n", + " 102,\n", + " 110,\n", + " 107,\n", + " 106,\n", + " 109,\n", + " 107,\n", + " 107,\n", + " 103,\n", + " 106,\n", + " 106,\n", + " 113,\n", + " 107,\n", + " 105,\n", + " 106,\n", + " 103,\n", + " 110,\n", + " 101,\n", + " 102,\n", + " 102,\n", + " 107,\n", + " 109,\n", + " 108,\n", + " 102,\n", + " 104,\n", + " 107,\n", + " 101,\n", + " 103,\n", + " 105,\n", + " 101,\n", + " 102,\n", + " 114,\n", + " 106,\n", + " 106,\n", + " 108,\n", + " 103,\n", + " 109,\n", + " 101,\n", + " 108,\n", + " 112,\n", + " 103,\n", + " 107,\n", + " 103,\n", + " 107,\n", + " 103,\n", + " 101,\n", + " 107,\n", + " 108,\n", + " 108,\n", + " 107,\n", + " 107,\n", + " 102,\n", + " 112,\n", + " 112,\n", + " 105,\n", + " 109,\n", + " 108,\n", + " 103,\n", + " 109,\n", + " 104,\n", + " 110,\n", + " 111,\n", + " 111,\n", + " 106,\n", + " 102,\n", + " 99,\n", + " 106,\n", + " 107,\n", + " 101,\n", + " 107,\n", + " 103,\n", + " 110,\n", + " 102,\n", + " 113,\n", + " 117,\n", + " 105,\n", + " 110,\n", + " 112,\n", + " 105,\n", + " 106,\n", + " 108,\n", + " 107,\n", + " 101,\n", + " 107,\n", + " 102,\n", + " 110,\n", + " 105,\n", + " 115,\n", + " 103,\n", + " 105,\n", + " 106,\n", + " 101,\n", + " 107,\n", + " 103,\n", + " 106,\n", + " 104,\n", + " 111,\n", + " 104,\n", + " 105,\n", + " 106,\n", + " 104,\n", + " 110,\n", + " 105,\n", + " 110,\n", + " 107,\n", + " 109,\n", + " 105,\n", + " 106,\n", + " 104,\n", + " 111,\n", + " 107,\n", + " 109,\n", + " 109,\n", + " 110,\n", + " 109,\n", + " 108,\n", + " 109,\n", + " 108,\n", + " 110,\n", + " 106,\n", + " 102,\n", + " 110,\n", + " 108,\n", + " 106,\n", + " 105,\n", + " 107,\n", + " 104,\n", + " 109,\n", + " 106,\n", + " 107,\n", + " 104,\n", + " 109,\n", + " 112,\n", + " 114,\n", + " 106,\n", + " 109,\n", + " 109,\n", + " 105,\n", + " 105,\n", + " 116,\n", + " 111,\n", + " 106,\n", + " 116,\n", + " 108,\n", + " 109,\n", + " 102,\n", + " 108,\n", + " 107,\n", + " 103,\n", + " 115,\n", + " 106,\n", + " 107,\n", + " 106,\n", + " 104,\n", + " 103,\n", + " 110,\n", + " 103,\n", + " 104,\n", + " 104,\n", + " 109,\n", + " 105,\n", + " 106,\n", + " 104,\n", + " 109,\n", + " 109,\n", + " 104,\n", + " 105,\n", + " 104,\n", + " 104,\n", + " 102,\n", + " 105,\n", + " 105,\n", + " 107,\n", + " 102,\n", + " 111,\n", + " 104,\n", + " 102,\n", + " 104,\n", + " 106,\n", + " 108,\n", + " 109,\n", + " 107,\n", + " 100,\n", + " 102,\n", + " 110,\n", + " 105,\n", + " 109,\n", + " 107,\n", + " 108,\n", + " 110,\n", + " 105,\n", + " 108,\n", + " 110,\n", + " 108,\n", + " 107,\n", + " 106,\n", + " 101,\n", + " 106,\n", + " 112,\n", + " 104,\n", + " 108,\n", + " 103,\n", + " 109,\n", + " 107,\n", + " 110,\n", + " 103,\n", + " 103,\n", + " 102,\n", + " 106,\n", + " 105,\n", + " 108,\n", + " 110,\n", + " 112,\n", + " 105,\n", + " 107,\n", + " 108,\n", + " 110,\n", + " 112,\n", + " 109,\n", + " 112,\n", + " 112,\n", + " 112,\n", + " 106,\n", + " 111,\n", + " 105,\n", + " 110,\n", + " 106,\n", + " 100,\n", + " 105,\n", + " 104,\n", + " 108,\n", + " 105,\n", + " 107,\n", + " 104,\n", + " 109,\n", + " 109,\n", + " 107,\n", + " 106,\n", + " 108,\n", + " 110,\n", + " 102,\n", + " 115,\n", + " 110,\n", + " 110,\n", + " 105,\n", + " 103,\n", + " 109,\n", + " 107,\n", + " 111,\n", + " 108,\n", + " 105,\n", + " 112,\n", + " 101,\n", + " 102,\n", + " 102,\n", + " 100,\n", + " 101,\n", + " 105,\n", + " 106,\n", + " 105,\n", + " 103,\n", + " 101,\n", + " 102,\n", + " 111,\n", + " 107,\n", + " 108,\n", + " 109,\n", + " 112,\n", + " 108,\n", + " 108,\n", + " 112,\n", + " 101,\n", + " 105,\n", + " 102,\n", + " 107,\n", + " 107,\n", + " 106,\n", + " 105,\n", + " 108,\n", + " 102,\n", + " 109,\n", + " 106,\n", + " 111,\n", + " 115,\n", + " 107,\n", + " 102,\n", + " 109,\n", + " 108,\n", + " 109,\n", + " 113,\n", + " 110,\n", + " 105,\n", + " 104,\n", + " 108,\n", + " 103,\n", + " 104,\n", + " 110,\n", + " 101,\n", + " 103,\n", + " 101,\n", + " 105,\n", + " 104,\n", + " 107,\n", + " 111,\n", + " 108,\n", + " 110,\n", + " 107,\n", + " 105,\n", + " 101,\n", + " 101,\n", + " 103,\n", + " 108,\n", + " 105,\n", + " 110,\n", + " 108,\n", + " 107,\n", + " 106,\n", + " 105,\n", + " 110,\n", + " 100,\n", + " 106,\n", + " 106,\n", + " 110,\n", + " 110,\n", + " 110,\n", + " 109,\n", + " 108,\n", + " 110,\n", + " 112,\n", + " 109,\n", + " 102,\n", + " 110,\n", + " 112,\n", + " 105,\n", + " 106,\n", + " 109,\n", + " 110,\n", + " 107,\n", + " 110,\n", + " 109,\n", + " 104,\n", + " 108,\n", + " 103,\n", + " 105,\n", + " 99,\n", + " 103,\n", + " 110,\n", + " 104,\n", + " 112,\n", + " 109,\n", + " 108,\n", + " 104,\n", + " 105,\n", + " 105,\n", + " 104,\n", + " 105,\n", + " 103,\n", + " 109,\n", + " 105,\n", + " 105,\n", + " 105,\n", + " 107,\n", + " 109,\n", + " 108,\n", + " 107,\n", + " 100,\n", + " 108,\n", + " 106,\n", + " 102,\n", + " 115,\n", + " 106,\n", + " 114,\n", + " 107,\n", + " 110,\n", + " 102,\n", + " 106,\n", + " 111,\n", + " 107,\n", + " 101,\n", + " 105,\n", + " 100,\n", + " 105,\n", + " 109,\n", + " 108,\n", + " 104,\n", + " 102,\n", + " 109,\n", + " 112,\n", + " 105,\n", + " 99,\n", + " 108,\n", + " 111,\n", + " 104,\n", + " 110,\n", + " 103,\n", + " 103,\n", + " 110,\n", + " 110,\n", + " 113,\n", + " 110,\n", + " 110,\n", + " 109,\n", + " 113,\n", + " 112,\n", + " 104,\n", + " 103,\n", + " 108,\n", + " 111,\n", + " 101,\n", + " 108,\n", + " 106,\n", + " 114,\n", + " 104,\n", + " 107,\n", + " 109,\n", + " 106,\n", + " 114,\n", + " 102,\n", + " 105,\n", + " 109,\n", + " 114,\n", + " 106,\n", + " 110,\n", + " 104,\n", + " 103,\n", + " 106,\n", + " 104,\n", + " 105,\n", + " 108,\n", + " 111,\n", + " 111,\n", + " 105,\n", + " 106,\n", + " 107,\n", + " 100,\n", + " 99,\n", + " 104,\n", + " 108,\n", + " 110,\n", + " 110,\n", + " 112,\n", + " 107,\n", + " 105,\n", + " 104,\n", + " 106,\n", + " 111,\n", + " 101,\n", + " 99,\n", + " 110,\n", + " 104,\n", + " 103,\n", + " 102,\n", + " 108,\n", + " 105,\n", + " 106,\n", + " 106,\n", + " 107,\n", + " 101,\n", + " 106,\n", + " 104,\n", + " 101,\n", + " 110,\n", + " 106,\n", + " 104,\n", + " 100,\n", + " 113,\n", + " 111,\n", + " 102,\n", + " 109,\n", + " 104,\n", + " 109,\n", + " 105,\n", + " 108,\n", + " 105,\n", + " 112,\n", + " 108,\n", + " 105,\n", + " 108,\n", + " 110,\n", + " 110,\n", + " 109,\n", + " 105,\n", + " 103,\n", + " 109,\n", + " 109,\n", + " 109,\n", + " 105,\n", + " 112,\n", + " 105,\n", + " 107,\n", + " 106,\n", + " 112,\n", + " 107,\n", + " 101,\n", + " 106,\n", + " 108,\n", + " 105,\n", + " 103,\n", + " 109,\n", + " 106,\n", + " 104,\n", + " 110,\n", + " 105,\n", + " 108,\n", + " 110,\n", + " 108,\n", + " 108,\n", + " 110,\n", + " 108,\n", + " 104,\n", + " 107,\n", + " 108,\n", + " 109,\n", + " 109,\n", + " 103,\n", + " 104,\n", + " 102,\n", + " 104,\n", + " 112,\n", + " 108,\n", + " 106,\n", + " 107,\n", + " 105,\n", + " 104,\n", + " 103,\n", + " 103,\n", + " 108,\n", + " 104,\n", + " 113,\n", + " 107,\n", + " 107,\n", + " 108,\n", + " 106,\n", + " 107,\n", + " 107,\n", + " 106,\n", + " 105,\n", + " 101,\n", + " 107,\n", + " 105,\n", + " 108,\n", + " 100,\n", + " 108,\n", + " 103,\n", + " 110,\n", + " 101,\n", + " 99,\n", + " 110,\n", + " 113,\n", + " 102,\n", + " 101,\n", + " 109,\n", + " 107,\n", + " 111]" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def run_simulation_for_trials(n=1000):\n", + " results = [run_simulation_for_SafetyPlayer() for _ in range(n-1)]\n", + " n += 1\n", + " return results\n", + "\n", + "run_simulation_for_trials(1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "safety_player_results = run_simulation_for_trials(1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Line Chart of Scores While Stopping at 15 per Turn" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "safety_player_avg = st.mean(safety_player_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(safety_player_results)\n", + "plt.ylabel(\"Games\")\n", + "plt.xlabel(\"Scores\")\n", + "plt.axvline(safety_player_avg, color = 'r')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compare Default to Safety Player" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'means': [],\n", + " 'whiskers': [,\n", + " ],\n", + " 'fliers': [],\n", + " 'medians': [],\n", + " 'boxes': [],\n", + " 'caps': [,\n", + " ]}" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n6pJUkP8DJTK0kmubXVkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(default_player_results)\n", + "plt.boxplot(safety_player_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{'means': [],\n", + " 'whiskers': [,\n", + " ],\n", + " 'fliers': [],\n", + " 'medians': [],\n", + " 'boxes': [],\n", + " 'caps': [,\n", + " ]}" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(safety_player_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class TwentyPlayer(Player):\n", + " \"\"\"Will play until turn_total reaches 20\"\"\"\n", + "\n", + " def play_and_get_turn_total(self):\n", + " self.turn_total = 0\n", + " while self.turn_total <= 20:\n", + " self.points = self.roll()\n", + " if self.points > 1:\n", + " self.turn_total += self.points\n", + " elif self.roll == 1:\n", + " self.turn_total = 0 \n", + " return self.turn_total" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "139" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def run_simulation_for_TwentyPlayer():\n", + " player = TwentyPlayer()\n", + " game = Game(player)\n", + " scores = []\n", + " for i in range(6):\n", + " scores.append(player.play_and_get_turn_total())\n", + " return sum(scores)\n", + "\n", + "\n", + "run_simulation_for_TwentyPlayer()" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "class RandomPlayer(Player):\n", + " \"\"\"Will stand after 3-7 rolls\"\"\"\n", + "\n", + " def play_game():\n", + " while self.turns < random.randint(3,7):\n", + " self.take_turn()\n", + " self.get_score_from_turn()\n", + " return self.overall_score\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def run_simulation_for_default_player" + ] + } + ], + "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.4.2" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/Wk 3 Day 4 Cashier Exercise.ipynb b/Wk 3 Day 4 Cashier Exercise.ipynb new file mode 100644 index 0000000..636806b --- /dev/null +++ b/Wk 3 Day 4 Cashier Exercise.ipynb @@ -0,0 +1,609 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:17f841a3fcd974b167de333d7cecf6cf5a9ed4379231bec299752ac5cb8225bd" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import random\n", + "import numpy as np\n", + "import statistics as st" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 53 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def cust_time(*args):\n", + " if random.random() > 0.7:\n", + " return random.random() * 3 + 7\n", + " else:\n", + " return random.random() + 2" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 54 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "cust_time()" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 55, + "text": [ + "9.689008334040569" + ] + } + ], + "prompt_number": 55 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def customers(size=100):\n", + " return [cust_time() for _ in range(size)]" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 56 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "customers(100)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 57, + "text": [ + "[2.1341450764898426,\n", + " 9.614095419944844,\n", + " 2.497144125360736,\n", + " 2.2087619785155814,\n", + " 2.34497429953913,\n", + " 8.379694205053733,\n", + " 9.835314984259163,\n", + " 2.0913503889378813,\n", + " 2.2325174849000864,\n", + " 8.40539359470339,\n", + " 7.80109597041344,\n", + " 8.830526651636998,\n", + " 2.9831434912417167,\n", + " 2.182517138808354,\n", + " 9.2823264424391,\n", + " 9.316588129258903,\n", + " 7.165602720069685,\n", + " 2.168659087442798,\n", + " 2.2479926295295503,\n", + " 9.388134030618481,\n", + " 2.8622317774455017,\n", + " 9.84013524663684,\n", + " 7.245170956343255,\n", + " 2.5984820335842915,\n", + " 2.4297988497629794,\n", + " 2.7467924354010407,\n", + " 2.9783907523618653,\n", + " 2.2848637799175187,\n", + " 7.358019536495075,\n", + " 2.462465733665903,\n", + " 2.5186685667958884,\n", + " 2.597765783098215,\n", + " 2.9972210754735733,\n", + " 2.350503069667367,\n", + " 2.8133258611226615,\n", + " 2.1764141327740645,\n", + " 2.9060319977670996,\n", + " 2.8077419211171737,\n", + " 2.96946072595406,\n", + " 9.358999536308911,\n", + " 8.735195899265651,\n", + " 7.727517417615118,\n", + " 2.6183644149607197,\n", + " 7.07848440739883,\n", + " 7.732760116713413,\n", + " 2.763279815083436,\n", + " 9.753882999422132,\n", + " 2.117374773681263,\n", + " 2.4575390245558655,\n", + " 2.9699571706163232,\n", + " 2.8837931763731444,\n", + " 2.831059016866953,\n", + " 7.3849472855987415,\n", + " 2.457080037540647,\n", + " 2.8022415198098347,\n", + " 2.609165005178925,\n", + " 2.751706001460815,\n", + " 2.943088100571762,\n", + " 7.557176930560213,\n", + " 2.5520902688994846,\n", + " 7.613106615054477,\n", + " 7.9545882574036115,\n", + " 2.9488838838726936,\n", + " 2.6508671568391815,\n", + " 7.757868219607929,\n", + " 8.902833697659515,\n", + " 2.483378388121286,\n", + " 2.660614554401756,\n", + " 9.248222020363595,\n", + " 2.3615811605944756,\n", + " 8.468404449669816,\n", + " 8.307822388549258,\n", + " 2.5782787266892537,\n", + " 2.754606531913151,\n", + " 8.307593151540495,\n", + " 2.6263000098858136,\n", + " 9.633493627214277,\n", + " 2.373279045207334,\n", + " 8.515504267247215,\n", + " 7.900572800226471,\n", + " 2.7367814929129732,\n", + " 2.02386096818824,\n", + " 2.9508887885617345,\n", + " 2.7946026882888324,\n", + " 2.5064772403362965,\n", + " 2.0562020894285364,\n", + " 8.861856318881026,\n", + " 7.251307520716596,\n", + " 2.5326620676438045,\n", + " 2.9697149769955176,\n", + " 2.9719047865427988,\n", + " 2.012914988759797,\n", + " 8.300918969658301,\n", + " 2.7667463350608714,\n", + " 2.781571238188884,\n", + " 2.7930369305918785,\n", + " 2.2633039184010513,\n", + " 7.99562639412684,\n", + " 2.5126954418252168,\n", + " 2.7243438932555213]" + ] + } + ], + "prompt_number": 57 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def trial_data(trials=1000):\n", + " return np.array([customers() for _ in range(trials)])" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 71 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "trials = trial_data()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 72 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "trials.shape" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 73, + "text": [ + "(1000, 100)" + ] + } + ], + "prompt_number": 73 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "trials.sum(axis=1)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 75, + "text": [ + "array([ 410.60093034, 408.76073768, 425.83050003, 425.07423752,\n", + " 401.47353569, 414.6128877 , 415.34987174, 460.11025996,\n", + " 398.91699264, 455.5770921 , 428.59809169, 455.71994197,\n", + " 435.03009613, 434.84170424, 452.98885975, 466.81385774,\n", + " 418.92334616, 425.08206388, 452.05697932, 420.00747494,\n", + " 417.75429275, 424.57803616, 444.92721893, 444.66464097,\n", + " 387.18941193, 452.89320084, 427.01254327, 480.10210996,\n", + " 414.53420289, 430.96480081, 458.08561181, 418.74860626,\n", + " 448.7751466 , 453.61166172, 394.40042482, 430.76741788,\n", + " 463.82438211, 454.46496029, 406.71890833, 406.10786666,\n", + " 437.19347518, 433.67357677, 453.12426887, 411.10765609,\n", + " 422.29299316, 439.61165494, 416.6505348 , 440.35765231,\n", + " 427.82134626, 402.63441176, 458.87252073, 464.97819619,\n", + " 442.04418319, 466.99901107, 446.50820303, 485.31686425,\n", + " 412.50136664, 412.47714439, 387.46772206, 448.46013949,\n", + " 392.23558702, 447.82617585, 429.80166842, 420.64152117,\n", + " 416.81541846, 385.2052111 , 445.89134965, 395.25443026,\n", + " 442.15385909, 412.16590502, 463.88917817, 425.15581758,\n", + " 382.65374226, 443.47693649, 423.99812235, 413.38427777,\n", + " 439.48843263, 458.04634228, 452.90780525, 444.21282799,\n", + " 487.05674038, 435.49769574, 448.63013029, 476.30129412,\n", + " 429.28378596, 388.80573012, 400.04431764, 422.38210339,\n", + " 457.09356872, 433.80592872, 449.78817641, 411.6551811 ,\n", + " 419.86516151, 414.36139418, 403.26531487, 458.07147862,\n", + " 481.98644048, 421.35972196, 394.3422763 , 447.2583765 ,\n", + " 478.50685667, 464.53864817, 447.20883455, 485.84305621,\n", + " 447.1851881 , 451.4349228 , 400.21440832, 481.24630082,\n", + " 409.47750553, 407.01040222, 402.87557819, 438.03906885,\n", + " 496.84915551, 394.3849816 , 422.92244476, 474.58499574,\n", + " 406.18194864, 458.86817621, 453.5619838 , 420.43677366,\n", + " 403.80115645, 396.21655557, 377.86160778, 468.68200928,\n", + " 434.21216484, 427.30742061, 441.73557157, 410.30533658,\n", + " 419.70805764, 441.31142303, 419.6348168 , 416.30265455,\n", + " 403.30074361, 430.36631993, 444.77050595, 359.17489886,\n", + " 393.24245879, 431.97075079, 426.10441613, 387.40313484,\n", + " 418.91434223, 453.53291061, 441.1748317 , 411.23489245,\n", + " 505.80710372, 380.201762 , 427.22208813, 443.3869289 ,\n", + " 419.21081026, 451.94326266, 408.23175881, 400.86756295,\n", + " 436.35007548, 456.68133611, 439.65702769, 426.30285842,\n", + " 456.22503531, 456.46726344, 443.82386437, 430.90915129,\n", + " 472.80341326, 472.1442274 , 415.29734633, 464.6525246 ,\n", + " 432.05073945, 431.4441576 , 419.33913736, 388.87427704,\n", + " 489.38417931, 442.66208422, 432.40196035, 424.61124923,\n", + " 388.24897187, 409.0831269 , 448.22141829, 372.0485332 ,\n", + " 458.46899366, 363.51567087, 426.91591647, 403.50770062,\n", + " 395.61838024, 493.84399114, 488.42494191, 422.84988954,\n", + " 426.86393779, 410.86378392, 449.75176117, 455.4248582 ,\n", + " 453.7997704 , 464.02836498, 417.07123873, 438.52881199,\n", + " 413.27823641, 368.48529194, 432.39173664, 438.03976605,\n", + " 446.63595274, 415.83251828, 465.77814235, 399.21637852,\n", + " 490.00300503, 397.85328352, 422.66669283, 437.01418249,\n", + " 444.11930844, 401.41655304, 436.16891548, 451.27683675,\n", + " 425.45334976, 468.18963005, 441.41375485, 385.96239498,\n", + " 464.04649464, 451.21303252, 421.96406491, 411.13667837,\n", + " 414.94933711, 440.20144039, 432.73566651, 439.29111635,\n", + " 454.87441813, 424.69475554, 417.76778937, 462.15997205,\n", + " 484.67165622, 374.21295483, 416.85192977, 423.00538317,\n", + " 409.77317546, 449.8642563 , 442.95935305, 448.91814978,\n", + " 435.88818253, 373.77201074, 425.58869808, 403.36415897,\n", + " 396.46203746, 423.00117949, 416.71228469, 420.4819212 ,\n", + " 433.37818228, 399.58356726, 423.03163111, 417.0637876 ,\n", + " 419.05223201, 419.10100103, 380.798307 , 415.69878673,\n", + " 424.34468581, 444.88078412, 392.42790855, 466.93379975,\n", + " 409.69647007, 497.38696925, 425.77902306, 412.06882196,\n", + " 417.25479659, 413.52010785, 490.77214739, 402.45310012,\n", + " 378.11361268, 432.39988196, 453.19206442, 472.20104852,\n", + " 409.07019043, 410.48240162, 367.57080566, 416.24092261,\n", + " 427.78654611, 442.23681315, 430.67969152, 470.63619742,\n", + " 457.22264186, 399.71664369, 381.12197784, 426.97442667,\n", + " 451.18198572, 404.67334196, 395.00081052, 400.27808946,\n", + " 451.07655768, 447.65642 , 447.32767606, 443.85234166,\n", + " 400.65798875, 454.91127537, 435.90718312, 416.4159125 ,\n", + " 382.53183057, 465.5220187 , 433.61811604, 417.59615501,\n", + " 399.54839723, 464.5660697 , 429.36432654, 457.36697965,\n", + " 442.3881466 , 436.46996617, 429.42872778, 396.97497519,\n", + " 383.35406194, 442.49724076, 414.19482495, 449.76413525,\n", + " 436.95410077, 421.84215851, 419.74368272, 456.31041563,\n", + " 425.73544096, 444.23386625, 438.7908401 , 421.68279488,\n", + " 421.86522629, 460.21514402, 393.87957234, 490.55179929,\n", + " 400.86608626, 430.72020611, 441.30099207, 495.41118958,\n", + " 413.53449919, 410.90298798, 472.0254646 , 384.9539821 ,\n", + " 363.83588103, 392.85403254, 408.59413407, 413.01324361,\n", + " 481.67642919, 413.83601531, 452.93228253, 482.55292992,\n", + " 416.20116417, 437.98746882, 439.21327975, 386.37919398,\n", + " 437.69908469, 442.19536414, 437.69773671, 482.9358057 ,\n", + " 435.5752816 , 411.58484521, 438.71198594, 410.42731427,\n", + " 424.11591 , 383.89588702, 459.4295046 , 438.8380758 ,\n", + " 410.94699538, 398.27469332, 468.29357215, 450.04976077,\n", + " 429.47588199, 503.73528327, 435.40789533, 431.63613992,\n", + " 439.00002752, 433.46277991, 366.8920188 , 419.86597396,\n", + " 384.05995671, 467.71067985, 411.77133051, 397.23094947,\n", + " 438.68396295, 469.40563053, 402.64071842, 440.05458611,\n", + " 415.59746608, 388.00768783, 454.98810073, 459.6829105 ,\n", + " 431.4222739 , 465.21040668, 448.77562265, 452.89286712,\n", + " 449.93075228, 425.39146955, 450.48897194, 419.6775005 ,\n", + " 407.43142062, 433.94171583, 374.4320816 , 403.86646957,\n", + " 381.35802869, 426.32826134, 448.99877808, 438.17070951,\n", + " 426.44708709, 483.11223461, 423.13764273, 443.07331964,\n", + " 475.7923385 , 409.54969533, 468.29474713, 409.21347046,\n", + " 443.93744881, 441.8772666 , 406.17293915, 390.9419238 ,\n", + " 418.64375856, 462.63102149, 392.04454969, 461.07770496,\n", + " 453.54658077, 434.42760694, 438.80345428, 393.6052543 ,\n", + " 408.39364672, 456.95895549, 427.62284014, 420.79506932,\n", + " 425.15306001, 418.37968813, 458.05643909, 386.63386402,\n", + " 439.11820893, 400.41588057, 457.91895776, 410.53910093,\n", + " 412.55395808, 497.37647789, 448.84954791, 422.19729957,\n", + " 436.6933979 , 447.43522644, 417.19996025, 392.08405886,\n", + " 389.6129975 , 432.05415964, 452.4706124 , 452.38808095,\n", + " 452.07210855, 381.41327795, 480.6302466 , 449.07263018,\n", + " 423.38535719, 419.97762525, 406.51512852, 449.82631199,\n", + " 473.94608497, 470.30399093, 461.66654885, 390.03452507,\n", + " 484.12394422, 453.99868766, 456.22040963, 385.25741034,\n", + " 445.65603718, 354.63537751, 427.87690899, 398.62683398,\n", + " 433.72962123, 399.48044332, 378.10047315, 472.26479695,\n", + " 441.25787732, 428.4259909 , 443.20243369, 465.59320555,\n", + " 434.78978 , 451.5674528 , 403.25001045, 461.88611086,\n", + " 434.70699329, 407.04238518, 403.64246719, 440.3843689 ,\n", + " 432.74576848, 453.48734779, 422.39266721, 457.65520683,\n", + " 431.87796535, 421.16061454, 415.30154998, 455.12387 ,\n", + " 455.3007031 , 402.69155726, 402.18263514, 457.36974006,\n", + " 419.99993658, 392.11326666, 448.95831186, 394.93190887,\n", + " 468.09510562, 415.82134376, 447.43795813, 400.79936894,\n", + " 435.47380556, 440.17106037, 433.97990438, 433.2043079 ,\n", + " 385.90720745, 394.14574223, 392.91167408, 443.41587035,\n", + " 418.99635473, 450.97608912, 465.73706067, 453.79364228,\n", + " 384.30393576, 423.19376335, 440.33522539, 435.07090108,\n", + " 457.86408059, 417.65116602, 459.76187794, 443.72191524,\n", + " 457.22921182, 464.1813165 , 426.23413684, 397.9159348 ,\n", + " 383.17219755, 469.61797206, 407.32225782, 398.94286768,\n", + " 384.51299321, 427.3938482 , 465.49816752, 427.65984832,\n", + " 388.61619593, 414.58336918, 447.42710143, 461.20041515,\n", + " 452.28358238, 405.45784522, 465.72168683, 389.36102456,\n", + " 413.87316408, 460.17186651, 409.01597063, 358.69860535,\n", + " 404.6939604 , 422.46368835, 394.85558673, 463.5342057 ,\n", + " 418.89635668, 447.05384845, 422.84254827, 444.86151858,\n", + " 395.47680882, 431.30986686, 455.58714103, 404.933765 ,\n", + " 449.23982023, 426.17594622, 432.59313027, 433.18344173,\n", + " 444.64055553, 433.48211686, 413.92112121, 459.60172606,\n", + " 412.28217342, 388.1282127 , 424.28157192, 413.12265107,\n", + " 461.31355766, 407.5632943 , 395.35594526, 408.40820767,\n", + " 417.62677962, 375.58451328, 425.05644337, 462.83116167,\n", + " 380.05811206, 409.8913453 , 461.25770686, 388.67242052,\n", + " 402.29699559, 463.78466023, 486.18806639, 423.76658067,\n", + " 396.61160724, 402.95955612, 448.24209349, 368.42676151,\n", + " 438.67222579, 478.16738609, 410.15878239, 429.85433799,\n", + " 446.81946114, 438.60705856, 397.29365272, 415.36742706,\n", + " 469.70795043, 466.11613445, 454.54680491, 434.77123953,\n", + " 473.52033257, 449.71812702, 479.02697253, 414.91274829,\n", + " 375.50431938, 416.47846965, 448.94002288, 439.20065855,\n", + " 409.71438996, 393.78297863, 419.03427241, 427.25764937,\n", + " 436.51936081, 431.3353234 , 454.51497023, 399.20464071,\n", + " 445.54253888, 388.17980015, 395.78105379, 420.23562111,\n", + " 412.4691778 , 429.28655094, 417.56253732, 421.85000895,\n", + " 453.61616842, 444.47930746, 456.47502467, 473.87261643,\n", + " 436.84665993, 444.61347176, 419.92942817, 432.84292135,\n", + " 379.46391334, 433.17658983, 453.53149033, 430.47690028,\n", + " 388.04442282, 433.42983132, 425.9418247 , 427.99305838,\n", + " 439.38125036, 409.50054421, 452.85658341, 445.36429964,\n", + " 440.59080034, 448.61795728, 388.24713688, 436.09367192,\n", + " 461.17582985, 401.97408703, 388.90081231, 415.58439828,\n", + " 437.30356439, 437.69424194, 441.1753511 , 429.04409699,\n", + " 396.67467649, 473.3093717 , 472.56790549, 444.26646179,\n", + " 438.44507734, 425.16956955, 432.68991713, 439.07035761,\n", + " 440.41491716, 437.18073212, 423.16179554, 455.31783004,\n", + " 382.60379432, 452.3497471 , 392.03814367, 438.60972333,\n", + " 425.64822015, 418.03537405, 459.48149419, 401.13583356,\n", + " 414.46213122, 450.70506345, 400.46361547, 437.90689264,\n", + " 432.25412541, 442.4378391 , 443.14798748, 425.67388739,\n", + " 454.4794956 , 399.10307348, 435.8570052 , 474.01254159,\n", + " 433.4058038 , 385.56112498, 437.29800869, 438.50090535,\n", + " 416.13312281, 386.96045772, 425.15528007, 479.06421733,\n", + " 442.19613235, 366.15712744, 406.76678946, 435.67459317,\n", + " 416.0893774 , 437.81707712, 426.24060733, 431.99747958,\n", + " 406.94301431, 434.11779371, 423.04475031, 467.72979006,\n", + " 439.63463771, 437.16494131, 416.1390002 , 360.78841235,\n", + " 428.31942832, 489.14526598, 418.76582529, 383.12763623,\n", + " 431.56174861, 472.17967099, 464.8326812 , 467.96717255,\n", + " 438.57721208, 445.1993662 , 463.81241988, 440.72821385,\n", + " 449.34929885, 448.07617987, 449.76705871, 428.83262565,\n", + " 397.06289575, 400.68432104, 432.23563034, 407.37647628,\n", + " 403.61771118, 501.04468622, 391.915011 , 430.84238267,\n", + " 394.72388956, 413.28102326, 448.63977931, 429.16772806,\n", + " 417.09790693, 416.13407301, 455.23816451, 430.37678115,\n", + " 453.70125283, 451.9075262 , 440.61356303, 432.96123651,\n", + " 391.35964329, 384.02901099, 490.6575505 , 427.09713884,\n", + " 422.21262938, 468.04122776, 443.41190578, 441.70154981,\n", + " 440.44415972, 432.02234338, 475.60898318, 420.25997143,\n", + " 413.5579819 , 391.70229533, 443.31505674, 383.70358253,\n", + " 468.99209476, 411.7451197 , 429.27618518, 431.67897351,\n", + " 429.582817 , 434.55430367, 463.24400028, 458.39998823,\n", + " 413.21712809, 429.86201585, 444.11350753, 480.26102411,\n", + " 356.52960067, 418.71433429, 434.44446906, 423.08829016,\n", + " 461.04794757, 447.17802869, 438.72000997, 442.16969552,\n", + " 435.22417386, 475.83881315, 388.01455264, 414.92796661,\n", + " 396.08270903, 366.43656541, 450.44731377, 429.43040539,\n", + " 466.24955799, 393.7025106 , 409.08516017, 437.44590327,\n", + " 455.89640655, 480.87043427, 415.71732872, 467.52847626,\n", + " 414.99387816, 481.64852721, 449.99497533, 469.7601375 ,\n", + " 419.94732415, 438.33152368, 399.5436836 , 477.76660834,\n", + " 454.42103799, 484.21974381, 352.20574733, 445.14711921,\n", + " 454.75716351, 460.40218883, 444.68215022, 421.9046561 ,\n", + " 394.53815913, 480.73417163, 412.84118174, 456.59068499,\n", + " 420.15572588, 405.19536866, 501.7171472 , 465.87086216,\n", + " 454.57132037, 468.71171819, 409.03697371, 484.77998628,\n", + " 442.88493946, 442.88888509, 444.04589666, 448.58155289,\n", + " 393.77362157, 422.28150918, 405.77741082, 452.14159691,\n", + " 415.70673206, 444.33446356, 410.27282035, 424.40131745,\n", + " 483.62097572, 433.07192452, 455.42484842, 415.015615 ,\n", + " 392.72757961, 453.96385247, 460.09327167, 395.40828697,\n", + " 444.24189513, 471.99039457, 476.94511374, 401.272129 ,\n", + " 479.74431933, 504.74165344, 412.6688638 , 455.15116152,\n", + " 493.43125085, 472.87406133, 466.96488135, 433.62909115,\n", + " 462.00844965, 418.62722163, 420.3081843 , 416.10489023,\n", + " 440.67154063, 408.71745792, 460.55929279, 409.19357457,\n", + " 454.79809008, 442.97102138, 418.68651219, 446.74983658,\n", + " 450.79627229, 397.96946849, 440.29821874, 398.57217123,\n", + " 419.43154209, 490.79332771, 405.55322599, 439.33998557,\n", + " 462.36459143, 415.15039544, 452.10125457, 457.48755122,\n", + " 430.94808168, 431.11912737, 428.81409091, 454.55964475,\n", + " 437.89443093, 465.7544321 , 392.11197755, 406.37564 ,\n", + " 426.26225645, 402.62168005, 474.16680613, 421.98724443,\n", + " 444.0774273 , 442.49430806, 405.70330909, 421.80106628,\n", + " 406.02011448, 460.42184014, 409.96699033, 391.73699283,\n", + " 438.88276429, 445.63726087, 445.79340103, 465.09834721,\n", + " 414.10064562, 461.28045322, 385.05063013, 466.87272451,\n", + " 440.56834773, 454.07259263, 442.44679524, 377.64775385,\n", + " 450.29078055, 410.17438832, 463.37995172, 449.4607897 ,\n", + " 427.00842798, 389.05371989, 433.89436158, 402.47001334,\n", + " 458.82822009, 439.99420896, 404.10223898, 437.00099318,\n", + " 374.1100606 , 429.1593372 , 433.00732553, 469.3753184 ,\n", + " 387.57785329, 395.06099258, 400.33018171, 403.77521911,\n", + " 381.30227839, 426.00176888, 409.42762867, 379.56486052,\n", + " 427.46948336, 436.60483972, 406.59528389, 411.45290364,\n", + " 420.20873547, 436.80904043, 405.179038 , 427.22210756,\n", + " 380.66470627, 434.99339559, 426.55947033, 469.06143035,\n", + " 446.39482042, 433.17173996, 441.63855987, 406.34740873,\n", + " 443.77815579, 459.32991849, 435.71578694, 407.98202418,\n", + " 408.84560787, 435.80344477, 475.58595206, 409.76525107,\n", + " 423.93582793, 434.31148515, 417.95279513, 414.39350941,\n", + " 438.01583861, 484.26785613, 424.56024767, 461.38242527,\n", + " 412.19386044, 382.03613108, 411.28979723, 449.8882328 ,\n", + " 456.17646956, 445.03976786, 389.7616223 , 384.26042593,\n", + " 441.08181576, 466.63565777, 410.65537497, 400.13729355,\n", + " 403.25163702, 451.51686127, 445.2917002 , 381.90832123,\n", + " 429.02501362, 394.66383714, 399.66523295, 453.56059729,\n", + " 412.7744409 , 423.02856536, 429.44608786, 387.03317915,\n", + " 498.2915758 , 427.06494554, 440.64190304, 451.6905746 ,\n", + " 436.37970525, 429.5589654 , 435.97741765, 422.41359028,\n", + " 420.25686931, 438.98311859, 389.36008429, 413.02412028,\n", + " 454.81159626, 404.37062208, 431.8637034 , 512.72249058])" + ] + } + ], + "prompt_number": 75 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "sums = trials.sum(axis=1)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 77 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "mean_people_minutes = sums.mean()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 79 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "mean_people_minutes / 60" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 81, + "text": [ + "7.1771666995647827" + ] + } + ], + "prompt_number": 81 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "(mean_people_minutes + sums.std()) / 60" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 82, + "text": [ + "7.6429733548078644" + ] + } + ], + "prompt_number": 82 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "#alternate\n", + "trials.mean() * 100" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 85, + "text": [ + "430.63000197388692" + ] + } + ], + "prompt_number": 85 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "trials.mean() * 100 / 60" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 86, + "text": [ + "7.1771666995647818" + ] + } + ], + "prompt_number": 86 + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/pig.py b/pig.py new file mode 100644 index 0000000..d72c2fc --- /dev/null +++ b/pig.py @@ -0,0 +1,64 @@ +import random + + +def roll(): + return random.randint(1, 6) + +class Player(): + def __init__(self): + self.score = 0 + + def take_a_turn(self, turn_total=0): + first_roll = roll() + if first_roll == 1: + return self.score + else: + turn_total += first_roll + if self.play_again(): + self.take_a_turn(turn_total) + else: + self.score += turn_total + + def play_again(): + False + + +class AggressivePlayer(Player): + def __init__(self): + super().__init__() + self.aggression_level = 75 + + def play_again(self): + return random.getrandbits(1) + + +class CautiousPlayer(Player): + def __init__(self): + super().__init__() + self.aggression_level = 25 + + def play_again(self): + return random.getrandbits(1) + + +class Game(): + def __init__(self): + self.turn_limit = 7 + self.turn_count = 0 + + def player_rolls(self, player): + player.take_a_turn(self.turn_count) + self.turn_count += 1 + + def main(self): + player = AggressivePlayer() + score = player.score + while self.turn_count < self.turn_limit and score < 100: + self.player_rolls(player) + score += player.score + print(score) + + +if __name__ == "__main__": + game = Game() + game.main() diff --git a/some-pig-class b/some-pig-class new file mode 160000 index 0000000..10c3f52 --- /dev/null +++ b/some-pig-class @@ -0,0 +1 @@ +Subproject commit 10c3f521f31592996d6421c26b968af11cf19a9e