X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=hangman%2Fhangman-setter.ipynb;fp=hangman%2Fhangman-setter.ipynb;h=0000000000000000000000000000000000000000;hb=b46905269db141a9aa4b4b8d3dee6a630925d6b3;hp=aa2487e5575276df6220ca80dcabaed693e1fce6;hpb=5001e9431b2a52630f91d78f381c29aca25dd310;p=cas-master-teacher-training.git diff --git a/hangman/hangman-setter.ipynb b/hangman/hangman-setter.ipynb deleted file mode 100644 index aa2487e..0000000 --- a/hangman/hangman-setter.ipynb +++ /dev/null @@ -1,555 +0,0 @@ -{ - "metadata": { - "name": "", - "signature": "sha256:65af1805536aa8ac4200804af5d4b4d0e55c2eb86d74b2cf3f31a632b3aeccf8" - }, - "nbformat": 3, - "nbformat_minor": 0, - "worksheets": [ - { - "cells": [ - { - "cell_type": "code", - "collapsed": false, - "input": [ - "import re\n", - "import random" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 1 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "WORDS = [w.strip() for w in open('/usr/share/dict/british-english').readlines() \n", - " if re.match(r'^[a-z]*$', w.strip())]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 2 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "STARTING_LIVES = 10\n", - "lives = 0" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 3 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "wrong_letters = []" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 4 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "len(WORDS)" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 5, - "text": [ - "62856" - ] - } - ], - "prompt_number": 5 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "WORDS[30000:30010]" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 6, - "text": [ - "['jotted',\n", - " 'jotting',\n", - " 'jottings',\n", - " 'joule',\n", - " 'joules',\n", - " 'jounce',\n", - " 'jounced',\n", - " 'jounces',\n", - " 'jouncing',\n", - " 'journal']" - ] - } - ], - "prompt_number": 6 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "target = random.choice(WORDS)\n", - "target" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 7, - "text": [ - "'goitre'" - ] - } - ], - "prompt_number": 7 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "discovered = list('_' * len(target))\n", - "discovered" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 8, - "text": [ - "['_', '_', '_', '_', '_', '_']" - ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "letter = input('Enter letter: ').strip().lower()[0]\n", - "letter" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: r\n" - ] - }, - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 9, - "text": [ - "'r'" - ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def find_all_explicit(string, letter):\n", - " locations = []\n", - " starting=0\n", - " location = string.find(letter)\n", - " while location > -1:\n", - " locations += [location]\n", - " starting = location + 1\n", - " location = string.find(letter, starting)\n", - " return locations" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 25 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "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": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 27, - "text": [ - "[2, 3]" - ] - } - ], - "prompt_number": 27 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "guessed_letter = 'e'\n", - "locations = find_all(target, guessed_letter)\n", - "for location in locations:\n", - " discovered[location] = guessed_letter\n", - "discovered" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "metadata": {}, - "output_type": "pyout", - "prompt_number": 12, - "text": [ - "['_', '_', '_', '_', '_', 'e']" - ] - } - ], - "prompt_number": 12 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def updated_discovered_word(discovered, guessed_letter):\n", - " locations = find_all(target, guessed_letter)\n", - " for location in locations:\n", - " discovered[location] = guessed_letter\n", - " return discovered" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 13 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def initialise():\n", - " global lives, target, discovered, wrong_letters\n", - " lives = STARTING_LIVES\n", - " target = random.choice(WORDS)\n", - " discovered = list('_' * len(target))\n", - " wrong_letters = []" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 14 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def do_turn():\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_discovered_word(discovered, guess)\n", - " else:\n", - " lives -= 1\n", - " if guess not in wrong_letters:\n", - " wrong_letters += [guess]" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 15 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "def play_game():\n", - " global discovered, lives\n", - " initialise()\n", - " game_finished = False\n", - " do_turn()\n", - " while not game_finished:\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", - " game_finished = True\n", - " else:\n", - " do_turn()" - ], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 16 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "play_game()" - ], - "language": "python", - "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ _ _ _ : Lives = 10 , wrong guesses: \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: e\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ _ _ e : Lives = 10 , wrong guesses: \n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: s\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ _ _ e : Lives = 9 , wrong guesses: s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: a\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ _ _ e : Lives = 8 , wrong guesses: a s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: o\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ _ _ e : Lives = 7 , wrong guesses: a o s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: i\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 7 , wrong guesses: a o s\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: t\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 6 , wrong guesses: a o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: n\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 5 , wrong guesses: a n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: m\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 4 , wrong guesses: a m n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: l\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 3 , wrong guesses: a l m n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: c\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i _ e : Lives = 2 , wrong guesses: a c l m n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: d\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i d e : Lives = 2 , wrong guesses: a c l m n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: h\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Word: _ i d e : Lives = 1 , wrong guesses: a c h l m n o s t\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "stream": "stdout", - "text": [ - "Enter letter: b\n" - ] - }, - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "You lost. The word was ride\n" - ] - } - ], - "prompt_number": 20 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", - "metadata": {}, - "outputs": [], - "prompt_number": 17 - } - ], - "metadata": {} - } - ] -} \ No newline at end of file