<snapdata remixID="14315286"><project name="Origin Shift Maze Generation" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes>Generates a maze using the origin shift algorithm, which is the following:&#xD;1. Make a grid of nodes with a set number of rows and columns. These indicate the direction of the path.&#xD;2. For each node, if there is an adjacent node to the east, point that node to the east. Otherwise, if there is an adjacent node below, point that node to the south.&#xD;3. Mark the node in the bottom-right corner as the origin.&#xD;4. Repeat the following until the maze is ready: Select a random node adjacent to the origin, point the origin node towards the selected node, make the selected node the new origin.&#xD;&#xD;Here, the yellow star is the origin, and the black lines are the valid paths. They are not walls, so don&apos;t expect to find a solution when going on the blank spaces! Try starting from two corners and moving from one point to another by going on the paths.&#xD;&#xD;Click the stage to toggle slow mode. Pause the project when your maze is ready. Hover over the turtle sprite to see node data.&#xD;&#xD;The height and width of the maze can be modified. It is 16x16 by default.</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAQAElEQVR4Aezd9a8lxbYH8Gq43MtV3HWQByS4Du7uTnB/OCGB8AP8BYRf8AAhOITgDsGCE9wJENzdfYB3Pj2sntrNcGYed2bOrtk9Od+9VlWtkq5a071q9eruaX7t/nUzMIIzME3q/nUzMIIz0CngCE5+13VKnQJ2WjCiM9Ap4IhOf9d5p4CdDozoDAyuAo7otHedxwx0Chgz0dERmYFOAUdk2rtOYwY6BYyZ6OiIzECngCMy7V2nMQOdAsZMdHREZqBTwBGZ9hHttK867xSwr5Zj8AbTKeDgrXlfHXGngH21HIM3mE4BB2/N++qIOwXsq+UYvMF0Cjh4a95XRzxFFbCvjrwbTF/MQKeAfbEMgzuITgEHd+374sg7BeyLZRjcQXQKOLhr3xdH3ilgXyzD4A6iU8ApsvZdJ380A8Uq4BtvvJG+//775rjee++9dNlll6Vzzz23wQsvvNCUY15++eV06aWXNuVkb7jhhp70RRddlC644IKevCuvvLInfdVVV6W3335bkzXw8rQXaNfRprajHD3//PN72j3jjDPSxRdf3OSdc8456e677677iJ+PP/64KdeGdu+9994oLo4Wq4B33nln+vrrr5sJf+edd9K0006bttxyywajRo1qyjGvv/56mnnmmZtysiuttFJPeq211kobbLBBT95qq63Wk/7pp5/SDz/8oMkaeHnaC7TraFPbUY4a8yabbNK0vfHGG6d11123SW+22Wbp2WefrfuIn3/9619NuTZGjx6dnnvuuSgujhargO2Z/tvf/pYszqyzzpoC008/fY/YP//5z/Tvf/+7KSc3xxxz9KTnn3/+NPfcc/fkzTXXXD1pig7ROB60F2jX0aa2oxw1nllmmaVpe6GFFurpW9mYMWOim5o6JnUD/kM59rqwwJ+pRgELnPs/NeQxYz77U/X6tVKxCuiM8/TTT6dnnnmmxmuvvZZcYiONunz9/PPPzdzjockYYj755JO6Pnl44oknEjtrqKj+Y2d+8803NT/czwcffNDTjnZzeW1qWx8BY3nqqad66n3xxRd5tR7+gw9OTU888T/pkUdGpSefPLWuZw7MRY9gQYliFfDXX39N7777bmJHwbfffltfgvGB22+/Pf3yyy/NcrDVoMkYYtQLefTRRx9N77///lDJ2D8KeMcdd4xN/Pa7zjrr1JfN35I1v8giizRj0U5un5LTpraVBaaZZppk8xRpx0M2QLF22223SKbZZ//foeP5OI0Z88XQGMf2p465aIT6jJnQcIpVQIrFgA/ssssuaffdd0+RRquqSvni/OMf/0iQT8p8883XU0c6r8MGa5/N2F/szWgHbwOhz8ACCywQxTXVprajHK2qqqdvbcwwwwy1vB8KqC88VNV0aZVVfk2rrvppTz1zobxEFKuAJU52N+bfz0CngL+fky5nCs5AsQo4esj/5dIXc+Uy+dZbb0WypgsvvHA67bTT0kknnVTjwQcfTBBplHO6Fv7t569//WuyOfgtWfsWXQbJBi688ML01VdfhUjNv/rqq00a88aQozzkUXbkjz/+qKjBEkss0WMi2ICcfPLJ9VjVwbNjmwpDjGN0rENs/efyO++889Z8iT/FKqDF4xOLSWeMtx2ym266aTr00EPTwQcfXGP55ZdPEGmU7y3aQCkJ2wsPM800U9p8883r+uSBkuZKgH/88ceJN6AUZANrr712rcyNwBDjTk1VVUPc2D//oQ466KCmr3333bfe6Y4tHfvrGB3r2FRKNjLuxES6NFqsAk7MRFMkyhLgsIVIo2Qm1JZFJhuYmDpkQh79y1/+8jsFbPfbrqOevttyU1N66lXAqWmVpuJjKVYBOX4feOCBFHjxxRfTl19+2bNUjz32WLr//vsbmSeffLJHhq3H7uqpNJRwX3eINH98ddEP+tFHHyWX6hDAO3tFGtX3fffd1/Tt0llVlaIGn3/+eXrooYcamcsvvzzdcsstTdrYnbGbCkPMd999lx5++OFGRj+c3ENFRf4Vq4Dt2aZ8+cZAuUgXSoYfH5Sdf/75PUXuekBPZitBcXIZvP5zMcES8iNvxhlnTJzVkUa32GKLnssyxWZPKvsjVFWvErufvN566/2ReN/nT9P3I/yDAQoiEHESENUyzzzz9EhbdLvlkFl22WXTf/7znx4ZDuI8w4Kql+cJLIg20EUXXTTZnIQMXr1Io3bOK6ywQiIPHM925coCyldfffVGxvhE8JAHZe07NzZeK6+8clNnjTXWSNqJNkujxSpgaRPdjXf8MzDVKKBbZi6p7LHAxOwgyYQ8qh33f/EBl9LgUWdN/reYUrw8ZQF5bMlIawMijZKJNiaWOkZjVD8gb2Lr95tcsQrIh0ZRYkItgogYUcWBdjwdnx9Enaqq0mKLLZZCHrVRsRnAw9lnn52uuOKKHhkboM8+GxcWxV1CGcgHjEcEdKQ5r0U7Rxp9/vnnYyg1NTaoE0M/NjaCUofY5k+7d999d894Wn7ARrYEplgFtHvMI07sFhn5Rx55ZAow6vnfYiHmnHPOBJGebrrp0kYbbdTIq7fiiiumPfbYo8nbeeedkzOVsoA2KHe0w+ksaiXK0QMPPDAdc8wxTTvsOQGpygJLLrlkNFFT7UKdGPqhgOzNIbb5o+zrr79+06622oEPjXABTLEKWMDcdkOciBnoFHAiJqkTmXwzUKwCTj/99D3OYO6Kqur1kc0222ypqsblcTrfeuuttbOXwxfYU2jAzf6qGleHbaevfAm4aVwKI89mQ/R1tIFec8016eqrr2764jDmLFcW4CsMHm3XkWc80Q9qA+I48MAO7hzRZmIKg/3HIM+7pYR5euutt65v1ud5Hg7iLwzw4QWPsgFzO0wf+srbWHXVVVMeOKqMUqofcPfEf4BIC55YaqmlUqRRDxShAU7oTz/9tEemHUDLLsx9jsZ2/fXXG0KRKPYMaHPx97//vZl0m5D8rKTAQlkwPFAaSpBj6aWXTnl6ueWWq0PsyYM+9IUPaBcibTNjI5K346y5+OKLN22vssoqyR2LXGbZIcd4nqakkOflmx39VVWV2uORXyomqQKWOgnduEduBopVQGc2lyv2D7CL3KjPpzLsI+Ugjk7gKD7w4Ycf1k/BRVo5uyvS+tDXcO164MiDRVEHNR518QHjGa4d97L5GEMebY9PHvcSCvpojy/vo9/5YhVw1KhRiRHP/gHRJu1LMEVSFuBQ5hyONOqxSDRgU3LXXXelSOtDX/lCilK+5JJLGhkbGwGpUQd1ueerxMN5552XRMfk7bTHJzrbcZAPtMfHJuV4jvKbbrqpJ4I7b78EvlgFXHPNNdNBBx2U9tlnnxpu3rfPBJy4UY7aYHhFBj6w4YYb1vUjLfCAHRhpfegrX0xnsq222qqpt9dee9Wvy4g6Qffcc89GxhNvdrB5O+3xHXbYYen4449v6minPT595e16EjBvszS+WAUsbaK78Y5/BjoFHP+8dLlTaAYmiQJ60IchPoXGXHcjWtgr0Nh1cM8999T5+Y9NB5sp8mafffYEkeZA9pSc+gGv9+BbCxmXW+1EGuWCyeude+65yVsPlAXUUTfS/I1cNZFGyeTjs3GJcQRlg5INeL3HmWeeWQdIkLnxxht/5+sM2RLoJFFA76fz9Ne2226bdthhh7TTTjtN9mO3EAI82XXgyTX2Xd6xqJZ8gd20h5ARQiX6Rf2At2fx64UMZbTJiDTKTycoNOqIqLGhUBZQR91IC6AlF2m0PT42bLSJLrPMMnX4PdmAXbGIGeVgLF4vEuWl0UmigM4InKwO3oI7s1BGEHZ+4oknKpqk0KczyoILLpgW/A0TctBSLMgH4lZb1Ec5fjm1c5k2r1/KTx7cXXHcbbk8rV/I89q8xzK1F/CfhSM8l/Ofxp2akBFhw+mdy5TETxIFLOmAu7H21wxMEgUU6Ru2isuIM5Eb8eDBoKOPPnqSH7VI5tytYQxsKjZcwNnCGwoi/dJLLyWX7kgrazuvDVT8Hwr60Bc+4NIabaD65YjGB8xByKMTM75XXnmlflsW+QDfZrSJul/cvucdsiXSSaKA/GQifCkcw5htM7knw4389mVPhLHNQMAYHnnkkXqDIM/rMUSY4IGTly1HLkBx8s2DPvQV5agn4NQPcCBT1EijgmO1RR4o/7XXXtuMhYz8fHw2NoIY5ANTRhtkA+6WyFcOTIj2ZVp+KZgkCuguALtkSh6021C5rcYmtAmxCQpUVVVviiLNqPeKjEijYbvG2ClSHoGiD31FOcrmUzegTfZapFERMyJkyANFckdFWaCqesdnc5ErP5vRBiPkUbYfW1Gb4Aw5vrO4simB/7aPSaKA/+0guvqDOwOdAg7u2vfFkRergB4wz20hUSFu0uez6qEfG5HIcwmESLPvbEQijboEChrwDQ5gz+pLWYAT/NRTT03KgR9UUGmUo9pVFvAuZ75AZQGXbpfmSKMc6lFHwIOYQvkB8YJMgEgzPTx8H+nSaLEKaCPARooJtwsVFh9pVLqqxoXXCzQAZUABhcHjAxSWc9c3OGDHHXesX88W5ai7Pt5IoBy8Bo5iKAtQNmUBwQi58pMTkJrvsN1R2n///evABvX4UAWykg2wNfkqI20D0u47ykqgxSrg5JpcCyqUyqs1Am1HLyW1wYhyVDofkzryc7Rlcnn8n6mjXsnoFLDk1ZsKxl6sAk477bQ9T8Vxnzgz5WviMi3AM77LgbrhHzJsSG4W+QEuF0+vRRplv6EBPj2+v0ij/HRogMM4+kE5ogEfIBPyKHcWexIP+r3tttvqt6RKA/uUMx0fYP9Gm6XRYhWQ7UTpYsItLpsu0igfnxB39iG4YyE/h3aUBVwGtRVp1OvY0ID7r/qKNEpx0YC7JXk/+ub4zvP4+EIeFWgAeLCp4pzGB4yFDRppVDt5uyXxxSqgs1fuMGa3tXeUXofhtWgBGwFysUA2MZy4UY5y9oo6xgd8ZDB4VBQyOhxsFqIf1O7aGRkfaH83RHvbb799QoFj3XjxARsTm55Io4Ijos3SaLEKWNpEd+Md/wx0Cjj+eelyp9AMFK2AZ511VvNNjZtvvjkJLvV9jYDAiOBRcYke+sGDAAr3VfGBE044IUGkUU7lfD08uikoIPKYA56UIxvwFFz+jRL+RvZl1EFtZEIedTx536effnr9eVmyAYGvNi+RdmnXTqRLo0Ur4D777NN8U+Pwww9PRxxxRJMWoS1KGg14ja9Xm0V6v/32S3bFkUY5ddle+EDbxrJbzZXARsYHDEMeFaWy3XbbNeM59thjk6ihXEEEH5ANeC1c/l0TTmnjy+s899xzyYYm8mx27IwjXRotWgFtIkSDAAeyTQk+IC94lDy3Cz4gfjF4lAzgA2SGW1jlNkAhj2oD8AFyeTvSUYYar1tr+ADlzutMbXzRCji1LcYgHk+xClhV4+7xWjiXKsAHOIw5dn3bA9iI/GZRznZrRxd79S7nNfmAS1zwqH7yS7DLsqVMwAAABNNJREFUYN4Pmaqqer5JwrfID6gs4Hsf/IkxHu1GGcoH2M4TNe31xMrBa9/atmW0VwItVgE98GQDEZP85ptv1h99iTRKKfK7I3xqnnpTBi5v7fuzAgLakS1khwMntMjm4WTGVzah12p4NCBXdG2wR9vH4Ok4ZSWiWAWkTO3/+bmyWQxnptGjRzff1BCNkodWscE4oskGPDpps+BVHwGRL8Gj+s4jUtR1d0RZwFjyvth2IrKjHPWssLoB7coPcKTbqEQa9c5Djmg8eHWHV3xEG6XRYhWwtInuxjv+Gfh/KeD4myg712WOyyTgvqqzYqTR3E5ztNLsR2WAlz8c2nXU03deRzvycziT5umJGV/eZr/zxSogQ5wTNibYQnFjRBr18Hh7keUHXIJdvjikAyeffHI65ZRTmu9wcBB7ki7qoO7zesIu6njlm8u9soDLdm6jGqvo6qiDClo17qjjOyfaUga+USKeEB/wrRER05FGBS1EG6XRYhXQu/fyRa+qKjlz5Qtgx2ijkeflPAV0c9+3NgKilNlYkebsFqGS12NXem1bLpMrG1mKnduobMBdd9215/seXjRZVeN28zYzQvCj3aOOOioJfIg0esABB6RDDjmkpx3/IfRZIopVwBInuxvz72egU8Dfz0mXMwVnoFgFdHljnMdcCdIUycxeC7CvqmrcJc5lEKIOo59zOuRRN/uralwdt9g4kZUFPLmW211um7mcRjnqtWneFIGH6667LnljFj7AZjWGGI+NCkQaNZ6QRwVYeN0JPpCPRZ2SUKwCsv/yxeJz41TmRA4IKshtQK/LgFggCsqBHPIop27+lgeKvsYaa/R8u8OC53dQ+O/YheoHyOTfCfEoJd9hlKP6j7GgIrwBH3B/m2xAuzY0kUbJhHxptFgFdGZyBokJtwh2lR6pDHgu2EYjZJz9INIot0bIo94PbeepDCigjYmygDNeu131ohwlY0OBB4oN+ABFErCgHxAoAfgApQ15VJuc5fhA+901UbcEWqwCljC53RgnPAPFKqAzkKfBuC6ADYbm4D7J03hnneGmRTm5HB5sytP69XBQnqfehNpt12Fbutcb7ehHoGukUXloQBsQaXRCfQ83rpEuK1YB3df1TsL4XgbbiE0YaVT0CRpgvOe2GyXeZpttetaAbRnyQTm9g0ddXr11AR+glHlDnsjLfYPGZvMS8ij7zUYCD14vJ7oZH2CjBo9SyPZxycv7LokvVgEFDHAGcxSDb2d4mg0fcKM+eHTvvffu+cggBWw7cdl/ZHOss846Pd/u0A4HcS5jk5EvvHbZj5HH9sy/LaJue7zHHXdc8q0QZQGO8uBRzui2jL6in9JosQpY2kSXOt7JPe5OASf3DHftDzsDnQIOOz1d4eSegU4BJ/cMd+0POwOdAg47PV3h5J6BTgEn9wx37Q87A50CDjs9XeHknoH+VcDJfeRd+30xA50C9sUyDO4gOgUc3LXviyPvFLAvlmFwB9Ep4OCufV8ceaeAfbEMgzuITgH7b+0HakSdAg7UcvffwXYK2H9rMlAj6hRwoJa7/w62U8D+W5OBGlGngAO13P13sJ0C9t+aDNSIehRwoI68O9i+mIFOAftiGQZ3EJ0CDu7a98WRdwrYF8swuIPoFHBw174vjvz/AAAA///jhe45AAAABklEQVQDANxHT2HiYfQOAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="Origin Shift Maze Generation"><notes>Generates a maze using the origin shift algorithm, which is the following:&#xD;1. Make a grid of nodes with a set number of rows and columns. These indicate the direction of the path.&#xD;2. For each node, if there is an adjacent node to the east, point that node to the east. Otherwise, if there is an adjacent node below, point that node to the south.&#xD;3. Mark the node in the bottom-right corner as the origin.&#xD;4. Repeat the following until the maze is ready: Select a random node adjacent to the origin, point the origin node towards the selected node, make the selected node the new origin.&#xD;&#xD;Here, the yellow star is the origin, and the black lines are the valid paths. They are not walls, so don&apos;t expect to find a solution when going on the blank spaces! Try starting from two corners and moving from one point to another by going on the paths.&#xD;&#xD;Click the stage to toggle slow mode. Pause the project when your maze is ready. Hover over the turtle sprite to see node data.&#xD;&#xD;The height and width of the maze can be modified. It is 16x16 by default.</notes><hidden></hidden><headers></headers><code></code><blocks></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="6"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="7"></list></costumes><sounds><list struct="atomic" id="8"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="doSetVar"><l>slow</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="20" y="99"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doSetVar"><l>slow</l><block s="reportNot"><block var="slow"/></block></block></script></scripts><sprites select="0"><sprite name="Node" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="200,200,0,1" pen="tip" id="26"><costumes><list struct="atomic" id="27"></list></costumes><sounds><list struct="atomic" id="28"></list></sounds><blocks></blocks><variables><variable name="assigned node" transient="true"/></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>initialize node</l><list></list></block><block s="doWarp"><script><block s="doSetVar"><l>line length</l><block s="reportQuotient"><l>200</l><block s="reportDifference"><block s="reportVariadicMax"><list><block var="height"/><block var="width"/></list></block><l>1</l></block></block></block><block s="doDeleteFromList"><l><option>all</option></l><block s="reportGet"><l><option>costumes</option></l></block></block><block s="setSize"><l>2</l></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportNewList"><list><l>80</l><l>80</l><l>80</l></list></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block><block s="down"></block><block s="forward"><block s="reportMonadic"><l><option>neg</option></l><block s="reportMonadic"><l><option>floor</option></l><block var="line length"/></block></block></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportNewList"><list><l>200</l><l>200</l><l>200</l></list></block></block><block s="forward"><l>0</l></block><block s="up"></block><block s="doAddToList"><block s="reportPenTrailsAsCostume"></block><block s="reportGet"><l><option>costumes</option></l></block></block><block s="clear"></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block s="reportNewList"><list><l>200</l><l>200</l><l>0</l></list></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>18</l></block><block s="down"></block><block s="doRepeat"><l>5</l><script><block s="forward"><block s="reportQuotient"><block var="line length"/><l>2</l></block></block><block s="turn"><l>144</l></block></script></block><block s="up"></block><block s="turn"><l>18</l></block><block s="forward"><block s="reportQuotient"><block s="reportQuotient"><block var="line length"/><l>4</l></block><block s="reportMonadic"><l><option>cos</option></l><l>18</l></block></block></block><block s="down"></block><block s="up"></block><block s="doAddToList"><block s="reportPenTrailsAsCostume"></block><block s="reportGet"><l><option>costumes</option></l></block></block><block s="clear"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><l>90</l></block></script></block></script><script x="20" y="758.1666666666667"><block s="receiveMessage"><l>assign node</l><list><l>data</l></list></block><block s="doSetVar"><l>assigned node</l><block var="data"/></block></script><script x="20" y="836.0000000000001"><block s="receiveMessage"><l>update node</l><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="assigned node"/><l>0</l></list></block><script><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block><block s="gotoXY"><block s="reportVariadicSum"><list><l>-100</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>2</l><block var="assigned node"/></block><l>1</l></block><block var="line length"/></list></block></list></block><block s="reportDifference"><l>100</l><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportListItem"><l>1</l><block var="assigned node"/></block><l>1</l></block><block var="line length"/></list></block></block></block><block s="doDeclareVariables"><list><l>node value</l></list></block><block s="doSetVar"><l>node value</l><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="assigned node"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="assigned node"/></block><block var="data"/></block></block></block><block s="doIfElse"><block s="reportVariadicNotEquals"><list><block var="node value"/><l></l></list></block><script><block s="doSwitchToCostume"><block s="reportListItem"><l>1</l><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="setHeading"><block s="reportVariadicProduct"><list><block var="node value"/><l>90</l></list></block></block></script><script><block s="doSwitchToCostume"><block s="reportListItem"><l>2</l><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="goToLayer"><l><option>front</option></l></block><block s="goBack"><l>1</l></block><block s="setHeading"><l>90</l></block></script></block></script><script x="20" y="1311.0833333333335"><block s="receiveOnClone"></block><block s="show"></block></script></scripts></sprite><watcher var="width" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="height" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher scope="Node" var="assigned node" style="normal" x="10" y="94.00000799999998" color="243,118,29" hidden="true"/><watcher var="line length" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="slow" style="normal" x="10" y="178.00001599999996" color="243,118,29" hidden="true"/><sprite name="Generator" idx="1" x="-160" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="0" color="80,80,80,1" pen="tip" id="278"><costumes><list struct="atomic" id="279"></list></costumes><sounds><list struct="atomic" id="280"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="doSetVar"><l>height</l><l>16</l></block><block s="doSetVar"><l>width</l><l>16</l></block><block s="doBroadcastAndWait"><l>initialize node</l><list><l>Node</l></list></block><block s="doSetVar"><l>data</l><block s="reportReshape"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCONS"><l>2</l><block s="reportReshape"><l>1</l><list><block s="reportDifference"><block var="width"/><l>1</l></block></list></block></block></block><list><block var="height"/><block var="width"/></list></block></block><block s="doReplaceInList"><block var="width"/><block s="reportListItem"><block var="height"/><block var="data"/></block><l></l></block><block s="doWarp"><script><block s="doSetVar"><l>nodes</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block var="height"/><script><block s="doFor"><l>j</l><l>1</l><block var="width"/><script><block s="doAddToList"><block s="newClone"><l>Node</l></block><block var="nodes"/></block><block s="doBroadcastAndWait"><l>assign node</l><list><block s="reportListItem"><l><option>last</option></l><block var="nodes"/></block><block s="reportNewList"><list><block var="i"/><block var="j"/></list></block></list></block><block s="doBroadcastAndWait"><l>update node</l><list><block s="reportListItem"><l><option>last</option></l><block var="nodes"/></block></list></block></script></block></script></block><block s="doSetVar"><l>nodes</l><block s="reportReshape"><block var="nodes"/><list><block var="height"/><block var="width"/></list></block></block></script></block><block s="doDeclareVariables"><list><l>current node</l><l>previous node</l><l>next node</l><l>selected direction</l></list></block><block s="doSetVar"><l>current node</l><block s="reportNewList"><list><block var="height"/><block var="width"/></list></block></block><block s="doForever"><script><block s="doSetVar"><l>next node</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block><block s="doUntil"><block s="reportVariadicAnd"><list><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="next node"/></block><l>1</l></list></block><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="next node"/></block><l>1</l></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>1</l><block var="next node"/></block><block var="height"/></list></block><block s="reportVariadicLessThanOrEquals"><list><block s="reportListItem"><l>2</l><block var="next node"/></block><block var="width"/></list></block></list></block><script><block s="doSetVar"><l>next node</l><block s="reportMonadic"><l><option>id</option></l><block var="current node"/></block></block><block s="doSetVar"><l>selected direction</l><block s="reportRandom"><l>0</l><l>3</l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="selected direction"/><l>0</l></list></block><script><block s="doReplaceInList"><l>1</l><block var="next node"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="next node"/></block><l>-1</l></list></block></block></script><list><block s="reportVariadicEquals"><list><block var="selected direction"/><l>1</l></list></block><script><block s="doReplaceInList"><l>2</l><block var="next node"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="next node"/></block><l>1</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="selected direction"/><l>2</l></list></block><script><block s="doReplaceInList"><l>1</l><block var="next node"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>1</l><block var="next node"/></block><l>1</l></list></block></block></script><block s="reportVariadicEquals"><list><block var="selected direction"/><l>3</l></list></block><script><block s="doReplaceInList"><l>2</l><block var="next node"/><block s="reportVariadicSum"><list><block s="reportListItem"><l>2</l><block var="next node"/></block><l>-1</l></list></block></block></script></list></block></script></block><block s="doSetVar"><l>previous node</l><block s="reportMonadic"><l><option>id</option></l><block var="current node"/></block></block><block s="doSetVar"><l>current node</l><block s="reportMonadic"><l><option>id</option></l><block var="next node"/></block></block><block s="doReplaceInList"><block s="reportListItem"><l>2</l><block var="previous node"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="previous node"/></block><block var="data"/></block><block s="reportMonadic"><l><option>id</option></l><block var="selected direction"/></block></block><block s="doReplaceInList"><block s="reportListItem"><l>2</l><block var="current node"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="current node"/></block><block var="data"/></block><l></l></block><block s="doBroadcastAndWait"><l>update node</l><list><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="previous node"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="previous node"/></block><block var="nodes"/></block></block></list></block><block s="doBroadcastAndWait"><l>update node</l><list><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="current node"/></block><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="current node"/></block><block var="nodes"/></block></block></list></block><block s="doIf"><block var="slow"/><script><block s="doWait"><block s="reportQuotient"><l>1</l><l>30</l></block></block></script><list></list></block></script></block></script><script x="20" y="1411.4166666666665"><block s="receiveGo"></block><block s="goToLayer"><l><option>front</option></l></block></script><script x="20" y="1486.4166666666665"><block s="receiveInteraction"><l><option>mouse-entered</option></l></block><block s="bubble"><block var="data"/></block></script><script x="20" y="1560.2499999999998"><block s="receiveInteraction"><l><option>mouse-departed</option></l></block><block s="bubble"><l></l></block></script></scripts></sprite></sprites></stage><variables><variable name="width" transient="true"/><variable name="height" transient="true"/><variable name="line length" transient="true"/><variable name="slow" transient="true"/><variable name="data" transient="true"/><variable name="nodes" transient="true"/></variables></scene></scenes></project><media name="Origin Shift Maze Generation" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"></media></snapdata>