<snapdata remixID="10303788"><project name="U3L1 Tictactoe" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Square" idx="1" x="0" y="-150" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACHklEQVRoQ92aUU7DMBBE3UuU34qTcJaicKhCzpLfFsQHJypKRZBjnOzMrneJ2k+69s6bMbYbZZfu7LNLKT2llAZXrrHLtdKh9velWkDg4fD4eQM6PndD/3YChhhLRqixo8PnfPlIL1335QPkKHzJCx8gBASpYRO8pnR+LxN6PbVbDh6iBUifhPKmCBRSA6blD1QT0hCgnP5/gEC3NWUckKOzv+KnHkyvrHYZiJlQY2XrMT9650DHbuh7x4M1wCRuybV21WE+X6CARLhdzipouogy9zZjT9+EWi0pAjIWqCaMEIv4IwNJDaXvERUNbxN1IC+Ro3DL3NLY6m177QeeNKE2Dcu44mYhLzmmGbqrORrDAzmKYby71Va0/AVCf+BtCSxzgk+ItrEY0MqIhXn0QPmErUSyuyC05Gq7XMCBqAq+1EVv2+yzglJlyyQXHNAvOZWl/oPigNB0ioOStSAOaE0ZCgvQyecQevqz/18NIfLW20hIcp6Aj79tS+KR71cAYxIiHEZ41mr0QIEiGUg9ENMlsFZ+0BiRBNtj5azCEmIuoui9j4UAU5YTAifaShmW0KTWydWZGcYeHJBXDMySFjT4HKxGly2+2RPyFK+YO2ZTkIRJ3xOR2RMimi2W3h0QY4oA77MpMAJrtYbEtrHkrAZk4/2AUJfROjBJbJezNG3oPjKVPiHj0xlEnKZmBuT+RqNGYf5mI/iW437/cPkGo3/9hmN2bfYAAAAASUVORK5CYII=" id="10"/></item><item><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAADrUlEQVRoQ82aPW8TQRCGJ1SxIpHUVojScfyAKCmpIpTYSBEQ2xBHQRi3fBaUAdMhwb8IpkpJCXQBpNBg3EKwBJShi5AwOnNn793txzu7e7Gv8sfu7Dzzzs7u3t0UES2WyxuPZmampym+poioP/yW/KD7T9aF214xLPLzycmfz+FwF5eWll9v79wcAYW9QyDRmfDzBF+/fv6gT4eH3wZAlUptv93em3P2Nw6CsyG+gYP3H+lpq+UZiOsHJwCytsJvWaCXe3ODFEMvjjOozTjVxbkM9h2PQkgQkDZpyD7RwQddykVGj773aOHcPBij02l21OvRwnzWJ0ihW40mFYtFaj3Z9eOtGH0LJTpfulReL9Gz5y/oysblhE8Q0PHxb2rcblIQBP6gLEMzgCmV6MZWXeoLBBSOPYQ6H1Cr5UmpGApUyQQTmksCbdb226+EdSg10FiUinxAYLJAwMKqhQIjzc22TqdL5bI6zUR7cMqJnZyUYkIblUnZ4wEJnZ2gQIkyMEAw5EBAx0ShEKsf2NfEZFRGUVB4ColeRI7nodRgzoSluS4vzcpgGHcKpjBG//uESijzePf/0UV2pTMh+m6vUGoQH1BwmmkC7b7bFoy7QPmAUa9Dur2WQuqYywbKF4zVwppQW1HRBlCNJgUXAmqJ80DSXgtjUTGdyrauZiBK+YZxV8hQBXVQcDUDK23czFuVU42bgeoTdbrCEUBXmlVGVfNYug5x7ykAERShqtWK9jwDmNM2yV0hsfpt1bfp3ds3dOfuveThzGLyqxZb6J6Ca9TC/uGcWV9bo0KhQFevbapPvo5w+SiUWsfEOfPwwf3Rcd40fyzuPeQDJEgqK81ISTdmhULJXIF06wwLipGGaiCGEVk0kWMzBMX0Q68Q01gMxjnPQFDG/Bs18J5y0jSTBSan4zwGBCrlsmu2UkqyY9CvQwypXWBcjh5DF32eWJECgMYmcfSQ3Us3ZAuWcmlvBKM+lEmbt0q/yIgdUNTZCAPOPZl6tlDWQEYYNMfEdqkAGKEkAbMC8gpjUNEIlQocBsSZMw5pBh8SNepjQLo5YwvA7IcqBe/lWPcAmM6i08340A29FcyCib3LG0rxeBRKudXVS7S8sjK+56uK6letXbd7aDyJj/XD9JudPZvJVvWNxrAp540SdCJo1p30vkxpUpPOUMrZ+Jprn1MF8l0MmPYmUyEmhJgNCSDpC4Cc3HFwBBoGsC++ALhIRDtGw2eI6K+ile4/o2FDA57tr/8AZ1nYQn8QF4YAAAAASUVORK5CYII=" id="11"/></item><item><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAFm0lEQVRoQ91aTUxcVRT+xq0C3agLBFtafsuiA210Y2nRECNYNWpaqBrTMmCJC5Bo3AADbAwypQtT25khMSIwWE1twcQQLUUX0lIYTRygJbER1OoOhrp1zLnMM+/Ne+/e++57oOlLJiS8c8893/nOPffcc58P99jjA3AIwNS9gGvnzoI5BujEycDUYDTMx5QCQNL/02fm2iyaAoEf5QFtBxA7p0k4Ux6Qi0lMPpAwTNVv8oCsZtAM2woDFXUzQI1bEHKTX1/B/Hwcy7duYurKN7h9+2eTS156+Shyc3Oxz1+B6sNVyM97xJoYnsMy3jljSMDEyuqviISjGB4eQuX+A+xXUeFHSXGRpbE0+dLNW/ghPo/Ll75g8sfqG/DiC0dUIw7OANlMw4BEohj+ZAhNb7Sgof6ovbc5pn5+8TJioyNYX1tD86kWJWCuAX308TB6gp0MyKnmAHJyspW9qw2kcO3v60Nefj66ujodOUcZ0Pp6El3BbiwkEujp7cXjjx1wFv+C8CX9H56PIHzuLM6FI6h5qtqs30KHEiCarDHQhOzsbJwO9duz4kH2ozB8u70N74cGpELQMSANTElJCXp7gq7DS0ZBYmERz9bVGUHZOEsubesGn2xsQlZWFs4MhGRsATzakAlU+d4yfD9z3T68AYkspzPog7PnMX11CtFoGDnZiotfFIac91r4xeNx2zCXYwhAIrGI8vIy/JRYwN6yUjl2nEqJwAJofaudsW4XIdJriELNX1GJN1uanZrpqfx6Mgn/Pj9GRmOWoScFiIQa6o/BRLXeo1belfC4CloK/fj8HNhRR6X0aW1rx57Cok12tshILrCMOSnT+v1+jE9MmMJfyBCVNY/m52Ftbd2TKsBguAvnvNcXwl93N0xbhxAQlTZUPEqnaZUYshvDAUxpvK21DZOTXxlG8wGlNrPKEwerpHZpWywumOD5p6BgtynsZq4LzkNWg1yR4BQcR57WdqazzYAiYUMTxOfzIZUirZzHqZGaKlGWtJLTmUHZjh79VsINOXoZCoVw4dOYK1KUBks4iY4ZY7HYZvpOP9xKgV5GIhHDgC1hyiljOuMz7RMyZAlIwnvbkSCsHK4GSCmGXAziHBXkGUoBiUXrXO/CNOdDBdX3d99OG/ZIYbXtu8+H1N+6LCcbbrIZTASRM59tluP15Wpqnub3DASp9V97ZR3hACCdAJ6prTNs+sLSp6MziN17CvH6a8dFU237e9r0r05PG7pCQkBar+w/2Ysy2dexrLW6WC2n+78QEJXqO3bk4JeVVbVWrde8pY2nyLn/gSy8+067YQZhLUfSdoO9tlVWH8/JQoZoEjoTHaqqMp9YZSzwKhlk1HB//nHHso0mBUhjif6yXpxKa8ojYNqB024JSANiLB2swkhM15wQAXPaZ+CBTr+jVF1YVGxaO4biVPZKUqYvJt1zUGCMjt1zs7ObfUGbSwFphjQPUIJYWlpCNGKvVGZpSQNPK9OcyRojpaW2F9eOAWnryRNQUsgBAxhBk1MJkB5UMNhl30lVCKtMjFSvne7vs2xZWflDGRApo5im+5vOYI+xNPIACCWh7u4erK6sYODMAL/97KRSEEUFeaSzo4PdtgUCAe7NAFdX2ijaNIeGRxkrKreCRoZOBKYGBwVfklhYpTficPWTpgpY5BRt8x4ZHWOMkw5V57gKuUxDCdjFS+P4cmIcczdmceS551kLeX9lBRMtLSlm6ZaahBsbd/Hb73ewvLzMZOl3/JVXUVtb64xl7aiW/lzHE4asGKA1MHtjnhlM3yokk0l8dmGMie7aVcBYoIszDTC7o80wzqRXYm16ypBMaBlkJAx0qtMekNOyxenMXsp7meW8tMu1rhRgfx7KZMhNeEgUna7BpBUYQs7zLxop8+gaRl4ZzdXjAx568OFr/wCA6uad0NIdsAAAAABJRU5ErkJggg==" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="square number"><l>9</l></variable></variables><scripts><script x="268" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportGet"><l><option>self</option></l></block></block><l>Empty</l></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="square number"/><block var="board"/><l>X</l></block><block s="doIfElse"><custom-block s="Won? %txt"><l>X</l></custom-block><script><block s="doBroadcast"><l>X is the winner</l></block></script><script><block s="doChangeVar"><l>counter</l><l>1</l></block><block s="doIfElse"><block s="reportEquals"><block var="counter"/><l>9</l></block><script><block s="doBroadcast"><l>tie game</l></block></script><script><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="square number"/><block var="board"/><l>O</l></block><block s="doIfElse"><custom-block s="Won? %txt"><l>O</l></custom-block><script><block s="doBroadcast"><l>O is the winner</l></block></script><script><block s="doChangeVar"><l>counter</l><l>1</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block></script><script x="371" y="600"><block s="receiveGo"></block><block s="doWait"><l>1</l></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>0</l><l>0</l></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l></list></block></block><block s="doSetVar"><l>counter</l><l>0</l></block></script><script x="64" y="567.0000000000002"><block s="receiveMessage"><l>X is the winner</l></block><block s="hide"></block></script><script x="46" y="436.99999999999955"><block s="receiveMessage"><l>tie game</l></block><block s="hide"></block></script><script x="22" y="659.9999999999995"><block s="receiveMessage"><l>O is the winner</l></block><block s="hide"></block></script><script x="100" y="724.9999999999993"><block s="receiveGo"></block><block s="removeClone"></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="135.15,0,40.5450000000001,1" pen="tip" id="139"><costumes><list id="140"><item><costume name="alonzo" center-x="45" center-y="60" image="data:image/png;base64,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" id="141"/></item></list></costumes><sounds><list struct="atomic" id="142"></list></sounds><blocks></blocks><variables></variables><scripts><script x="66" y="48"><block s="receiveGo"></block><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="60" y="149"><block s="receiveMessage"><l>X is the winner</l></block><block s="show"></block><block s="doSayFor"><l>Game Over X is the winner</l><l>10</l></block></script><script x="61" y="250.99999999999991"><block s="receiveMessage"><l>O is the winner</l></block><block s="show"></block><block s="doSayFor"><l>Game Over O is the winner</l><l>10</l></block></script><script x="64" y="352.9999999999999"><block s="receiveMessage"><l>tie game</l></block><block s="show"></block><block s="doSayFor"><l>tie game</l><l>10</l></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="3.40625" y="3.406250000000007" color="243,118,29" hidden="true"/><watcher scope="Square" var="square number" style="normal" x="8.054187192118206" y="8.054187192118228" color="243,118,29" hidden="true"/><watcher var="counter" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0.5181700718731008" y="3.1290075102963613" color="243,118,29" extX="80" extY="70"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="makeBoard" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>square number</l><l>0</l></block><block s="show"></block><custom-block s="for %upvar = %n to %n %cs"><l>row</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>column</l><l>1</l><l>3</l><script><block s="doChangeVar"><l>square number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;pt:lança _&#xD;</translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;pt:captura _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;pt:lança _ _&#xD;</translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;pt:se _ , então _ e faz pausa em tudo $pause-1-255-220-0&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;pt:ignora _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="cascade %&apos;num&apos; times %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="138" collapsed="false">Call f(f(f(...(f(x))))) n times where the three input slots are n, f, and x from left to right.  The # variable can be used inside f to represent how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado de _ invocações em cascata de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%n"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="cascade until %&apos;pred&apos; %&apos;function&apos; %&apos;init&apos; %&apos;#&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Call f(f(f(...(f(x))))) until condition is true, where the three input slots are condition, f, and x from left to right.  The # variable can be used inside f or condition to indicate how many times f has been called.</comment><header></header><code></code><translations>pt:o resultado da invocação em cascata até que _ de _ com argumento inicial _ _&#xD;</translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input><input type="%upvar"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doSetVar"><l>result</l><block var="init"/></block><block s="doSetVar"><l>#</l><l>0</l></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list><block var="result"/></list></block><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doSetVar"><l>result</l><block s="evaluate"><block var="function"/><list><block var="result"/></list></block></block></script></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="compose %&apos;f&apos; %&apos;g&apos;" type="reporter" category="control"><comment x="0" y="0" w="90" collapsed="false">Returns the function f(g(x)) where f and g are the two inputs.</comment><header></header><code></code><translations>pt:a composição de _ com _&#xD;</translations><inputs><input type="%repRing"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block var="g"/><list><l></l></list></block></list></block></autolambda><list></list></block></block></script></block-definition><block-definition s="repeat %&apos;action&apos; until %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Like the built-in REPEAT UNTIL block, except that the ending condition is not tested until the script has been run the first time.  So the script is run at least once.</comment><header></header><code></code><translations>pt:repete _ até que _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="evaluate"><block var="pred"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;action&apos; while %&apos;pred&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Run the script repeatedly, as long as the given condition is true.  Runs the script at least once before testing the condition.</comment><header></header><code></code><translations>pt:repete _ enquanto _ $loop-0.7&#xD;</translations><inputs><input type="%cs"></input><input type="%boolUE"></input></inputs><script><block s="doRun"><block var="action"/><list></list></block><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat while %&apos;pred&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="90" collapsed="false">Runs the script repeatedly, as long as the condition is true.  Tests the condition before the first time the script is run.  Like the built in REPEAT UNTIL except that in this block the condition must be true, not false.</comment><header></header><code></code><translations>pt:enquanto _ , repete _ $loop-0.7&#xD;</translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doUntil"><block s="reportNot"><block s="evaluate"><block var="pred"/><list></list></block></block><script><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="repeat %&apos;num&apos; %&apos;#&apos; %&apos;action&apos;" type="command" category="control"><comment x="0" y="0" w="171" collapsed="false">Runs the script the specified number of times, like the built-in REPEAT block, but this one provides the # variable that can be used inside the script.  Try&#xD;REPEAT (200)&#xD;                MOVE (#) STEPS&#xD;   RIGHT 92&#xD;with the pen down.</comment><header></header><code></code><translations>pt:repete _ vezes _ _ $loop-0.7&#xD;</translations><inputs><input type="%n"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>0</l></block><block s="doRepeat"><block var="num"/><script><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; step %&apos;step&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>pt:para _ de _ com passo _ a _ _ $loop-0.7&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>test</l></list></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doIfElse"><block s="reportLessThan"><block var="step"/><l>0</l></block><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>test</l><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doUntil"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;val&apos; in %&apos;loop&apos; %&apos;body&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666669" collapsed="false">Provides LOOP as a function of one input that runs&#xD;the body of the LET with A set to the function input,&#xD;so the body can run itself recursively.&#xD;See COPY block in Variables for an example of use.</comment><header></header><code></code><translations>pt:tendo _ o valor inicial _ , executa _ definido como _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>a</l><block var="val"/></block><block s="doSetVar"><l>loop</l><block s="reifyScript"><script><block s="doSetVar"><l>a</l><block var="new value"/></block><block s="doRun"><block var="body"/><list><block var="a"/></list></block></script><list><l>new value</l></list></block></block><block s="doRun"><block var="loop"/><list><block var="a"/></list></block></script></block-definition><block-definition s="TicTacToe wins" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="list"/></list></custom-block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListContainsItem"><block var="board"/><custom-block s="TicTacToe wins"></custom-block></block></autolambda><list></list></block><block var="board"/></block></block></script></block-definition><block-definition s="Won? %&apos;Winning Player&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doForEach"><l>item</l><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><list><custom-block s="TicTacToe wins"></custom-block></list></custom-block><script><block s="doIfElse"><block s="reportAnd"><block s="reportListContainsItem"><block var="item"/><l>X</l></block><block s="reportListContainsItem"><block var="item"/><l>O</l></block></block><script></script><script><block s="doIfElse"><block s="reportListContainsItem"><block var="item"/><l>Empty</l></block><script></script><script><block s="doIf"><block s="reportListContainsItem"><block var="item"/><block var="Winning Player"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1167">X,Empty,Empty,X,Empty,O,X,O,Empty</list></variable><variable name="counter"><l>4</l></variable></variables></project><media name="U3L1 Tictactoe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>