Skip to content

Instantly share code, notes, and snippets.

@EricPedley
Last active December 5, 2020 05:01
Show Gist options
  • Select an option

  • Save EricPedley/26ca5a3674f4b96bb10f8fe7350c9877 to your computer and use it in GitHub Desktop.

Select an option

Save EricPedley/26ca5a3674f4b96bb10f8fe7350c9877 to your computer and use it in GitHub Desktop.
OneToughPuzzle.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "OneToughPuzzle.ipynb",
"provenance": [],
"authorship_tag": "ABX9TyPfQ/Os2w2mlzOpGZouo6F8",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/EricPedley/26ca5a3674f4b96bb10f8fe7350c9877/onetoughpuzzle.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "ANG6dmFcDvMb",
"outputId": "8dc3117f-2804-4404-eb98-47e3063ad8a2"
},
"source": [
"\n",
"#heart = 0\n",
"#diamond=1\n",
"#spade=2\n",
"#club=3\n",
"#how a piece is represented:\n",
"#[top,right,down,left]\n",
"#where top and right are the holes\n",
"pieces = [#innies are the first two numbers and outies are the second two\n",
" [1,3,3,0],\n",
" [0,3,2,2],\n",
" [2,0,3,0],\n",
" [1,0,0,1],\n",
" [2,0,2,1],\n",
" [3,1,1,3],\n",
" [2,3,0,2],\n",
" [3,3,0,1],\n",
" [0,1,2,1]\n",
"]\n",
"\n",
"totalIterations=0\n",
"def printOrder(used):\n",
" global totalIterations\n",
" numUsed=len(used)\n",
" usedPieces = [i//4 for i in used]\n",
" #print(usedPieces)\n",
" for idx, piece in [(i,pieces[i]) for i in range(9) if not i in usedPieces]:\n",
" #this loop was broken because I was using the loop idx from enumerate() instead of i, which are different\n",
" if numUsed==0:\n",
" for permutation in range(4):\n",
" totalidx = 4*idx+permutation#a number in the range [0,35]. get its rotation by doing modulus 4, or its idx by //4.\n",
" printOrder([totalidx])\n",
" elif numUsed<3:#there are two rotations to check, for the piece above\n",
" prevPieceTotalidx = used[-1]#the last piece in used\n",
" prevPieceidx, prevPiecerot = prevPieceTotalidx//4, prevPieceTotalidx%4\n",
" requiredSuit = pieces[prevPieceidx][prevPiecerot]\n",
" checkidx = 2 if prevPiecerot<2 else 0 #if prevPiecerot<2, then it's an innie and we need an outie to match.\n",
" checkSuit1=piece[checkidx]\n",
" checkSuit2=piece[checkidx+1]\n",
" totalidx=4*idx\n",
" if checkSuit1==requiredSuit:\n",
" printOrder([*used,totalidx+(checkidx+2)%4])\n",
" if checkSuit2==requiredSuit:\n",
" printOrder([*used,totalidx+(checkidx+3)%4])\n",
" elif numUsed == 3 or numUsed== 6:#in which case it needs to connect to the one horizontal from it, there are two rotations to check\n",
" prevPiecepos = numUsed-3\n",
" prevPieceTotalidx=used[prevPiecepos]\n",
" prevPieceidx, prevPiecerot = prevPieceTotalidx//4, ((prevPieceTotalidx)%4+1)%4\n",
" requiredSuit = pieces[prevPieceidx][prevPiecerot]\n",
" checkidx = 2 if prevPiecerot<2 else 0 #if prevPiecerot<2, then it's an innie and we need an outie to match.\n",
" checkSuit1=piece[checkidx]\n",
" checkSuit2=piece[checkidx+1]\n",
" totalidx=4*idx\n",
" if checkSuit1==requiredSuit:\n",
" printOrder([*used,totalidx+(checkidx+1)%4])\n",
" if checkSuit2==requiredSuit:\n",
" printOrder([*used,totalidx+(checkidx+2)%4])\n",
" else: #numUsed is 4,5,7 or 8, in which case there is only one rotation to check\n",
" prevPieceTotalidx1 = used[-1]\n",
" prevPieceTotalidx2 = used[numUsed-3]\n",
" prevPieceidx1, prevPiecerot1 = prevPieceTotalidx1//4, (prevPieceTotalidx1)%4#2\n",
" prevPieceidx2, prevPiecerot2 = prevPieceTotalidx2//4, ((prevPieceTotalidx2)%4+1)%4#2\n",
" botInnieRequired = prevPiecerot1>=2\n",
" leftInnieRequired = prevPiecerot2>=2\n",
" checkidx1=2\n",
" #if we need to check an innie on top and outie on left, then idx are 0 and 3\n",
" #if we need to check an innie on top and left, then idx are 1 and 0\n",
" #if we need an outie on top and innie on left, then idx are 2 and 1\n",
" #if we need innie on top and left, then idx are 3 and 2\n",
" if botInnieRequired and leftInnieRequired:\n",
" checkidx1=0\n",
" elif botInnieRequired and not leftInnieRequired:\n",
" checkidx1=1\n",
" elif not botInnieRequired and leftInnieRequired:\n",
" checkidx1=3\n",
" checkidx2 = (checkidx1+1)%4\n",
" requiredSuit1 = pieces[prevPieceidx1][prevPiecerot1]\n",
" requiredSuit2 = pieces[prevPieceidx2][prevPiecerot2]\n",
" if piece[checkidx1]==requiredSuit1 and piece[checkidx2]==requiredSuit2:\n",
" if numUsed<8:\n",
" printOrder([*used,idx*4+(checkidx1+2)%4])\n",
" else:#then the puzzle is completed\n",
" print([(i//4,i%4) for i in [*used,idx*4+(checkidx1+2)%4]])\n",
" \n",
" \n",
"\n",
"printOrder([])\n",
"print(totalIterations)\n"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"[(1, 0), (3, 0), (4, 1), (5, 0), (2, 0), (6, 1), (7, 0), (0, 0), (8, 1)]\n",
"[(4, 2), (6, 2), (8, 2), (3, 1), (2, 1), (0, 1), (1, 1), (5, 1), (7, 1)]\n",
"[(7, 3), (5, 3), (1, 3), (0, 3), (2, 3), (3, 3), (8, 0), (6, 0), (4, 0)]\n",
"[(8, 3), (0, 2), (7, 2), (6, 3), (2, 2), (5, 2), (4, 3), (3, 2), (1, 2)]\n",
"28\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 247
},
"id": "We9xAmcdgush",
"outputId": "71a119f5-79c4-4340-c617-eefbf2a35e95"
},
"source": [
"from mpl_toolkits.mplot3d import Axes3D\n",
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"\n",
"x =[1,2,3,4,5,6,7,8,9,10]\n",
"y =[5,6,2,3,13,4,1,2,4,8]\n",
"z =[2,3,3,3,5,7,9,11,9,10]\n",
"\n",
"\n",
"\n",
"ax.scatter(x, y, z, c='r', marker='o')\n",
"\n",
"ax.set_xlabel('X Label')\n",
"ax.set_ylabel('Y Label')\n",
"ax.set_zlabel('Z Label')\n",
"\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment