<snapdata remixID="10035937"><project name="U3L1-TicTacToe" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><watcher var="playing" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher scope="Square" var="postion number" style="normal" x="10.731092436974905" y="21.73109243697479" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="7.731092436974905" y="12.966390100840329" color="243,118,29" extX="80" extY="70"/><sprite name="Square" idx="1" x="50" y="-50" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="11"><costumes><list id="12"><item><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAABKElEQVRoQ+2bIQ6DQBBFPzfoDVqDbhMEhqQVa/YWvQEWBzgsp1mzogKDIKnH0BtwhGYbQtLSVs9uPieYN/+/jFkiABWAI4ATwvzu0QJ5BnAJkxG3T8hJa400TQ8+A/d9PxljHILjeIfUWk9t2yKOY68hx3Gc8jyHMWYLWVUVyrL0OcR19rqu4Xg2SRLSs3yZJJ30qLKsK+vKusraAJ2kk7Ia+Xca1pV1ZV1lbYBO0klZjeQJoZN0kk7K2gCdpJOyGsk7SSfpJJ2UtQE6SSdlNZJ3kk7SSTopawN0kk7KaiTvJJ2kkyE4qZSam6ZBkiQ7j3g2ow7DMBdFAWut49g8z56VUsiyzGvIrutma62D/wrpc4C/Zn8leV0epO9DJATwcJCh/iqxZvYEuRuoAhendhsAAAAASUVORK5CYII=" id="13"/></item><item><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAADw0lEQVRoQ93bvU/bQBgG8IdWQgyWYOiQDYZuDAl7IUFd6AT8BYSNIQOoS7bAxggDCwzAxgZjlwoGxqoCQbYOsGWoKpAYEFKl6nE5yznss30fdpyTWGIH+3fve++ZOzOC4WwTAB4EbQTAJoAqgNqQeN8BqAB4AfAHwE+BrANoDAlSZlzIyBfP89BqtUbHxsZKZX5+fsbR0RF6vV4i0j+hVqvh/PwcExNM7XK05eVlnJ2dBTc7PT39u9vtfgDwJpLBSWWCrq6u+lEU7fDwEPf399jcZLmRkEtLS329UQaoDOx0Oj5ua2srGsmDk5OT4BdFG2SoDFxZWQkiqkSyJxj6QYeqgAxQIpInRUGZ64xs0S0JmBoZBWW1ZdUtEpoGmAnpl6aLC7AgPT4++gEsEipnV3gMytmVKl3DX7q6ukKj0SgUmgWYOZICWyRUBtbrdT/DVC1zJIuEysBqteoDk57GtJHE5hlRXaB2uuY9Rk2AVpCuI2oKtIZ0BeVwmJ+fx8PD/z/s045B4ylEVcVsjlFbQKuRtFl1ZeD4+Lhf5KamprSeIo2qa9wVTSIaBeQ0YfL46AQZN0b5UM/HQlXnhMcgI2gKdJKuqumFxwhtNptvnC4iKC7iLJLiAnd3d370rq+vA5gM5TkzMzNBFbUVwdyQvBCnAD7UR0F5jCnKSLLZBjpP13BORkH39vZwcHDgFJgrMi6i4Y44PT1VFiat+SPt8ofuL4/6HiM6OzuL29vbvsNxBcnGtZ0XHvkmiZybm8PNzc1wIuUiI3eAq2jmGklOE6KKEsjCs7+/r5xeSpWuUcv3fChQTS82gLlV1zigQLiGOk/XtGujLqFOkWmBqohyT4bbFSbNGTIrUAXl2GXl1W1OkLrAMHR9fR3Hx8eBywRqHSn2A8XdqZbvkyJDmA2oVWTW5fskJI/bgFpDugCKTjCFWkHaWBtNiqoJ1BiZB9A0okbIPIEmUG1kEUBdqBaSy4RclxFNd/k+aRyqjmcZo5mRNpfvTZBZppdMSBnI93z4WdImqCnGNKKpkS4Xf007QU5drvPyWVd0firkIAPjilH47bFEZBmAArqzs4ONjY0gMQR0d3c3/t26xcXFvk1QF6vbpqkqfz/q7bGFhQVsb2/z1P5XQdvtNk5OTsB9CrYyAAVYhlYqFfGCbz/S87y/T09P78sGjIO+fn4pXs/+DOBTOA3W1tbA3ihbYz0Jv8HMvSeB/ArAKxso5f3+IJK7o9wK/gJgFMAlgF8pf8Egn/bx9ea+Eyn+VYIf8ufbIN+5zr39A7wlN3D1pfCoAAAAAElFTkSuQmCC" id="14"/></item><item><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAEX0lEQVRoQ+2aizUsQRCGeyJABGwEiAARsBEgAkSwuxEgAjYCRGA3AkSACBDB3PPNubWnts2juuexa6lznPsw091//VV/V1dP4pwbOuf23OraNPkPcrC6GN3oV4IcpWn641lNkmTknBMc80ymaboyUZskBGlm3YF8e3tz7+/v2aybm5tua2urVYe2DnI6nbr7+3s3mUzc8/NzKZidnR23v7/vjo6O3N5ecyLfCkiYGo1GGbjPz88oltbX1zOwg8GgNtONggTQ9fW1Gw7ZbotNh6gO3aI3GO/s7MwBPMYaA3l7e+suLi6+MQcgGJEwLFukhDV/Ss7K8wC8vLx0JycnwTgbAQm4q6urucnJKRgAXIyRw7xPTms7Pz/PwIZYLZCE5+npaZZ7YjAHYNhrwhgbYJpZxr65uTGHbzRIAB4cHMwp5vHxcQYwNneKnMJcAB2Px7NHUOLHx0fTXNEgYZA8FEMFqwSnLrOMj2qLkZ8wWmVRIP3JmChGEKoWl/d7HIuDQ5wbDJIc6ff7s0mQdl90YhYf8g6hy1Yldnd3V6oBwSB7vZ5jb8MODw/nRCdkoXWfRXweHh6yYSgLX19fC4cMAgljbBfY2tpaBrZpkbGCR4wA9/X1lb3CtgLDeWYGyaCwKGVa2aDWhdZ9TjsdZ8NmntPNIPWA7IUSsnUXWvd92JQ9tMjxZpC7u7uzPbFLNa1yglZbqiwqJd9MIAnRjY2N2bsfHx8Ly0UfgGVtJpAWb1V5vM3fU/28vLxkU+RFmQkkG72UVMsgOL7DtF5QWupKjGdNIDlJyGmAejH2ZNEWm+QhdTSWl5d/IMXziI7sj8skOrI+LT7sk6xRm4lJ9ZBb1lZl2Rr/QArlWqKfnp4c/14mo9VJsYJtb29/a32amFwhdR3OXfjo3NMgq85ui2BYn3GjtxDdCcjbbBcBTM+pi5W8NowK12ImdcxXHVAXAVhvcXmaYcpJFs7+IwfUZRIfTUDREdAMUofEMoWsZV1mkLo+hFlO4W1fuVWFPgd3uhViRXW1GSQDaZXl7wy6SKMol0Ny0YHZfAoRIL7nFrmd+P3XssgKYhKwOgcQI9jsugJCbGBRDg1VGhEMkoEJVTmJk5eobVetSb9rSBlHyJbNHwwSNvEkQGVLCbl8qZPDpAvde7mWp/cLwKpIigLJQn21bTt0/RBlDdYuRTRIJvGTH6By9V2HMf9d7j387nhIW7QWyLzQ5f8IHxpedXtBRAvXEvqrEWuIBncGqlghV7iAETGS5wGJGrOHWQsHxqJpRpT4jWJEhhOHdSxZR20mZSBUj9YgPyJI2jmwK1fsLFIWCii5cgBA3rc+sEe48hOj4o2B1GD9q++qSCj7fRNX9I2D1NWRfLIi94hWsNx7yicxoaGZN0drIPVkhLL+7EyHqA5d+ewsJiTLHNgJSCuDbT1n6gy0NXlX4/42Jr99nj1J0zTum7GuKDLMkyQJt7KC43d+g27w0497JGtJ/vjwrHL7P5XNSaMYdLI4AAAAAElFTkSuQmCC" id="15"/></item></list></costumes><sounds><list struct="atomic" id="16"></list></sounds><blocks></blocks><variables><variable name="postion number"><l>10</l></variable></variables><scripts><script x="10" y="599.6666666666666"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></list></custom-block></script><script x="10" y="643.5"><block s="reportEquals"><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block></script><script x="10" y="684.5"><custom-block s="possible winning triplets"></custom-block></script><script x="10" y="714.3333333333334"><custom-block s="status of all winning triples"></custom-block></script><script x="10" y="744.1666666666666"><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="10" y="788.1666666666666"><custom-block s="won? %s"><l></l></custom-block></script><script x="527" y="46.66666666666666"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportAnd"><block var="playing"/><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="postion number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X Won</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="postion number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O Won</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><custom-block s="draw win line"></custom-block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportAnd"><block var="playing"/><custom-block s="tied?"></custom-block></block><script><block s="bubble"><l>It&apos;s a tie</l></block><block s="goToLayer"><l><option>front</option></l></block></script></block><block s="doDeclareVariables"><list><l>avaiable squares</l></list></block><block s="doSetVar"><l>avaiable squares</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block><block s="doIf"><block s="reportAnd"><block var="playing"/><block s="reportEquals"><block s="reportListLength"><block var="avaiable squares"/></block><l>1</l></block></block><script><block s="doReplaceInList"><block s="reportListItem"><l>1</l><block var="avaiable squares"/></block><block var="board"/><l>X</l></block><block s="doIf"><block s="reportNot"><custom-block s="won? %s"><l>X</l></custom-block></block><script><block s="bubble"><l>It&apos;s a tie</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></block></script><script x="41" y="10"><block s="receiveGo"><comment w="53.333333333333336" collapsed="true">3.1.5.5</comment></block><block s="clear"></block><custom-block s="makeBoard"><comment w="129.33333333333334" collapsed="true">3.1.5.6  Look inside. </comment></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l><comment w="90" collapsed="true">X plays first.</comment></block></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="38" y="218.8333333333333"><block s="doSetVar"><l>win line</l><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>50</l></list></block><block s="reportNewList"><list><l>100</l><l>50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>0</l></list></block><block s="reportNewList"><list><l>100</l><l>0</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-50</l></list></block><block s="reportNewList"><list><l>100</l><l>-50</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-50</l><l>100</l></list></block><block s="reportNewList"><list><l>-50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>0</l><l>100</l></list></block><block s="reportNewList"><list><l>0</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>50</l><l>100</l></list></block><block s="reportNewList"><list><l>50</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>100</l></list></block><block s="reportNewList"><list><l>100</l><l>-100</l></list></block></list></block><block s="reportNewList"><list><block s="reportNewList"><list><l>-100</l><l>-100</l></list></block><block s="reportNewList"><list><l>100</l><l>100</l></list></block></list></block></list></block></block></script></scripts></sprite><watcher var="win line" style="normal" x="10" y="34.000002" color="243,118,29" hidden="true"/><sprite name="Sprite" idx="2" x="0" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,27,1,1" pen="tip" id="373"><costumes><list struct="atomic" id="374"></list></costumes><sounds><list struct="atomic" id="375"></list></sounds><blocks></blocks><variables></variables><scripts><script x="313" y="70"><block s="receiveGo"></block><block s="hide"></block><block s="setSize"><l>5</l></block><block s="setColor"><color>255,27,1,1</color></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l></block><block s="setScale"><l>95</l></block><block s="doSetVar"><l>postion number</l><l>1</l></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportSum"><l>-100</l><block s="reportProduct"><l>50</l><block var="j"/></block></block><block s="reportDifference"><l>100</l><block s="reportProduct"><l>50</l><block var="i"/></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>postion number</l><l>1</l></block></script></custom-block></script><comment w="128" collapsed="false">The nested FOR loops are the important part of this solution.  </comment></custom-block><block s="hide"></block></script></block-definition><block-definition s="possible winning triplets" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;triple&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="triple"/></list></custom-block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><list><custom-block s="possible winning triplets"></custom-block></list></custom-block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></block></block></script></block-definition><block-definition s="draw win line" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="status of all winning triples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></block></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win line"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script></block></script></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="1201">1,X,3,4,X,6,O,X,O</list></variable><variable name="playing"><bool>false</bool></variable><variable name="win line"><list id="1202"><item><list id="1203"><item><list struct="atomic" id="1204">-100,50</list></item><item><list struct="atomic" id="1205">100,50</list></item></list></item><item><list id="1206"><item><list struct="atomic" id="1207">-100,0</list></item><item><list struct="atomic" id="1208">100,0</list></item></list></item><item><list id="1209"><item><list struct="atomic" id="1210">-100,-50</list></item><item><list struct="atomic" id="1211">100,-50</list></item></list></item><item><list id="1212"><item><list struct="atomic" id="1213">-50,100</list></item><item><list struct="atomic" id="1214">-50,-100</list></item></list></item><item><list id="1215"><item><list struct="atomic" id="1216">0,100</list></item><item><list struct="atomic" id="1217">0,-100</list></item></list></item><item><list id="1218"><item><list struct="atomic" id="1219">50,100</list></item><item><list struct="atomic" id="1220">50,-100</list></item></list></item><item><list id="1221"><item><list struct="atomic" id="1222">-100,100</list></item><item><list struct="atomic" id="1223">100,-100</list></item></list></item><item><list id="1224"><item><list struct="atomic" id="1225">-100,-100</list></item><item><list struct="atomic" id="1226">100,100</list></item></list></item></list></variable></variables></project><media name="U3L1-TicTacToe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>