<snapdata remixID="9999849"><project name="U3L1-Tic-Tac-Toe" 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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAVb0lEQVR4Xu3be4jl51nA8fc9M7NDIhVRGlGJRAotQlsNIQURqlRIWJOdc87GVdHY0laCNiJ4wwuI0aooVEQUQf2jSq1Ip9n5ndlkB1cNhCqthnip9+INklbX1BsoyezsnJ8cuxuG6a7+0aXPM30++0/ITnbf5/08L3w5k93e/CBAgAABAgQ+7QL9036iAwkQIECAAIEmwB4BAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAgwAHojiRAgAABAgLsDRAgQIAAgQABAQ5AdyQBAgQIEBBgb4AAAQIECAQICHAAuiMJECBAgIAAewMECBAgQCBAQIAD0B1JgAABAgQE2BsgQIAAAQIBAgIcgO5IAgQIECAgwN4AAQIECBAIEBDgAHRHEiBAgAABAfYGCBAgQIBAgIAAB6A7kgABAgQICLA3QIAAAQIEAgQEOADdkQQIECBAQIC9AQIECBAgECAg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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><sprite name="Square" idx="1" x="-100" y="-50" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAx0lEQVRoQ+2awQ2CUBAFlybwjJVYi+RblNFauEIMBzsyMbGAd5ngz3CfPHaGI0N19gxVdamqpYe7pum8fw+6zm15Pu5/fdO6verW2tuDjprRQkct83svC1kINuAnBwuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgoO9CvfzROI6n7QMbcJ2IL5z4zQAAAABJRU5ErkJggg==" id="10"/></item><item><costume name="X" center-x="26" center-y="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==" id="11"/></item><item><costume name="O" center-x="26" center-y="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==" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="position"><l>0</l></variable></variables><scripts><script x="12.552380952380986" y="10"><block s="receiveGo"></block><block s="clear"></block><block s="removeClone"><comment w="118" collapsed="true">This affects only clones, not the original sprite.</comment></block></script><script x="17.571428571428584" y="100.46666666666661"><block s="receiveGo"></block><block s="doWait"><l>.1</l><comment w="181.33333333333334" collapsed="true">Wait for old clones to be deleted.</comment></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l></list></block></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="10" y="233.85714285714292"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><block s="doIf"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doReplaceInList"><block var="position"/><block var="board"/><l>X</l></block><block s="doBroadcast"><custom-block s="best move"></custom-block></block><block s="doWait"><l>1</l></block></script></block></script></block><custom-block s="Win or Tie"></custom-block></script><script x="324.6" y="87.4"><block s="receiveMessage"><l><option>any message</option></l></block><block s="doIf"><block s="reportEquals"><block var="position"/><block s="getLastMessage"></block></block><script><block s="doSwitchToCostume"><l>O</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><block var="position"/><block var="board"/><l>O</l></block></script></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="5.19791666666606" y="5.197916666666693" color="243,118,29" hidden="true"/><watcher scope="Square" var="position" style="normal" x="10.288659793813395" y="10.288659793814418" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="335.25567010309214" y="20.606185567010243" color="243,118,29" extX="80" extY="70"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="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="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="show"></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>-100</l><l>100</l></block><block s="doSetVar"><l>position</l><l>0</l></block><block s="doRepeat"><l>3</l><script><block s="doRepeat"><l>3</l><script><block s="doChangeVar"><l>position</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="setXPosition"><l>-100</l></block><block s="changeYPosition"><l>-50</l></block></script></block><block s="doSetVar"><l>position</l><l>0</l></block><block s="hide"></block></script></block-definition><block-definition s="possible wins" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;trip&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="trip"/></block></block></script></block-definition><block-definition s="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="status of triple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possible wins"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;turn&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><block s="reportListLength"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><block s="reportNewList"><list><block var="turn"/><block var="turn"/><block var="turn"/></list></block></block></autolambda><list></list></block><custom-block s="status of all winning triples"></custom-block></block></block><l>0</l></block></block></script></block-definition><block-definition s="tie?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNot"><block s="reportListContainsItem"><block var="board"/><l>e</l></block></block></block></script></block-definition><block-definition s="Win or Tie" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="write"><l>X Wins!!!!</l><l>12</l></block><block s="doStopThis"><l><option>all</option></l></block></script><script><block s="doIfElse"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="write"><l>O Wins!!!!</l><l>12</l></block><block s="doStopThis"><l><option>all</option></l></block></script><script><block s="doIf"><custom-block s="tie?"></custom-block><script><block s="write"><l>Tie Game!!!!</l><l>12</l></block><block s="doStopThis"><l><option>all</option></l></block></script></block></script></block></script></block></script></block-definition><block-definition s="best empty square" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><block s="reportListItem"><l></l><block var="board"/></block><l>e</l></block></autolambda><list></list></block><block s="reportNewList"><list><l>5</l><l>1</l><l>3</l><l>7</l><l>9</l><l>2</l><l>4</l><l>6</l><l>8</l></list></block></block></block></block></script></block-definition><block-definition s="winning move" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>item</l><custom-block s="possible wins"></custom-block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListLength"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>e</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>1</l></block><block s="reportOr"><block s="reportEquals"><block s="reportListLength"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>O</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></block><block s="reportEquals"><block s="reportListLength"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>X</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></block></block></block><script><block s="doForEach"><l>position</l><block var="item"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="position"/><block var="board"/></block><l>e</l></block><script><block s="doReport"><block var="position"/></block></script></block></script></block></script></block></script></block><block s="doReport"><l>none</l></block></script></block-definition><block-definition s="best move" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportEquals"><custom-block s="winning move"></custom-block><l>none</l></block><script><block s="doReport"><custom-block s="best empty square"></custom-block></block></script><script><block s="doReport"><custom-block s="winning move"></custom-block></block></script></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1019">e,e,O,e,O,X,O,X,X</list></variable></variables></project><media name="U3L1-Tic-Tac-Toe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>