<snapdata remixID="13158838"><project name="U3L1-Tic-Tac-Toe Setup" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U3L1-Tic-Tac-Toe Setup"><notes></notes><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><list></list></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><list></list></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="reportVariadicEquals"><list><block var="data"/><block s="reportNewList"><list></list></block></list></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><list></list></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><list></list></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="reportVariadicGreaterThan"><list><block var="start"/><block var="end"/></list></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="i"/><block var="end"/></list></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="reportVariadicGreaterThan"><list><block var="i"/><block var="end"/></list></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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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><list></list></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="make a row" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doRepeat"><l>3</l><script><block s="doChangeVar"><l>clone number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></block></script></block-definition><block-definition s="make tix tac toe board" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="make a row"></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></custom-block><block s="gotoXY"><l>1000</l><l>10000</l></block></script></block-definition><block-definition s="%&apos;x or o&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>triplet</l><block var="winning triplets"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triplet"/></block><block var="board"/></block><block var="x or o"/></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triplet"/></block><block var="board"/></block><block var="x or o"/></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triplet"/></block><block var="board"/></block><block var="x or o"/></list></block></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;x and o wins&apos; draw?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><l/><script></script><list></list></block></script></block-definition></blocks><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" id="708"><pentrails>data:image/png;base64,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epmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCSjgepmZmAABAgQaCCjgBiFagQABAgTqCfwPb1wKlttjPKIAAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="709"></list></costumes><sounds><list struct="atomic" id="710"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="reportListContainsItem"><block var="board"/><l>empty</l></block></script></scripts><sprites select="2"><sprite name="Square" idx="1" x="1000" y="10000" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="718"><costumes><list id="719"><item><ref mediaID="Square_cst_1"></ref></item><item><ref mediaID="Square_cst_X"></ref></item><item><ref mediaID="Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="720"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>9</l></variable></variables><scripts><script x="10" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>clone number</l><l>0</l></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><block s="doSetVar"><l>winning triplets</l><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>3</l><l>5</l><l>7</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block></list></block></block><block s="doSetVar"><l>x turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSwitchToCostume"><l>1</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><custom-block s="make tix tac toe board"></custom-block></script><script x="476.0000000000002" y="74.13333333333378"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>1</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="x turn?"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>x</l></block><block s="doSetVar"><l>x turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="x turn?"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block><block s="reportListContainsItem"><block var="board"/><l>empty</l></block></list></block><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="o"/><block var="board"/></block><l>empty</l></list></block><script><block s="doSetVar"><l>o</l><block s="reportRandom"><l>1</l><l>9</l></block></block></script></block><block s="doReplaceInList"><block var="o"/><block var="board"/><l>o</l></block><block s="doSetVar"><l>x turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="%s wins?"><l>x</l></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doBroadcast"><l>x win</l><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="%s wins?"><l>0</l></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doBroadcast"><l>o win</l><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l>draw</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doBroadcast"><l>draw</l><list></list></block></script><list></list></block></script><script x="40.666666666666316" y="288.88333333333213"><block s="receiveOnClone"></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="clone number"/><block var="board"/></block><l>o</l></list></block></block><block s="doSwitchToCostume"><l>O</l></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="126.97265625" y="100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="172.4309999999999,0,175.95,1" pen="tip" id="970"><costumes><list struct="atomic" id="971"></list></costumes><sounds><list struct="atomic" id="972"></list></sounds><blocks></blocks><variables></variables><scripts><script x="72" y="32.33333333333334"><block s="receiveGo"></block><block s="clear"></block><block s="gotoXY"><l>10000</l><l>1000</l></block></script><script x="212" y="139.33333333333337"><block s="receiveMessage"><l>o win</l><list></list></block><block s="gotoXY"><l>50</l><l>100</l></block><block s="write"><l>O WINS!</l><l>12</l></block></script><script x="240" y="254"><block s="receiveMessage"><l>draw</l><list></list></block><block s="gotoXY"><l>50</l><l>100</l></block><block s="write"><l>DRAW!!</l><l>12</l></block></script><script x="47" y="219.33333333333337"><block s="receiveMessage"><l>x win</l><list></list></block><block s="gotoXY"><l>50</l><l>100</l></block><block s="write"><l>X WINS!</l><l>20</l></block></script></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="9.999999999999318" y="9.999999999999972" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="9.999999999999318" y="31.000002000000038" color="74,108,212" hidden="true"/><watcher var="x turn?" style="normal" x="9.999999999999318" y="52.00000399999993" color="243,118,29" hidden="true"/><watcher scope="Square" var="clone number" style="normal" x="9.999999999999318" y="76.0000059999999" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="16" y="47.000005999999985" color="243,118,29" extX="80" extY="70"/><watcher var="winning triplets" style="normal" x="9.999999999999318" y="97.00000800000004" color="243,118,29" hidden="true"/><watcher var="x or o wins?" style="normal" x="9.999999999999318" y="118.00000999999997" color="243,118,29" hidden="true"/><watcher var="o" style="normal" x="9.999999999999318" y="139.00001199999997" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="x turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1020">x,o,empty,x,o,o,x,empty,empty</list></variable><variable name="winning triplets"><list id="1021"><item><list struct="atomic" id="1022">1,2,3</list></item><item><list struct="atomic" id="1023">4,5,6</list></item><item><list struct="atomic" id="1024">7,8,9</list></item><item><list struct="atomic" id="1025">3,5,7</list></item><item><list struct="atomic" id="1026">1,5,9</list></item><item><list struct="atomic" id="1027">2,5,8</list></item><item><list struct="atomic" id="1028">3,6,9</list></item><item><list struct="atomic" id="1029">1,4,7</list></item></list></variable><variable name="x or o wins?"><l>0</l></variable><variable name="o"><l>6</l></variable></variables></scene></scenes></project><media name="U3L1-Tic-Tac-Toe Setup" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="1" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmsENglAQBZcm8EqsxFok36KM1sIVYjjYkYmJBbzLBH+G++SxMxwZqrNnqKpLVS093DVN5/170HVuy/Nx/+ub1u1Vt9beHnTUjBY6apnfe1nIQrABPzlYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgN9F+rlj8ZxPG0fybadhnLD9WYAAAAASUVORK5CYII=" mediaID="Square_cst_1"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgVJREFUaEPt2jtPwlAUB/DDBiERZ6KGkS9AYHQiBqkJ8QEoEIzI6nNwNOJmjN/CsDk6qpvGBBcfq69EHXEjLqYkNaJUzr33nN4WYWvSx/3df3vDP60PACKGkdkKBv1+8Piv1fq49gHAeCwWPy6VFz0Nent9gatG46ENymbzR/X64bCXAzq/uITdWm0Acm2I/zOhx6dnGBsdcVUqdmNCJbRUqUI4HIbazrYrUDe3d2Ck07C3fwDTmamOMaFAzeY7VJarEI1GtaMszEKh2HUsKJA5BW5A9cKY40SDdKMwGGGQLhQWIwVyGiWCkQY5hRLFKIG4UTIYZRAXShZDAqJGqWDIQFQoVQwpSBVFgSEHyaKoMCwgURQlhg2ERVFjWEG9UBwYdpAdigvjCOgnKpfLtsuZXZ/paGsSG0L1QeL8X4eYfapQLMHZ6QmsrK6xFUXHQOZtNplKQSAQgJnZOW+Dvj8zmxvrrHWePaFuCwBnnWcF/bWacaHYQJilmQPFAsJgrOWPGkUOEsFwoEhBMhhqFBlIBUOJIgFRYKhQyiBKDAVKCcSBUUVJgzgxKigpkBMYWZQwyEmMDEoIpAMjikKDdGJEUCiQGzBYFAqUTE5APJFga5mi1d76Q5vLz8u9NHbja30TFQoN/ZoLVEKiM6hz/wFI5+xjrt3fCfXbB4ARAChjYvXAPvefLoh8QmAwO/oAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABGBJREFUaEPtmktME1EUhv+ulcdKFwgiCtTHwhaMbhREQ4zgK2oUfMSoBSUuJEbjhlLKxiAVF8YHxcSoQPERH2BiiIrowgfQaiKIkmgEFd3x0DXmjLlJS2c6d2buFEQmabrovWfOd/4z5957phZMscsCIBtA21TgSk5O6ZKA9h9wtF2uq/2nmV6+6kCRw/F2GmiyyjitEK8yrY+ewO8PoO/jB7Q9eYzPnz+FTd22fQcSEhKw1GZHzuosJCXO4TWvOE6oQv0DX+H11qH++jVkZC6TPna7Ddb0NFln6ea9Hz7iTcCP+/fuSuN3FhRi65aNusGEAAWDFB0qQWHBDl3Rvn3nPnyNDRgeGkLx4RJdYIaBrlyth9vlBIEcLnYgLi5Wd3TZRErX6qoqJCYlobzcqSk4uoGGh0dQ7qpAT3c33JWVWLF8mWGQYANk/8IlL2ovnsfFWi9y1+Zw2dcFRDc76ChCbGwszniqhaii5C2l4fFjpTjtqeFKQc1ADMZqtaLS7eKKmtFB3T3vsSE/nwtKM9CBg0WIiYnB2RqPUT81zSeoJYsX4cXL1xHTWxPQufOX0P60DXXeWlPTTC39AoGA4v25gViE3nX3YPGihZqiK3Lw0dJjkjmlDOEGolSz2TNwpKRYpH+abdEzbLPZ0NDok009LiAaVFiwE5Gk1uyZgQmU+gF/F+SOOlxAJPOC1LQJV4fFgKnU3NISlv6qQLStmZuUiKGh4QkpBEpCnqry4Pev0bClQxWItja0eYx2mVbLSCpSpUdL0dr6MGSoKhCl28pVWVyrtJoTon9PSZmP8WmnCiQ3SbRjeu3JBVsVyGKxYGxsTO89TZ1H1Y6u4KUkIhD96PF4cPOGz1TH9BqnY0aTzxdSvlWBvF6vbL3X64TIeeT8eP+mgURG2KgtzQop1XqjjoiaT4e/58/aQ9bI/6vKUSRzc9eZ0jMQoRKdANbn5Ycs+qoKlTldmL8gFfv27hLhg1AbtOg/bW8P6QqpArFe2WRbi1irS/Nejrbq8fFx+NI/oKk/JlQKGWOUOTNmxuDkib8nWHapKkQDlSab7bSS/UhB5gKiM1F2VtakOrH+/DEo20bjAmIq0Xe0enFK6rADp9IjwA3EVFJqTkQr/ahUp6alhz07mp4hNpi1ZSeqWULH7q7Ojoh9QW6FGBQViN7e3qg3G1kw5Rojmqvc+HSKNhQvDPmpWaHxSrlc5aZ2UulUeqa6Kqx3oPTM6gYig5TT9P7G6XIL3xpREaqocGOgvx81Z2u4g2YIiEnsLCuT3rY5HA7DL75o0bxW3yipouetoGEgggp2YnXOmrAdME9JJ0UaGpskxcmG3uAIAWIOE9ide8140NIsldeNmzZLLeTMDLs0ZKE1Xeq+0sFxdPQXvn0fRF9fnzSWPrt270FeXp4hlYUCBStBEe/o9EsO038VRkZGcOtmkzRk3rwUSQV6ccaARb2jNQ2IJ83MGDMNZEZURdqc2gpNlX80zpo1+9UfMU6JpNqpaVIAAAAASUVORK5CYII=" mediaID="Square_cst_O"/></media></snapdata>