<snapdata remixID="9023873"><project name='Tictactoe' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes>Click green button to start, click any square to play, X starts.</notes>
  <thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAD5klEQVR4Xu3dIU4sQRSG0RqDwmBQGIJBIlgAOCwrYBkIBCBxLACDYB1gELjxCAweBMHOS0/Cy4Rnurqr509eTie4qnsnHyfBdIbZYrFYFI8CoQIzAEPlrV0WABCEaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAo/ktB5CBaAEAV/Kfnp6W+Xw+6hfy/v6+vL+zszNozufnZ/n6+iobGxtle3t70IyfS29vb6Pur+MygCuVj4+Py93dXdnb2xvcfjablTH/eODq6qq8vr6Wh4eHwZ+hu3h2dlbu7+9HzVjHZQB/AXx8fBzVvQXAbsbl5eWoz3F9fT16xqgP0PMygAD2pDLNMQABnEZWz6kAAtiTyjTHAARwGlk9pwIIYE8q0xwDEMBpZPWcCiCAPalMcwxAAKeR1XMqgAD2pDLNMQABnEZWz6kAAtiTyjTHAARwGlk9pwIIYE8q0xwDEMBpZPWcCuBKqK2trdK9EPq/PGPeS1xXAwB/Afz4+BjV3vuAdfkA9Ce4Tkzj0wAC2JhU3TgAAawT0/g0gAA2JlU3DkAA68Q0Pg0ggI1J1Y0DEMA6MY1PAwhgY1J14wAEsE5M49MAAtiYVN04AAGsE9P4NIAANiZVNw5AAOvEND4NIICNSdWNAxDAOjGNTwO4ErR7IfXk5KTs7+8Pztx9wWT33X7de4FDnqenp/Ly8lLOz8+HXP975+bmpnx/f4+asY7LAK5U3t3dLWO/1tYLqXVsAfQnuE5M49MAAtiYVN04AAGsE9P4NIAANiZVNw5AAOvEND4NIICNSdWNAxDAOjGNTwMIYGNSdeMABLBOTOPTAALYmFTdOAABrBPT+DSAADYmVTcOQADrxDQ+DSCAjUnVjQMQwDoxjU8D+Avg5uZmOTw8HJy5eyG1+xn6dC+kPj8/l4uLi6Ejlvdub2/L2C/bHPUBel4GcCVU98sf+8zn8+WIg4ODQaN+7o+Z8bP46Oho0GdY5yUA11nbrn8KAAhFtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtACA0fyWA8hAtMAfVKBd1b6U1h8AAAAASUVORK5CYII=</thumbnail>
  <stage inheritance='false' id='1' volume='100' height='360' tempo='60' lines='round' width='480' sublistIDs='false' name='Stage' threadsafe='false' codify='false' color='255,255,255,1' scheduled='false' pan='0' ternary='true' costume='0'>
    <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 id='2' struct='atomic'/>
    </costumes>
    <sounds>
      <list id='3' struct='atomic'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts/>
    <sprites>
      <sprite draggable='false' x='-60' pen='tip' id='8' y='-110' name='Square' idx='1' volume='100' rotation='1' scale='1' color='80,80,80,1' hidden='true' pan='0' heading='90' costume='1'>
        <costumes>
          <list id='9'>
            <item>
              <costume center-x='29' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAABJklEQVRoQ+2bsQ2DMBBFfzbIBklJl0hUVA6V18gISAyAGQCJdVwRV1RIKSnJBowQOUJICUnqs/WZ4N79/3SN2QEwAE4Azojzu+8WSAXgEicjbp+Qk9YaWZYdQwbu+36y1noEz/EOqbWe2rZFkiRBQ47jOBVFAWvtFtIYg6qqQg5xnb2ua3ieTZKEDCxfJkknA6os68q6sq6yNkAn6aSsRv6dhnVlXVlXWRugk3RSViN5QugknaSTsjZAJ+mkrEbyTtJJOkknZW2ATtJJWY3knaSTdJJOytoAnaSTshrJO0kn6WQMTiql5qZpkKbpPiCezajDMMxlWcI55zk2z7NnpRTyPA8asuu62Tnn4b9Chhzgr9lfSV6XB+mHGAkBPDxkrL9KrJk9AbeDqAKws++iAAAAAElFTkSuQmCC' center-y='28' name='Empty' id='10'/>
            </item>
            <item>
              <costume center-x='29' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAADwElEQVRoQ93bvU/bQBgG8IdWshgqkaFDNhgq1oS9IUFd6AT8BcDGGOiSjbAxwsACA7CxwdilgoGxqkAwIQbYMlQVbChSpepxOcs57LN9H3ack1hiB/t373vvmTszhtFsFQBPgjYGoAugBqA+It53AKoA+gD+APglkE0ArRFByowLGdn3PA8bGxve+Ph4qcwvLy84OjpCr9dLRPon1Ot1nJ+fo1JhapejLS0t4ezsLLjZ6enp33d3dx8BvIlkcFKZoKurq34URTs8PMTj4yO6XZYbCbm4uDjQG2WAysDNzU0ft7W1FY3kwcnJSfCLog0zVAYuLy8HEVUi2RMM/bBDVUAGKBHJk6KgzHVGtuiWBEyNjIKy2rLqFglNA8yE9EvTxQVYkJ6fn/0AFgmVsys8BuXsSpWu4S9dXV2h1WoVCs0CzBxJgS0SKgObzaafYaqWOZJFQmVgrVbzgUlPY9pIYvOMqC5QO13zHqMmQCtI1xE1BVpDuoJyOMzNzeHp6f8f9mnHoPEUoqpiNseoLaDVSNqsujJwYmLCL3JTU1NaT5FG1TXuiiYRjQJymjB5fHSCjBujfKjnY6Gqc8JjkBE0BTpJV9X0wmOErqysvHG6iKC4iLNIigs8PDz40bu+vg5gMpTnzMzMBFXUVgRzQ/JCnAL4UB8F5TGmKCPJZhvoPF3DORkF3dvbw8HBgVNgrsi4iIY74vT0VFmYtOaPtMsfur886nuMaKPRwO3t7cDhuIJk49rOC498k0TOzs7i5uZmNJFykZE7wFU0c40kpwlRRQlk4dnf31dOL6VK16jlez4UqKYXG8DcqmscUCBcQ52na9q1UZdQp8i0QFVEuSfD7QqT5gyZFaiCcuyy8uo2J0hdYBjabrdxfHwcuEyg1pFiP1DcnWr5PikyhNmAWkVmXb5PQvK4Dag1pAug6ARTqBWkjbXRpKiaQI2ReQBNI2qEzBNoAtVGFgHUhWohuUzIdRnRdJfvk8ah6niWMZoZaXP53gSZZXrJhJSBfM+HnyVtgppiTCOaGuly8de0E+TU5Tovn3VF56dCDjMwrhiF3x5LRJYBKKA7OztYX18PEkNAd3d349+tW1hYGNgEdbG6bZqq8vej3h6bn5/H9vY2Tx18FbTT6eDk5ATcp2ArA1CAZWi1WhUv+A4iPc/72+/335cNGAd9/fxSvJ79BcDncBqsra2BvVG2xnoSfoOZe08C+Q3Ah7KBUt7vTyK5O8qt4K8APACXAO5T/oJhPu3T6839IFL8qwQ/5M/3Yb5znXv7B7tZN3CsrvZdAAAAAElFTkSuQmCC' center-y='29' name='X' id='11'/>
            </item>
            <item>
              <costume center-x='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' center-y='28' name='O' id='12'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list id='13' struct='atomic'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='board position'>
            <l>10</l>
          </variable>
        </variables>
        <scripts>
          <script x='26' y='77'>
            <block s='receiveGo'/>
            <custom-block s='Setup'/>
          </script>
          <script x='268' y='77'>
            <block s='receiveInteraction'>
              <l>
                <option>pressed</option>
              </l>
            </block>
            <block s='doUntil'>
              <block s='reportOr'>
                <custom-block s='tie'/>
                <block s='reportOr'>
                  <custom-block s='Win %s'>
                    <l>X</l>
                  </custom-block>
                  <custom-block s='Win %s'>
                    <l>O</l>
                  </custom-block>
                </block>
              </block>
              <script>
                <block s='doIfElse'>
                  <block s='reportNot'>
                    <block s='reportEquals'>
                      <block s='getCostumeIdx'/>
                      <l>1</l>
                    </block>
                  </block>
                  <script>
                    <block s='doStopThis'>
                      <l>
                        <option>this block</option>
                      </l>
                    </block>
                  </script>
                  <script>
                    <custom-block s='turns'/>
                  </script>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <custom-block s='tie'/>
                <block s='reportBoolean'>
                  <l>
                    <bool>true</bool>
                  </l>
                </block>
              </block>
              <script>
                <block s='doSayFor'>
                  <l>It&apos;s a tie!</l>
                  <l>2</l>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <custom-block s='Win %s'>
                  <l>O</l>
                </custom-block>
                <block s='reportBoolean'>
                  <l>
                    <bool>true</bool>
                  </l>
                </block>
              </block>
              <script>
                <block s='doSayFor'>
                  <l>O wins!</l>
                  <l>2</l>
                </block>
              </script>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <custom-block s='Win %s'>
                  <l>X</l>
                </custom-block>
                <block s='reportBoolean'>
                  <l>
                    <bool>true</bool>
                  </l>
                </block>
              </block>
              <script>
                <block s='doSayFor'>
                  <l>X wins!</l>
                  <l>2</l>
                </block>
              </script>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher x='10' color='243,118,29' style='normal' hidden='true' y='10' var='X turn'/>
      <watcher x='10' color='243,118,29' style='normal' hidden='true' y='31.000001999999995' var='O turn'/>
      <watcher hidden='true' x='10' s='getCostumeIdx' style='normal' color='143,86,227' y='52.00000399999999' scope='Square'/>
      <watcher x='9' var='board' extY='70' color='243,118,29' style='normal' hidden='true' extX='80' y='1'/>
      <watcher hidden='true' x='10' color='243,118,29' style='normal' y='94.00000799999998' var='board position' scope='Square'/>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='label %&apos;text&apos; of size %&apos;size&apos;' category='pen' type='command'>
      <comment x='0' w='90' collapsed='false' y='0'>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/>
      <code/>
      <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),    context = stage.penTrails().getContext(&apos;2d&apos;),    rotation = radians(this.direction() - 90),    trans = new Point(      this.center().x - stage.left(),      this.center().y - stage.top()    ),    isWarped = this.Warped,    len,    pos;if (isWarped) {endWarp(); }context.save();context.font = size + &apos;px monospace&apos;;context.textAlign = &apos;left&apos;;context.textBaseline = &apos;alphabetic&apos;;context.fillStyle = this.color.toString();len = context.measureText(text).width;trans = trans.multiplyBy(1 / stage.scale);context.translate(trans.x, trans.y);context.rotate(rotation);context.fillText(text, 0, 0);context.translate(-trans.x, -trans.y);context.restore();pos = new Point(  len * Math.sin(radians(this.direction())),  len * Math.cos(radians(this.direction())));pos = pos.add(new Point(this.xPosition(), this.yPosition()));this.gotoXY(pos.x, pos.y, false);this.changed();if (isWarped) {this.startWarp(); }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;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%repRing'/>
        <input type='%mult%l'/>
      </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/>
                        </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/>
                        </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/>
                          </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/>
                            </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;' category='lists' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportEquals'>
            <block var='data'/>
            <block s='reportNewList'>
              <list/>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='keep items such that %&apos;pred&apos; from %&apos;data&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%predRing'/>
        <input type='%l'/>
      </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/>
                  </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;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%repRing'/>
        <input type='%l'/>
      </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;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%b'/>
        <input type='%anyUE'/>
        <input type='%anyUE'/>
      </inputs>
      <script>
        <block s='doIfElse'>
          <block var='test'/>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='true'/>
                <list/>
              </block>
            </block>
          </script>
          <script>
            <block s='doReport'>
              <block s='evaluate'>
                <block var='false'/>
                <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;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%n'>1</input>
        <input type='%n'>10</input>
        <input type='%cs'/>
      </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/>
              </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/>
              </block>
            </block>
          </script>
        </block>
        <block s='doSetVar'>
          <l>i</l>
          <block var='start'/>
        </block>
        <block s='doUntil'>
          <block s='evaluate'>
            <block var='tester'/>
            <list/>
          </block>
          <script>
            <block s='doRun'>
              <block var='action'/>
              <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;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%mult%txt'/>
      </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/>
                <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/>
                <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/>
                  <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/>
            </list>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='list $arrowRight sentence %&apos;data&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </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;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%txt'/>
      </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;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%cs'/>
      </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/>
              </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;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>catchtag</input>
      </inputs>
      <script>
        <block s='doRun'>
          <block var='cont'/>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='catch %&apos;tag&apos; %&apos;value&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%anyUE'/>
      </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/>
                </block>
              </block>
            </script>
            <list>
              <l>cont</l>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='throw %&apos;tag&apos; %&apos;value&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>catchtag</input>
        <input type='%s'/>
      </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;' category='lists' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%upvar'/>
        <input type='%l'/>
        <input type='%cs'/>
      </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' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%boolUE'/>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doDeclareVariables'>
          <list>
            <l>breakpoint</l>
          </list>
        </block>
        <block s='doIf'>
          <block s='evaluate'>
            <block var='test'/>
            <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/>
            </block>
            <block s='doPauseAll'/>
            <block s='doHideVar'>
              <l/>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='word $arrowRight list %&apos;word&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%txt'/>
      </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 category='control' s='ignore %&apos;x&apos;' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
    </block-definition>
    <block-definition s='tell %&apos;sprite&apos; to %&apos;action&apos;' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>Sprite</input>
        <input type='%cs'/>
      </inputs>
      <script>
        <block s='doRun'>
          <block s='reportAttributeOf'>
            <block var='action'/>
            <block var='sprite'/>
          </block>
          <list/>
        </block>
      </script>
    </block-definition>
    <block-definition s='ask %&apos;sprite&apos; for %&apos;expression&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'>Sprite</input>
        <input type='%repRing'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='evaluate'>
            <block s='reportAttributeOf'>
              <block var='expression'/>
              <block var='sprite'/>
            </block>
            <list/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='list $arrowRight word %&apos;list&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </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='tie' category='variables' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportIfElse'>
            <block s='reportAnd'>
              <block s='reportNot'>
                <block s='reportListContainsItem'>
                  <block var='board'/>
                  <l>empty</l>
                </block>
              </block>
              <block s='reportAnd'>
                <block s='reportNot'>
                  <custom-block s='Win %s'>
                    <l>X</l>
                  </custom-block>
                </block>
                <block s='reportNot'>
                  <custom-block s='Win %s'>
                    <l>O</l>
                  </custom-block>
                </block>
              </block>
            </block>
            <block s='reportBoolean'>
              <l>
                <bool>true</bool>
              </l>
            </block>
            <block s='reportBoolean'>
              <l>
                <bool>false</bool>
              </l>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Tic-tac-toe board' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doSetVar'>
          <l>board position</l>
          <l>1</l>
        </block>
        <block s='show'/>
        <block s='gotoXY'>
          <l>-60</l>
          <l>40</l>
        </block>
        <block s='doRepeat'>
          <l>3</l>
          <script>
            <block s='doFor'>
              <l>i</l>
              <l>1</l>
              <l>2</l>
              <script>
                <block s='doRepeat'>
                  <block var='i'/>
                  <script>
                    <block s='forward'>
                      <l>50</l>
                    </block>
                    <block s='createClone'>
                      <l>
                        <option>myself</option>
                      </l>
                    </block>
                    <block s='doChangeVar'>
                      <l>board position</l>
                      <l>1</l>
                    </block>
                  </script>
                </block>
              </script>
            </block>
            <block s='changeXPosition'>
              <l>-150</l>
            </block>
            <block s='changeYPosition'>
              <l>-50</l>
            </block>
          </script>
        </block>
        <block s='hide'/>
      </script>
    </block-definition>
    <block-definition s='turns' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doIfElse'>
          <block s='reportEquals'>
            <block var='X turn'/>
            <block s='reportBoolean'>
              <l>
                <bool>true</bool>
              </l>
            </block>
          </block>
          <script>
            <block s='doSwitchToCostume'>
              <l>X</l>
            </block>
            <block s='doReplaceInList'>
              <block var='board position'/>
              <block var='board'/>
              <l>X</l>
            </block>
            <block s='doSetVar'>
              <l>X turn</l>
              <block s='reportBoolean'>
                <l>
                  <bool>false</bool>
                </l>
              </block>
            </block>
          </script>
          <script>
            <block s='doSwitchToCostume'>
              <l>O</l>
            </block>
            <block s='doReplaceInList'>
              <block var='board position'/>
              <block var='board'/>
              <l>O</l>
            </block>
            <block s='doSetVar'>
              <l>X turn</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
              </block>
            </block>
          </script>
        </block>
      </script>
    </block-definition>
    <block-definition s='Setup' category='variables' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <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>X turn</l>
          <block s='reportBoolean'>
            <l>
              <bool>true</bool>
            </l>
          </block>
        </block>
        <block s='doSwitchToCostume'>
          <l>Empty</l>
        </block>
        <block s='gotoXY'>
          <l>0</l>
          <l>0</l>
        </block>
        <custom-block s='Tic-tac-toe board'/>
      </script>
    </block-definition>
    <block-definition s='Wins' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <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>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>
              <block s='reportNewList'>
                <list>
                  <l>1</l>
                  <l>4</l>
                  <l>7</l>
                </list>
              </block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Status of win' category='variables' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <custom-block s='for each %upvar of %l %cs'>
          <l>item</l>
          <custom-block s='Wins'/>
          <script>
            <block s='doReport'>
              <custom-block s='map %repRing over %mult%l'>
                <block s='reifyReporter'>
                  <autolambda>
                    <custom-block s='Status of win %l'>
                      <l/>
                    </custom-block>
                  </autolambda>
                  <list/>
                </block>
                <list>
                  <custom-block s='Wins'/>
                </list>
              </custom-block>
            </block>
          </script>
        </custom-block>
      </script>
    </block-definition>
    <block-definition s='Status of win %&apos;Input&apos;' category='other' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportMap'>
            <block s='reifyReporter'>
              <autolambda>
                <block s='reportListItem'>
                  <l/>
                  <block var='board'/>
                </block>
              </autolambda>
              <list/>
            </block>
            <block var='Input'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Win %&apos;Answer&apos;' category='lists' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%s'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportIfElse'>
            <block s='reportListContainsItem'>
              <custom-block s='Status of win'/>
              <block s='reportNewList'>
                <list>
                  <block var='Answer'/>
                  <block var='Answer'/>
                  <block var='Answer'/>
                </list>
              </block>
            </block>
            <block s='reportBoolean'>
              <l>
                <bool>true</bool>
              </l>
            </block>
            <block s='reportBoolean'>
              <l>
                <bool>false</bool>
              </l>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='X turn'>
      <bool>true</bool>
    </variable>
    <variable name='O turn'>
      <l>0</l>
    </variable>
    <variable name='board'>
      <list id='926' struct='atomic'>Empty,Empty,Empty,Empty,Empty,Empty,Empty,Empty,Empty</list>
    </variable>
  </variables>
</project><media name="Tictactoe" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>