X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=hangman-setter.ipynb;h=aa2487e5575276df6220ca80dcabaed693e1fce6;hb=3ab55bb47f2d0d964d4f3ce5a3ce00544bbb5e99;hp=c1d2ef0d234f27e3c62c78a5b6f48ce086fc3c04;hpb=beb96f4defee75eb313fa6ea2add6cc566c2e89b;p=cas-master-teacher-training.git diff --git a/hangman-setter.ipynb b/hangman-setter.ipynb index c1d2ef0..aa2487e 100644 --- a/hangman-setter.ipynb +++ b/hangman-setter.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:db806d8bbe929161fce8776d2eeac6bad40d1abb93a97d112b974b6a8d50bdd0" + "signature": "sha256:65af1805536aa8ac4200804af5d4b4d0e55c2eb86d74b2cf3f31a632b3aeccf8" }, "nbformat": 3, "nbformat_minor": 0, @@ -53,7 +53,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 33 + "prompt_number": 4 }, { "cell_type": "code", @@ -67,13 +67,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 4, + "prompt_number": 5, "text": [ "62856" ] } ], - "prompt_number": 4 + "prompt_number": 5 }, { "cell_type": "code", @@ -87,7 +87,7 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 5, + "prompt_number": 6, "text": [ "['jotted',\n", " 'jotting',\n", @@ -102,7 +102,7 @@ ] } ], - "prompt_number": 5 + "prompt_number": 6 }, { "cell_type": "code", @@ -117,20 +117,20 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 6, + "prompt_number": 7, "text": [ - "'bluster'" + "'goitre'" ] } ], - "prompt_number": 6 + "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ - "guessed_word = list('_' * len(target))\n", - "guessed_word" + "discovered = list('_' * len(target))\n", + "discovered" ], "language": "python", "metadata": {}, @@ -138,13 +138,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 7, + "prompt_number": 8, "text": [ - "['_', '_', '_', '_', '_', '_', '_']" + "['_', '_', '_', '_', '_', '_']" ] } ], - "prompt_number": 7 + "prompt_number": 8 }, { "cell_type": "code", @@ -161,25 +161,25 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: dsf\n" + "Enter letter: r\n" ] }, { "metadata": {}, "output_type": "pyout", - "prompt_number": 8, + "prompt_number": 9, "text": [ - "'d'" + "'r'" ] } ], - "prompt_number": 8 + "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ - "def find_all(string, letter):\n", + "def find_all_explicit(string, letter):\n", " locations = []\n", " starting=0\n", " location = string.find(letter)\n", @@ -192,13 +192,25 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 9 + "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ - "find_all('happy', 'q')" + "def find_all(string, letter):\n", + " return [p for p, l in enumerate(string) if l == letter]" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 26 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "find_all('happy', 'p')" ], "language": "python", "metadata": {}, @@ -206,13 +218,13 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 10, + "prompt_number": 27, "text": [ - "[]" + "[2, 3]" ] } ], - "prompt_number": 10 + "prompt_number": 27 }, { "cell_type": "code", @@ -221,8 +233,8 @@ "guessed_letter = 'e'\n", "locations = find_all(target, guessed_letter)\n", "for location in locations:\n", - " guessed_word[location] = guessed_letter\n", - "guessed_word" + " discovered[location] = guessed_letter\n", + "discovered" ], "language": "python", "metadata": {}, @@ -230,23 +242,23 @@ { "metadata": {}, "output_type": "pyout", - "prompt_number": 11, + "prompt_number": 12, "text": [ - "['_', '_', '_', '_', '_', 'e', '_']" + "['_', '_', '_', '_', '_', 'e']" ] } ], - "prompt_number": 11 + "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ - "def updated_guessed_word(guessed_word, guessed_letter):\n", + "def updated_discovered_word(discovered, guessed_letter):\n", " locations = find_all(target, guessed_letter)\n", " for location in locations:\n", - " guessed_word[location] = guessed_letter\n", - " return guessed_word" + " discovered[location] = guessed_letter\n", + " return discovered" ], "language": "python", "metadata": {}, @@ -258,48 +270,49 @@ "collapsed": false, "input": [ "def initialise():\n", - " global lives, target, guessed_word, wrong_letters\n", + " global lives, target, discovered, wrong_letters\n", " lives = STARTING_LIVES\n", " target = random.choice(WORDS)\n", - " guessed_word = list('_' * len(target))\n", + " discovered = list('_' * len(target))\n", " wrong_letters = []" ], "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 30 + "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "def do_turn():\n", - " global guessed_words, lives, wrong_letters\n", - " print('Word:', ' '.join(guessed_word), ' : Lives =', lives, ', wrong guesses:', ' '.join(sorted(wrong_letters)))\n", + " global discovered, lives, wrong_letters\n", + " print('Word:', ' '.join(discovered), ' : Lives =', lives, ', wrong guesses:', ' '.join(sorted(wrong_letters)))\n", " guess = input('Enter letter: ').strip().lower()[0]\n", " if guess in target:\n", - " updated_guessed_word(guessed_word, guess)\n", + " updated_discovered_word(discovered, guess)\n", " else:\n", " lives -= 1\n", - " wrong_letters += [guess]" + " if guess not in wrong_letters:\n", + " wrong_letters += [guess]" ], "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 41 + "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "def play_game():\n", - " global guessed_word, lives\n", + " global discovered, lives\n", " initialise()\n", " game_finished = False\n", " do_turn()\n", " while not game_finished:\n", - " if '_' not in guessed_word:\n", - " print('You won!')\n", + " if '_' not in discovered:\n", + " print('You won! The word was', target)\n", " game_finished = True\n", " elif lives <= 0:\n", " print('You lost. The word was', target)\n", @@ -310,7 +323,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 36 + "prompt_number": 16 }, { "cell_type": "code", @@ -325,7 +338,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: _ _ _ _ _ _ _ _ _ : Lives = 10 , wrong guesses: \n" + "Word: _ _ _ _ : Lives = 10 , wrong guesses: \n" ] }, { @@ -340,7 +353,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: _ _ _ _ _ e _ _ _ : Lives = 10 , wrong guesses: \n" + "Word: _ _ _ e : Lives = 10 , wrong guesses: \n" ] }, { @@ -348,14 +361,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: a\n" + "Enter letter: s\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ _ _ e _ _ _ : Lives = 10 , wrong guesses: \n" + "Word: _ _ _ e : Lives = 9 , wrong guesses: s\n" ] }, { @@ -363,14 +376,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: t\n" + "Enter letter: a\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ _ _ e t _ _ : Lives = 10 , wrong guesses: \n" + "Word: _ _ _ e : Lives = 8 , wrong guesses: a s\n" ] }, { @@ -385,7 +398,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ o _ e t _ _ : Lives = 10 , wrong guesses: \n" + "Word: _ _ _ e : Lives = 7 , wrong guesses: a o s\n" ] }, { @@ -400,22 +413,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ o _ e t _ _ : Lives = 9 , wrong guesses: i\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: n\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: a _ _ o _ e t _ _ : Lives = 8 , wrong guesses: i n\n" + "Word: _ i _ e : Lives = 7 , wrong guesses: a o s\n" ] }, { @@ -423,14 +421,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: s\n" + "Enter letter: t\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ o _ e t _ _ : Lives = 7 , wrong guesses: i n s\n" + "Word: _ i _ e : Lives = 6 , wrong guesses: a o s t\n" ] }, { @@ -438,14 +436,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: h\n" + "Enter letter: n\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a _ _ o _ e t _ _ : Lives = 6 , wrong guesses: h i n s\n" + "Word: _ i _ e : Lives = 5 , wrong guesses: a n o s t\n" ] }, { @@ -453,14 +451,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: r\n" + "Enter letter: m\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r _ o r e t _ _ : Lives = 6 , wrong guesses: h i n s\n" + "Word: _ i _ e : Lives = 4 , wrong guesses: a m n o s t\n" ] }, { @@ -468,14 +466,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: g\n" + "Enter letter: l\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r _ o r e t _ _ : Lives = 5 , wrong guesses: g h i n s\n" + "Word: _ i _ e : Lives = 3 , wrong guesses: a l m n o s t\n" ] }, { @@ -483,14 +481,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: r\n" + "Enter letter: c\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r _ o r e t _ _ : Lives = 5 , wrong guesses: g h i n s\n" + "Word: _ i _ e : Lives = 2 , wrong guesses: a c l m n o s t\n" ] }, { @@ -505,22 +503,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r _ o r e t _ _ : Lives = 4 , wrong guesses: d g h i n s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: l\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: a r _ o r e t _ _ : Lives = 3 , wrong guesses: d g h i l n s\n" + "Word: _ i d e : Lives = 2 , wrong guesses: a c l m n o s t\n" ] }, { @@ -528,14 +511,14 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Enter letter: u\n" + "Enter letter: h\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r _ o r e t u _ : Lives = 3 , wrong guesses: d g h i l n s\n" + "Word: _ i d e : Lives = 1 , wrong guesses: a c h l m n o s t\n" ] }, { @@ -550,26 +533,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "Word: a r b o r e t u _ : Lives = 3 , wrong guesses: d g h i l n s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: m\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "You won!\n" + "You lost. The word was ride\n" ] } ], - "prompt_number": 42 + "prompt_number": 20 }, { "cell_type": "code", @@ -577,7 +545,8 @@ "input": [], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": 17 } ], "metadata": {}