<snapdata remixID="9044559"><project name='M4L2A2-TicTacToe' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes/>
  <thumbnail>data:image/png;base64,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</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 x='-146.76392572944243' pen='tip' id='8' y='-76.55125466538351' name='Square' idx='1' volume='100' rotation='1' scale='1' heading='90' costume='2' color='80,80,80,1' pan='0' draggable='true'>
        <costumes>
          <list id='9'>
            <item>
              <costume center-x='26' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAx0lEQVRoQ+2awQ2CUBAFlybwjJVYi+RblNFauEIMBzsyMbGAd5ngz3CfPHaGI0N19gxVdamqpYe7pum8fw+6zm15Pu5/fdO6verW2tuDjprRQkct83svC1kINuAnBwuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgoO9CvfzROI6n7QMbcJ2IL5z4zQAAAABJRU5ErkJggg==' center-y='26' name='Empty' id='10'/>
            </item>
            <item>
              <costume center-x='26' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACBUlEQVRoQ+3aO0/CUBQH8MMGIRFnooaRL0BgdCIGqQnxASgQjMjqc3A04maM38KwOTqqm8YEFx+rr0QdcSMupiQ1olTOvfec3hZha9LH/d1/e8M/rQ8AIoaR2QoG/X7w+K/V+rj2AcB4LBY/LpUXPQ16e32Bq0bjoQ3KZvNH9frhsJcDOr+4hN1abQBybYj/M6HHp2cYGx1xVSp2Y0IltFSpQjgchtrOtitQN7d3YKTTsLd/ANOZqY4xoUDN5jtUlqsQjUa1oyzMQqHYdSwokDkFbkD1wpjjRIN0ozAYYZAuFBYjBXIaJYKRBjmFEsUogbhRMhhlEBdKFkMCokapYMhAVChVDClIFUWBIQfJoqgwLCBRFCWGDYRFUWNYQb1QHBh2kB2KC+MI6Ccql8u2y5ldn+loaxIbQvVB4vxfh5h9qlAswdnpCaysrrEVRcdA5m02mUpBIBCAmdk5b4O+PzObG+usdZ49oW4LAGedZwX9tZpxodhAmKWZA8UCwmCs5Y8aRQ4SwXCgSEEyGGoUGUgFQ4kiAVFgqFDKIEoMBUoJxIFRRUmDODEqKCmQExhZlDDISYwMSgikAyOKQoN0YkRQKJAbMFgUCpRMTkA8kWBrmaLV3vpDm8vPy700duNrfRMVCg39mgtUQqIzqHP/AUjn7GOu3d8J9dsHgBEAKGNi9cA+958uiHxCYDA7+gAAAABJRU5ErkJggg==' center-y='26' name='X' id='11'/>
            </item>
            <item>
              <costume center-x='26' image='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAEYElEQVRoQ+2aS0wTURSG/64VcKULBAMK1MfCFo1uFEFDjOArahR8xKgFJS4gRuOGUsrGIBUXxgfFxKhA8REfYGKIiuhCEGk1EURJJIKK7njoGnPG3KSlM507M3cKIpM0XfTeM+c7/5lz7z1TC6bZZQGwDkDrdOBKSkrukoAOHXa0Xq2t+aeZ2js6UeBwvJsBmqoyzijEq0zLk2fw+wPo+/QRrc+eor//c9jUnbt2Iz4+HsttdmRlZiAxYT6vecVxQhUaGPwKr7cWdTdvIH3FSuljt9tgTUuVdZZu3vvxE94G/Hj44L40fk9ePnZs36IbTAhQMEjB0SLk5+3WFe279x7C11CPkeFhFB4r0gVmGOja9Tq4XU4QyLFCB+LiYnVHl02kdK2qrERCYiLKypyagqMbaGRkFGWucvR0d8NdUYHVq1YaBgk2QPYvXfGi5vJFXK7xIntDFpd9XUB0syOOAsTGxuKcp0qIKkreUhqePFGCs55qrhTUDMRgrFYrKtwurqgZHdTd8wGbc3O5oDQDHT5SgJiYGJyv9hj1U9N8glq2dAletb+OmN6agC5cvIK2562o9daYmmZq6RcIBBTvzw3EIvS+uwdLlyzWFF2Rg4tLTkjmlDKEG4hSzWZPx/GiQpH+abZFz7DNZkN9g0829biAaFB+3h5EklqzZwYmUOoH/F2QO+pwAZHMi1JSJ10dFgOmUlNzc1j6qwLRtmZBYgKGh0cmpRAoCXmm0oPfv8bClg5VINra0OYx2mVaLSOpSJUUl6Cl5XHIUFUgSrc1azO4Vmk1J0T/npy8EBPTThVIbpJox/Takwu2KpDFYsH4+Ljee5o6j6odXcFLSUQg+tHj8eD2LZ+pjuk1TseMRp8vpHyrAnm9Xtl6r9cJkfPI+Yn+zQCJjLBRW5oVUqr1Rh0RNZ8Ofy9ftIWskf9XlaNIZmdvNKVnIEIlOgFsyskNWfRVFSp1urBwUQoOHtgrwgehNmjRf97WFtIVUgVivbKpthaxVpfmvRxt1efMicOXgUFN/TGhUsgYo8yZNTsGp0/9PcGyS1UhGqg02WynlexHCjIXEJ2J1mVkTKkT688fQ7JtNC4gphJ9R6sXp6QOO3AqPQLcQEwlpeZEtNKPSnVKalrYs6PpGWKDWVt2spoldOzuetMZsS/IrRCDogLR29sb9WYjC6ZcY0RzlZuYTtGG4oUhPzUrNFEpl6vM1E4qnUrPVVWG9Q6UnlndQGSQcpre3zhdbuFbIypC5eVuDA4MoPp8NXfQDAExiZ2lpdLbNofDYfjFFy2aN+oaJFX0vBU0DERQwU5kZq0P2wHzlHRSpL6hUVKcbOgNjhAg5jCB3XvQhEfNTVJ53bJ1m9RCXpFul4YstqZJ3Vc6OI6N/cK370Po6+uTxtJn7779yMnJMaSyUKBgJSjinW/8ksP0X4XR0VHcud0oDUlKSpZUoBdnDFjUO1rTgHjSzIwxM0BmRFWkzemt0HT5R+PcufM6/gCC+YmmYOBoKAAAAABJRU5ErkJggg==' center-y='26' name='O' id='12'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list id='13' struct='atomic'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='square number'>
            <l>9</l>
          </variable>
        </variables>
        <scripts>
          <script x='38' y='210.66666666666646'>
            <block s='receiveGo'>
              <comment collapsed='false' w='156.66666666666666'>Connect this to the script below it in For You To Do 4.</comment>
            </block>
            <block s='doWait'>
              <l>.1</l>
              <comment collapsed='true' w='181.33333333333334'>Wait for old clones to be deleted.</comment>
            </block>
            <block s='doSwitchToCostume'>
              <l>Empty</l>
            </block>
            <block s='show'/>
            <custom-block s='makeBoard'/>
            <block s='hide'/>
            <block s='doSetVar'>
              <l>X&apos;s turn?</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
                <comment collapsed='true' w='90'>X plays first.</comment>
              </block>
            </block>
            <block s='doSetVar'>
              <l>board</l>
              <block s='reportNewList'>
                <list>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                  <l>empty</l>
                </list>
              </block>
            </block>
          </script>
          <script x='237.26666666666648' y='132.19999999999982'>
            <block s='receiveGo'/>
            <block s='removeClone'>
              <comment collapsed='false' w='118'>This affects only clones, not the original sprite.</comment>
            </block>
          </script>
          <script x='32.26666666666665' y='10.000000000000057'>
            <block s='receiveInteraction'>
              <l>
                <option>clicked</option>
              </l>
              <comment collapsed='false' w='156'>This demonstration script will not be part of your actual project.</comment>
            </block>
          </script>
          <script x='34.26666666666665' y='47.99999999999966'>
            <block s='createClone'>
              <l>
                <option>myself</option>
              </l>
            </block>
            <block s='doGlide'>
              <l>1</l>
              <block s='reportRandom'>
                <l>-200</l>
                <l>200</l>
              </block>
              <block s='reportRandom'>
                <l>-150</l>
                <l>150</l>
              </block>
            </block>
            <block s='bubble'>
              <l/>
            </block>
          </script>
          <script x='31' y='407.66666666666697'>
            <block s='show'/>
          </script>
          <script x='20.266666666666765' y='764.0000000000006'>
            <block s='receiveInteraction'>
              <l>
                <option>clicked</option>
              </l>
            </block>
            <block s='doIf'>
              <block s='reportEquals'>
                <block s='reportAttributeOf'>
                  <l>
                    <option>costume name</option>
                  </l>
                  <block s='reportGet'>
                    <l>
                      <option>self</option>
                    </l>
                  </block>
                </block>
                <l>Empty</l>
              </block>
              <script>
                <block s='doIfElse'>
                  <block var='X&apos;s turn?'/>
                  <script>
                    <block s='doSwitchToCostume'>
                      <l>X</l>
                    </block>
                    <block s='doReplaceInList'>
                      <block var='square number'/>
                      <block var='board'/>
                      <l>X</l>
                    </block>
                    <block s='doSetVar'>
                      <l>X&apos;s 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='square number'/>
                      <block var='board'/>
                      <l>O</l>
                    </block>
                    <block s='doSetVar'>
                      <l>X&apos;s turn?</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>true</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
          <script x='10' y='483.66666666666697'>
            <block s='doForEach'>
              <l>item</l>
              <block s='reportMap'>
                <block s='reifyReporter'>
                  <autolambda>
                    <custom-block s='Status of Tripple %l'>
                      <l/>
                    </custom-block>
                  </autolambda>
                  <list/>
                </block>
                <custom-block s='Tic Tac Toe Wins'/>
              </block>
              <script>
                <block s='doIfElse'>
                  <block s='reportListContainsItem'>
                    <block var='item'/>
                    <l>empty</l>
                  </block>
                  <script>
                    <block s='doSayFor'>
                      <l>no winner yet</l>
                      <l>2</l>
                    </block>
                  </script>
                  <script>
                    <block s='doIfElse'>
                      <block s='reportAnd'>
                        <block s='reportListContainsItem'>
                          <block var='item'/>
                          <l>X</l>
                        </block>
                        <block s='reportListContainsItem'>
                          <block var='item'/>
                          <l>O</l>
                        </block>
                      </block>
                      <script>
                        <block s='doSayFor'>
                          <l>no possible winner for this item</l>
                          <l>2</l>
                        </block>
                      </script>
                      <script>
                        <block s='doIfElse'>
                          <block s='reportListContainsItem'>
                            <block var='item'/>
                            <l>X</l>
                          </block>
                          <script>
                            <block s='doSayFor'>
                              <l>X is the winner</l>
                              <l>2</l>
                            </block>
                          </script>
                          <script>
                            <block s='doSayFor'>
                              <l>O s the winner</l>
                              <l>2</l>
                            </block>
                          </script>
                        </block>
                      </script>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher x='1.4129454933450916' color='243,118,29' style='normal' hidden='true' y='1.4129454933448784' var='X&apos;s turn?'/>
      <watcher var='board' x='3.6980034722220125' color='243,118,29' style='normal' y='3.6980034722221973' extX='79.99999999999977' extY='69.99999999999999'/>
      <watcher hidden='true' x='5.2516025641026545' color='243,118,29' style='normal' y='5.251602564102555' var='square number' 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='makeBoard' category='control' type='command'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doSetVar'>
          <l>square number</l>
          <l>0</l>
        </block>
        <block s='doSwitchToCostume'>
          <l>Empty</l>
        </block>
        <block s='gotoXY'>
          <l>-50</l>
          <l>50</l>
        </block>
        <block s='doFor'>
          <l>row</l>
          <l>1</l>
          <l>3</l>
          <script>
            <block s='doFor'>
              <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>
            </block>
            <block s='changeXPosition'>
              <l>-150</l>
            </block>
            <block s='changeYPosition'>
              <l>-50</l>
            </block>
          </script>
        </block>
      </script>
      <scripts>
        <script x='226' y='32.99999999999997'>
          <block s='bubble'>
            <l>You have to create the makeBoard block!</l>
          </block>
        </script>
      </scripts>
    </block-definition>
    <block-definition s='Tic Tac Toe Wins' category='lists' 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>1</l>
                  <l>4</l>
                  <l>7</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>2</l>
                  <l>5</l>
                  <l>8</l>
                </list>
              </block>
            </list>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='Status of Tripple %&apos;list&apos;' category='lists' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%l'/>
      </inputs>
      <script>
        <block s='doReport'>
          <custom-block s='map %repRing over %mult%l'>
            <block s='reifyReporter'>
              <autolambda>
                <block s='reportListItem'>
                  <l/>
                  <block var='board'/>
                </block>
              </autolambda>
              <list/>
            </block>
            <list>
              <block var='list'/>
            </list>
          </custom-block>
        </block>
      </script>
    </block-definition>
    <block-definition s='won? %player' category='operators' type='predicate'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type=''/>
      </inputs>
      <script>
        <block s='doReport'>
          <l/>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='X&apos;s turn?'>
      <bool>true</bool>
    </variable>
    <variable name='board'>
      <list id='866' struct='atomic'>O,X,O,X,X,O,X,O,O</list>
    </variable>
  </variables>
</project><media name="M4L2A2-TicTacToe" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>