<snapdata remixID="9302429"><project name="U5-TicTacToeproject" app="Snap! 5.4, http://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" codify="false" inheritance="true" 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="-50" y="-100" 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="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAABJklEQVRoQ+2bsQ2DMBBFfzbIBklJl0hUVA6V18gISAyAGQCJdVwRV1RIKSnJBowQOUJICUnqs/WZ4N79/3SN2QEwAE4Azojzu+8WSAXgEicjbp+Qk9YaWZYdQwbu+36y1noEz/EOqbWe2rZFkiRBQ47jOBVFAWvtFtIYg6qqQg5xnb2ua3ieTZKEDCxfJkknA6os68q6sq6yNkAn6aSsRv6dhnVlXVlXWRugk3RSViN5QugknaSTsjZAJ+mkrEbyTtJJOkknZW2ATtJJWY3knaSTdJJOytoAnaSTshrJO0kn6WQMTiql5qZpkKbpPiCezajDMMxlWcI55zk2z7NnpRTyPA8asuu62Tnn4b9Chhzgr9lfSV6XB+mHGAkBPDxkrL9KrJk9AbeDqAKws++iAAAAAElFTkSuQmCC" id="10"/></item><item><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAADwklEQVRoQ93bvU/bQBgG8Ic2QgyVYOiQDYYqa5K9kKAudAL+AsLGCGoGNmBjhIGFDIGNDcYuFQyMVUUEE2KAjaGqYEOIStXjcpZz2Gf7Puw4J7HEDvbv3vfeM3dmBMPZJgA8CNoIgE0AVQC1IfG+A1AG8AzgD4BfAtkA0BwSpMw4k5HPpVIJ7XZ7dGxsrFDmp6cnHBwc4P7+PhbpnVCr1XB6eoqJCaZ2Mdri4iJOTk78m61UKr+vr68/AngTSf+kIkGXl5e9KIrW7XZxd3eHzU2WGwm5sLDQ1xtFgMrAjY0ND7e1tRWO5MHJyUnwi6INMlQGLi0t+RFVItkTDP2gQ1VABigWyZPCoMx1RjbvFgdMjAyDstqy6uYJTQJMhfRK09kZWJAeHx+9AOYJlbMrOAbl7EqUrsEvXVxcoNls5gpNA0wdSYHNEyoDG42Gl2GqljqSeUJlYLVa9YBxT2PaSGKzjKguUDtdsx6jJkArSNcRNQVaQ7qCcjjMzs7i4eH/H/ZJx6DxFKKqYjbHqC2g1UjarLoycHx83CtyU1NTWk+RRtU16oomEQ0DcpoweXx0gowao3yo52OhqnOCY5ARNAU6SVfV9MJjhLZarTdOFxEUF3EWSXGB29tbL3q9Xs+HyVCeU6/X/SpqK4KZIXkhTgF8qA+D8hhTlJFksw10nq7BnAyD7u3todPpOAVmioyKaLAjjo+PlYVJa/5Iuvyh+8vDvseITk9P4+rqqu9wVEGycW3nhUe+SSJnZmZweXk5nEi5yMgd4CqamUaS04SoogSy8Ozv7yunl0Kla9jyPR8KVNOLDWBm1TUKKBCuoc7TNenaqEuoU2RSoCqi3JPhdoVJc4ZMC1RBOXZZeXWbE6QuMAhdXV3F4eGh7zKBWkeK/UBxd6rl+7jIEGYDahWZdvk+DsnjNqDWkC6AohNMoVaQNtZG46JqAjVGZgE0jagRMkugCVQbmQdQF6qF5DIh12VE012+jxuHquNpxmhqpM3lexNkmuklFVIG8j0ffha3CWqKMY1oYqTLxV/TTpBTl+u8fNYVnZ8IOcjAqGIUfHssFlkEoIDu7OxgbW3NTwwB3d3djX63bn5+vm8T1MXqtmmqyt8Pe3tsbm4O29vbPLX/VdD19XUcHR2B+xRsRQAKsAwtl8viBd9+ZKlU+vvy8vK+aMAo6Ovn5+L17C8APgfTYGVlBeyNojXWk+AbzNx7EshvAD4UDZTwfn8Syd1RbgV/BTAK4BzATcJfMMinfXq9uR9Ein+V4If8+T7Id65zb/8Auyk3cF5UgpsAAAAASUVORK5CYII=" id="11"/></item><item><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAEX0lEQVRoQ+2aizUsQRCGeyJABGwEiAARsBEgAkSwuxEgAjYCRGA3AkSACBDB3PPNubWnts2juuexa6lznPsw091//VV/V1dP4pwbOuf23OraNPkPcrC6GN3oV4IcpWn641lNkmTknBMc80ymaboyUZskBGlm3YF8e3tz7+/v2aybm5tua2urVYe2DnI6nbr7+3s3mUzc8/NzKZidnR23v7/vjo6O3N5ecyLfCkiYGo1GGbjPz88oltbX1zOwg8GgNtONggTQ9fW1Gw7ZbotNh6gO3aI3GO/s7MwBPMYaA3l7e+suLi6+MQcgGJEwLFukhDV/Ss7K8wC8vLx0JycnwTgbAQm4q6urucnJKRgAXIyRw7xPTms7Pz/PwIZYLZCE5+npaZZ7YjAHYNhrwhgbYJpZxr65uTGHbzRIAB4cHMwp5vHxcQYwNneKnMJcAB2Px7NHUOLHx0fTXNEgYZA8FEMFqwSnLrOMj2qLkZ8wWmVRIP3JmChGEKoWl/d7HIuDQ5wbDJIc6ff7s0mQdl90YhYf8g6hy1Yldnd3V6oBwSB7vZ5jb8MODw/nRCdkoXWfRXweHh6yYSgLX19fC4cMAgljbBfY2tpaBrZpkbGCR4wA9/X1lb3CtgLDeWYGyaCwKGVa2aDWhdZ9TjsdZ8NmntPNIPWA7IUSsnUXWvd92JQ9tMjxZpC7u7uzPbFLNa1yglZbqiwqJd9MIAnRjY2N2bsfHx8Ly0UfgGVtJpAWb1V5vM3fU/28vLxkU+RFmQkkG72UVMsgOL7DtF5QWupKjGdNIDlJyGmAejH2ZNEWm+QhdTSWl5d/IMXziI7sj8skOrI+LT7sk6xRm4lJ9ZBb1lZl2Rr/QArlWqKfnp4c/14mo9VJsYJtb29/a32amFwhdR3OXfjo3NMgq85ui2BYn3GjtxDdCcjbbBcBTM+pi5W8NowK12ImdcxXHVAXAVhvcXmaYcpJFs7+IwfUZRIfTUDREdAMUofEMoWsZV1mkLo+hFlO4W1fuVWFPgd3uhViRXW1GSQDaZXl7wy6SKMol0Ny0YHZfAoRIL7nFrmd+P3XssgKYhKwOgcQI9jsugJCbGBRDg1VGhEMkoEJVTmJk5eobVetSb9rSBlHyJbNHwwSNvEkQGVLCbl8qZPDpAvde7mWp/cLwKpIigLJQn21bTt0/RBlDdYuRTRIJvGTH6By9V2HMf9d7j387nhIW7QWyLzQ5f8IHxpedXtBRAvXEvqrEWuIBncGqlghV7iAETGS5wGJGrOHWQsHxqJpRpT4jWJEhhOHdSxZR20mZSBUj9YgPyJI2jmwK1fsLFIWCii5cgBA3rc+sEe48hOj4o2B1GD9q++qSCj7fRNX9I2D1NWRfLIi94hWsNx7yicxoaGZN0drIPVkhLL+7EyHqA5d+ewsJiTLHNgJSCuDbT1n6gy0NXlX4/42Jr99nj1J0zTum7GuKDLMkyQJt7KC43d+g27w0497JGtJ/vjwrHL7P5XNSaMYdLI4AAAAAElFTkSuQmCC" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="square number"><l>0</l></variable></variables><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="removeClone"></block></script><script x="20" y="81"><block s="receiveGo"></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l><l>5</l><l>6</l><l>7</l><l>8</l><l>9</l></list></block></block><block s="doWait"><l>.1</l></block><block s="doSetVar"><l>human&apos;s symbol</l><l>foo</l></block><block s="doUntil"><block s="reportListContainsItem"><block s="reportNewList"><list><l>X</l><l>O</l></list></block><block var="human&apos;s symbol"/></block><script><block s="doAsk"><l>Type X if you want to go first, otherwise type O.</l></block><block s="doSetVar"><l>human&apos;s symbol</l><block s="getLastAnswer"></block></block></script></block><block s="doSetVar"><l>computer&apos;s symbol</l><custom-block s="opponent %s"><block var="human&apos;s symbol"/></custom-block></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="doIf"><block s="reportEquals"><block var="human&apos;s symbol"/><l>O</l></block><script><block s="doBroadcast"><l>5</l></block></script></block></script><script x="20" y="410"><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><custom-block s="move in this square"></custom-block></script></block></script><script x="20" y="523.0000000000002"><block s="receiveMessage"><l><option>any message</option></l></block><block s="doIf"><block s="reportEquals"><block s="getLastMessage"></block><block var="square number"/></block><script><custom-block s="move in this square"></custom-block></script></block></script><script x="20" y="628.0000000000002"><custom-block s="best empty square %l"><l/></custom-block></script><script x="20" y="660.0000000000002"><custom-block s="next move for computer"></custom-block></script><script x="207" y="663.9999999999997"><block s="doIf"><block s="reportGreaterThan"><custom-block s="fork %s"><block var="computer&apos;s symbol"/></custom-block><l>0</l></block><script><block s="doReport"><custom-block s="fork %s"><block var="computer&apos;s symbol"/></custom-block></block></script></block><block s="doIf"><block s="reportGreaterThan"><custom-block s="fork %s"><block var="human&apos;s symbol"/></custom-block><l>0</l></block><script><block s="doReport"><custom-block s="fork %s"><block var="human&apos;s symbol"/></custom-block></block></script></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="10.000000000000227" y="10" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="7.473684210526244" y="32.249998000000005" color="243,118,29" extX="80" extY="70"/><watcher var="positions" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher scope="Square" var="square number" style="normal" x="10" y="40.000001999999995" color="243,118,29" hidden="true"/><watcher var="human&apos;s symbol" style="normal" x="10" y="70.00000399999999" color="243,118,29" hidden="true"/><watcher var="computer&apos;s symbol" style="normal" x="13" y="68.00000599999998" color="243,118,29" hidden="true"/></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="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="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></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></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></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></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="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="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></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="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="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></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="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>square number</l><l>0</l></block><block s="show"></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>-50</l><l>50</l></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><block s="doSetVar"><l>square number</l><l>0</l></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;triple&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="triple"/></list></custom-block></block></script></block-definition><block-definition s="status of winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><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></block></script></block-definition><block-definition s="won? %&apos;player&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="status of winning triples"></custom-block><block s="reportNewList"><list><block var="player"/><block var="player"/><block var="player"/></list></block></block></block></script></block-definition><block-definition s="%&apos;number&apos; copies of %&apos;value&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="number"/><l>1</l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="value"/><custom-block s="%n copies of %s"><block s="reportDifference"><block var="number"/><l>1</l></block><block var="value"/></custom-block></block></block></script></block-definition><block-definition s="index of %&apos;value&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="list"/></custom-block><script><block s="bubble"><l>INDEX OF: List doesn&apos;t contain value.</l><comment w="90" collapsed="true">Cause an error.</comment></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="list"/></block><block var="value"/></block><script><block s="doReport"><l>1</l></block></script></block><block s="doReport"><block s="reportSum"><custom-block s="index of %s in %l"><block var="value"/><block s="reportCDR"><block var="list"/></block></custom-block><l>1</l></block></block></script></block-definition><block-definition s="go to point %&apos;p&apos;" type="command" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="winning square for %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>ready-to-win triple</l></list></block><block s="doSetVar"><l>ready-to-win triple</l><custom-block s="find first item such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportEquals"><custom-block s="number of %s in %l"><block var="player"/><l/></custom-block><l>2</l></block><block s="reportEquals"><custom-block s="number of %s in %l"><custom-block s="opponent %s"><block var="player"/></custom-block><l/></custom-block><l>0</l></block></block></autolambda><list></list></block><custom-block s="status of winning triples"></custom-block></custom-block></block><block s="doIfElse"><custom-block s="empty? %l"><block var="ready-to-win triple"/></custom-block><script><block s="doReport"><l>0</l></block></script><script><block s="doReport"><custom-block s="find first item such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="ready-to-win triple"/></custom-block></block></script></block></script></block-definition><block-definition s="opponent %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="player"/><l>X</l></block><script><block s="doReport"><l>O</l></block></script><script><block s="doReport"><l>X</l></block></script></block></script></block-definition><block-definition s="number of %&apos;value&apos; in %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListLength"><custom-block s="keep items such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><block var="value"/></block></autolambda><list></list></block><block var="triple"/></custom-block></block></block></script></block-definition><block-definition s="can %&apos;player&apos; win now?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><custom-block s="winning square for %s"><block var="player"/></custom-block><l>0</l></block></block></script></block-definition><block-definition s="next move for computer" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><custom-block s="can %s win now?"><block var="computer&apos;s symbol"/></custom-block><script><block s="doReport"><custom-block s="winning square for %s"><block var="computer&apos;s symbol"/></custom-block></block></script></block><block s="doIf"><custom-block s="can %s win now?"><block var="human&apos;s symbol"/></custom-block><script><block s="doReport"><custom-block s="winning square for %s"><block var="human&apos;s symbol"/></custom-block></block></script></block><block s="doIf"><block s="reportGreaterThan"><custom-block s="fork %s"><block var="computer&apos;s symbol"/></custom-block><l>0</l></block><script><block s="doReport"><custom-block s="fork %s"><block var="computer&apos;s symbol"/></custom-block></block></script></block><block s="doIf"><block s="reportGreaterThan"><custom-block s="fork %s"><block var="human&apos;s symbol"/></custom-block><l>0</l></block><script><block s="doReport"><custom-block s="fork %s"><block var="human&apos;s symbol"/></custom-block></block></script></block><block s="doIfElse"><block s="reportNot"><custom-block s="empty? %l"><custom-block s="find first item such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportEquals"><custom-block s="number of %s in %l"><block var="computer&apos;s symbol"/><l/></custom-block><l>1</l></block><block s="reportEquals"><custom-block s="number of %s in %l"><block var="human&apos;s symbol"/><l/></custom-block><l>2</l></block></block></autolambda><list></list></block><custom-block s="status of winning triples"></custom-block></custom-block></custom-block></block><script><block s="doReport"><custom-block s="best empty square %l"><block s="reportNewList"><list><l>5</l><l>2</l><l>4</l><l>6</l><l>8</l><l>1</l><l>3</l><l>7</l><l>9</l></list></block></custom-block></block></script><script><block s="doReport"><custom-block s="best empty square %l"><block s="reportNewList"><list><l>5</l><l>1</l><l>3</l><l>7</l><l>9</l><l>2</l><l>4</l><l>6</l><l>8</l></list></block></custom-block></block></script></block></script></block-definition><block-definition s="best empty square %&apos;moves&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="keep items such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportListContainsItem"><block var="board"/><l></l></block></autolambda><list></list></block><block var="moves"/></custom-block></block></block></script></block-definition><block-definition s="move in this square" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><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></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="square number"/><block var="board"/><l>O</l></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIfElse"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X Won!</l></block></script><script><block s="doIfElse"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O Won!</l></block></script><script><block s="doIfElse"><custom-block s="empty? %l"><custom-block s="keep items such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></custom-block></custom-block><script><block s="bubble"><l>Tie Game!</l></block></script><script><block s="doIf"><block s="reportEquals"><block var="X&apos;s turn?"/><block s="reportEquals"><block var="computer&apos;s symbol"/><l>X</l></block></block><script><block s="doBroadcast"><custom-block s="next move for computer"></custom-block></block></script></block></script></block></script></block></script></block></script></block-definition><block-definition s="find first item 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="doDeclareVariables"><list><l>items</l></list></block><block s="doSetVar"><l>items</l><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block var="data"/></custom-block></block><block s="doIf"><custom-block s="empty? %l"><block var="items"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportListItem"><l>1</l><block var="items"/></block></block></script></block-definition><block-definition s="fork %&apos;me&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>singles</l><l>atoms</l><l>repeated</l></list></block><block s="doSetVar"><l>singles</l><custom-block s="keep items such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportEquals"><custom-block s="number of %s in %l"><block var="me"/><l/></custom-block><l>1</l></block><block s="reportEquals"><custom-block s="number of %s in %l"><custom-block s="opponent %s"><block var="me"/></custom-block><l/></custom-block><l>0</l></block></block></autolambda><list></list></block><custom-block s="status of winning triples"></custom-block></custom-block><comment w="62.666666666666664" collapsed="true">TIF B(d)</comment></block><block s="doIf"><custom-block s="empty? %l"><block var="singles"/></custom-block><script><block s="doReport"><l>0</l></block></script></block><block s="doSetVar"><l>atoms</l><custom-block s="combine with %repRing items of %l"><block s="reifyReporter"><autolambda><custom-block s="append %mult%l"><list><l/><l/></list></custom-block></autolambda><list></list></block><block var="singles"/><comment w="64" collapsed="true">TIF B(e)</comment></custom-block></block><block s="doSetVar"><l>repeated</l><custom-block s="find first item such that %predRing from %l"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportIsA"><l></l><l><option>number</option></l></block><block s="reportGreaterThan"><custom-block s="number of %s in %l"><l></l><block var="atoms"/></custom-block><l>1</l></block></block></autolambda><list></list></block><block var="atoms"/></custom-block><comment w="64" collapsed="true">TIF B(f)</comment></block><block s="doIf"><custom-block s="empty? %l"><block var="repeated"/></custom-block><script><block s="doReport"><l>0</l></block></script></block><block s="doReport"><block var="repeated"/></block></script></block-definition><block-definition s="append %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="287" collapsed="false">Take any number of input lists, and create a new list containing the items of the input lists.  So&#xD;              APPEND [A B] [C D]&#xD;where the [,,,] are lists reports the list&#xD;              [A B C D]&#xD;not [[A B] [C D]].</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="lists"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListLength"><block var="lists"/></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="lists"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="lists"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><custom-block s="append %mult%l"><block s="reportCDR"><block var="lists"/></block></custom-block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="lists"/></block></block><custom-block s="append %mult%l"><block s="reportCONS"><block s="reportCDR"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><block s="reportCDR"><block var="lists"/></block></block></custom-block></block></block></script></block></script></block-definition><block-definition s="reverse %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="223" collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>helper</l></list></block><block s="doSetVar"><l>helper</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="input"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><block s="evaluate"><block var="helper"/><list><block s="reportCDR"><block var="input"/></block><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="input"/></block><block var="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><block s="doWarp"><script><block s="doReport"><block s="evaluate"><block var="helper"/><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definition s="remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></block-definition><block-definition s="sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="204" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l></list></block><block s="doSetVar"><l>odd items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><l/></block><block s="evaluate"><block var="even items"/><list><block s="reportCDR"><l/></block></list></block></block></block></script><list></list></block></block><block s="doSetVar"><l>even items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="evaluate"><block var="odd items"/><list><block s="reportCDR"><l/></block></list></block></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="#1"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#2"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="#2"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#1"/></block></script></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="odd items"/><list><block var="data"/></list></block><block var="function"/></custom-block><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="even items"/><list><block var="data"/></list></block><block var="function"/></custom-block></list></block></block></script></block-definition><block-definition s="assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="a-list"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="key"/><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="a-list"/></block></block></script></block><block s="doReport"><custom-block s="assoc %s %l"><block var="key"/><block s="reportCDR"><block var="a-list"/></block></custom-block></block></script></block-definition><block-definition s="%&apos;#&apos; map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><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="doSetVar"><l>#</l><block var="count"/></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><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><list><l>data</l><l>count</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="doSetVar"><l>#</l><block var="count"/></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="%upvar map %repRing over %mult%l"><l>#</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="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><list><l>data lists</l><l>count</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><l>1</l></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/><l>1</l></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="%&apos;#&apos; keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>keep-helper</l></list></block><block s="doSetVar"><l>keep-helper</l><block s="reifyScript"><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="doSetVar"><l>#</l><block var="count"/></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><block s="evaluate"><block var="keep-helper"/><list><block s="reportCDR"><block var="data"/></block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><script><block s="doReport"><block s="evaluate"><block var="keep-helper"/><list><block s="reportCDR"><block var="data"/></block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></script></block></script></block></script><list><l>data</l><l>count</l></list></block></block><block s="doReport"><block s="evaluate"><block var="keep-helper"/><list><block var="data"/><l>1</l></list></block></block></script></block-definition><block-definition s="%&apos;#&apos; 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="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>#</l><l>1</l></block><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><block s="doChangeVar"><l>#</l><l>1</l></block></script></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="2079">O,O,X,X,X,O,O,X,X</list></variable><variable name="positions"><l>0</l></variable><variable name="human&apos;s symbol"><l>x</l></variable><variable name="computer&apos;s symbol"><l>O</l></variable></variables></project><media name="U5-TicTacToeproject" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>