{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banner_Top_06.06.18.jpg?raw=true)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's play the Frog Jumping game! \n", "### The YouTube video teaches us the rules of this game." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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RtbjZ0tmWEZqVV1JPVLHRlL9Ckefdsda33xE/Eefdsda33xE/ED2ylTjRpQpU1iEEoxXQkfZ4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9vB4h592x1rffET8R592x1rffET8QPbweIefdsda33xE/Eefdsda33xE/ED28HiHn3bHWt98RPxHn3bHWt98RPxA9ufBlG8tfoOf3P3IpXn3a/Wt98RPxNFfaF7cQ0V7y4qw/lnUcl+YHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2Q==\n", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Import Youtube Video\n", "from IPython.display import YouTubeVideo\n", "YouTubeVideo('R8wkhae4Pvg')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Now you play the Frog Jumping game!" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " \n", "
\n", "
\n", "
    \n", "
  • Reset
  • \n", "
  • Undo
  • \n", "
  • Your moves: 0
  • \n", "
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", "
Step NumberCurrent PositionMove
\n", "
\n", "\n", " \n", " \n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%html\n", "\n", "
\n", " \n", " \n", "
\n", "
\n", "
    \n", "
  • Reset
  • \n", "
  • Undo
  • \n", "
  • Your moves: 0
  • \n", "
\n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", "
Step NumberCurrent PositionMove
\n", "
\n", "\n", " \n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Below is the code that takes YOUR move sequence, and applies it to the starting position\n", "### Feel free to ignore this :-)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def play_game(starting_position, move_sequence):\n", " \n", " Alist=[]\n", " Blist=[]\n", " Empty=0\n", " totalmoves=0\n", " counter=0\n", " flag=0\n", "\n", " for i in range(0,len(starting_position)):\n", " if starting_position[i]=='A':\n", " counter+=1\n", " Alist.append(counter)\n", " if starting_position[i]=='B':\n", " counter+=1\n", " Blist.append(counter)\n", " if starting_position[i]=='_':\n", " counter+=1\n", " Empty=counter\n", "\n", " startAlist=list.copy(Alist)\n", " startBlist=list.copy(Blist)\n", " startEmpty=Empty\n", "\n", " for i in range(0,len(move_sequence)):\n", " if move_sequence[i]=='A':\n", " totalmoves+=1\n", " print(\"\")\n", " if Empty-1 in Alist:\n", " Alist.remove(Empty-1)\n", " Alist.append(Empty)\n", " Empty=Empty-1\n", " elif Empty-2 in Alist and Empty-1 in Blist:\n", " Alist.remove(Empty-2)\n", " Alist.append(Empty)\n", " Empty=Empty-2\n", " else:\n", " print(\"\")\n", " print(\"ERROR: sorry you made a mistake after\", totalmoves, \"total moves\")\n", " flag=1\n", " break\n", " if move_sequence[i]=='B': \n", " totalmoves+=1\n", " print(\"\")\n", " if Empty+1 in Blist:\n", " Blist.remove(Empty+1)\n", " Blist.append(Empty)\n", " Empty=Empty+1\n", " elif Empty+2 in Blist and Empty+1 in Alist:\n", " Blist.remove(Empty+2)\n", " Blist.append(Empty)\n", " Empty=Empty+2\n", " else:\n", " print(\"\")\n", " print(\"ERROR: sorry you made a mistake after\", totalmoves, \"total moves\")\n", " flag=1\n", " break\n", "\n", " if move_sequence[i]=='A' or move_sequence[i]=='B':\n", " for j in range(0,counter+1):\n", " if j in Alist: print(\"A \", end = \" \") \n", " elif j in Blist: print(\"B \", end = \" \")\n", " elif j == Empty: print(\"_ \", end = \" \") \n", " else: print(\"\", end = \" \")\n", " print(\"\")\n", " \n", " print(\"\")\n", " \n", " startAlist.sort()\n", " startBlist.sort()\n", " Alist.sort()\n", " Blist.sort()\n", " \n", " if flag==0:\n", " if startAlist==Blist and startBlist==Alist and startEmpty==Empty:\n", " print(\"Congratulations! You have solved the problem in\", totalmoves, \"total moves\")\n", " else:\n", " print(\"You have currently made\", totalmoves, \"total moves. Keep going!\")\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Input your STARTING POSITION below, with team names A and B\n", "### For example, with four people on each team, write down AAAA _ BBBB" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "starting_position = 'AA_BB'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Now input your MOVE SEQUENCE, to try to solve the game\n", "### For example, with two people on each team, one solution is A BB AA BB A" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "move_sequence = 'A BB AA BB A '" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " A _ A B B \n", "\n", " A B A _ B \n", "\n", " A B A B _ \n", "\n", " A B _ B A \n", "\n", " _ B A B A \n", "\n", " B _ A B A \n", "\n", " B B A _ A \n", "\n", " B B _ A A \n", "\n", "Congratulations! You have solved the problem in 8 total moves\n" ] } ], "source": [ "play_game(starting_position, move_sequence)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![alt text](https://github.com/callysto/callysto-sample-notebooks/blob/master/notebooks/images/Callysto_Notebook-Banners_Bottom_06.06.18.jpg?raw=true)" ] } ], "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.6.8" } }, "nbformat": 4, "nbformat_minor": 2 }