<snapdata remixID="14939519"><project name="U3L1-Tic-Tac-Toe Setup" app="Snap! 11.0.8, 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 one 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 tic-tac-toe board" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><custom-block s="make one row"></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></block><block s="gotoXY"><l>1000</l><l>1000</l></block></script></block-definition><block-definition s="%&apos;letter&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s" initial="1"></input></inputs><script><custom-block s="for each %upvar of %l %cs"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><block var="letter"/></list></block><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><block var="letter"/></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><block var="letter"/></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></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="o wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="draw?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="spaces"/><l>9</l></list></block><block s="reportVariadicEquals"><list><block s="reportVariadicAnd"><list><custom-block s="%s wins?"><l>X</l></custom-block><custom-block s="%s wins?"><l>O</l></custom-block></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list><l><bool>true</bool></l><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></list></block></script></block-definition></blocks><primitives></primitives><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="751"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="752"></list></costumes><sounds><list struct="atomic" id="753"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="1000" y="1000" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="758"><costumes><list id="759"><item><ref mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_Empty"></ref></item><item><ref mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_X"></ref></item><item><ref mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="760"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>9</l></variable></variables><scripts><script x="13" y="12"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="90" collapsed="true">When a square is clicked, if the costume number is 1, which is X, the clone number (or the designated number for that space), will be replaced with X, filling the square with X. The number of spaces goes up by 1, and the costume is switched to X. Then, X&apos;s turn is set to false so O could go. If X wins, the sprite will say X wins for 2 secs and will report X wins GV. </comment></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&apos;s turn?"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>X</l></block><block s="doChangeVar"><l>spaces</l><l>1</l></block><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="doIf"><custom-block s="%s wins?"><l>X</l></custom-block><script><block s="doSayFor"><l>X wins!</l><l>2</l></block><block s="doReport"><custom-block s="%s wins?"><l>X</l><comment w="90" collapsed="true">To check if X won, the procedure takes an input where you can type X or O. For each triple of the winning triples, the code checks each number within each triple to see if there are the inputted letter in each of the numbers of the triple. If there are, it is reported true, otherwise it is reported false. GV </comment></custom-block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListContainsItem"><block var="board"/><l>empty</l></block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportVariadicEquals"><list><block var="x&apos;s turn?"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list><comment w="90" collapsed="true">If the board contains an empty space and x&apos;s turn is false, the variable &apos;o&apos;s turn&apos; is created and set to a random number between 1-9. This will repeat until o&apos;s turn equals empty. Then, o&apos;s turn variable will be set to O, and x&apos;s turn is set to true to allow the players to take turns. If O wins, the sprite will say O wins for 2 seconds and report that O wins. GV</comment></block><script><block s="doUntil"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="o&apos;s turn"/><block var="board"/></block><l>empty</l></list></block><script><block s="doSetVar"><l>o&apos;s turn</l><block s="reportRandom"><l>1</l><l>9</l></block></block></script></block><block s="doReplaceInList"><block var="o&apos;s turn"/><block var="board"/><l>O</l></block><block s="doSetVar"><l>x&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doIf"><custom-block s="%s wins?"><l>O</l></custom-block><script><block s="doSayFor"><l>O wins!</l><l>2</l></block><block s="doReport"><custom-block s="%s wins?"><l>O</l></custom-block></block></script><list></list></block><block s="doIf"><custom-block s="draw?"><comment w="90" collapsed="true">To check if there is a draw, the procedure checks the value of the spaces variable. If spaces=9, that means all spaces are filled in the board, and it also checks if X and O wins is false, meaning neither letter has won yet. If these are both satisfied, the procedure reports true, that there is a draw. If not, the procedure reports false. GV</comment></custom-block><script><block s="doSayFor"><l>Draw!</l><l>2</l></block></script><list></list></block></script><list></list></block></script><script x="403" y="348.16666666666646"><block s="receiveOnClone"><comment w="90" collapsed="true">When a clone number of board is replaced with O, the clone will switch to the &apos;O&apos; costume. GV</comment></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><script x="384" y="12"><block s="receiveGo"><comment w="90" collapsed="true">When the green flag is clicked the game starts and the board appears on the stage. The spaces variable is set to 0, which keeps track of each space that is filled. The costume is set to empty to ensure each box starts as empty. The clone number is set to 0 as a placeholder before it is filled by X or O. The board list is set to empty. The board starts at (-50,50). The &apos;make tic tac toe&apos; block goes next and for each row 1-3, it will create one row and the x decreases by 150 each time and the y decreases by 50 to ensure the board is placed one row after another. After this has completed for each row, the final excess box will be teleported to (1,000, 1,000) so it is not connected to the board and is off screen. Then, X&apos;s turn is set to true so X can go first. Finally, the winning triples list is set with every possibly winning combination. GV</comment></block><block s="doSetVar"><l>spaces</l><l>0</l></block><block s="doSwitchToCostume"><l>Empty</l></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="gotoXY"><l>-50</l><l>50</l></block><custom-block s="make tic-tac-toe board"></custom-block><block s="doSetVar"><l>x&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>winning triples</l><block s="reportNewList"><list><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>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>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></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="10" y="10" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="10" y="31.000001999999995" color="74,108,212" hidden="true"/><watcher var="x&apos;s turn?" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="winning triples" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="7.000005999999985" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="clone number" style="normal" x="227" y="9.00000799999998" color="243,118,29" hidden="true"/><watcher var="empty" style="normal" x="10" y="288.00001199999997" color="243,118,29" hidden="true"/><watcher var="o&apos;s turn" style="normal" x="10" y="309.00001399999996" color="243,118,29"/><watcher var="spaces" style="normal" x="3" y="276.00001199999997" color="243,118,29"/></sprites></stage><variables><variable name="x&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="1018">empty,O,X,empty,empty,X,empty,O,X</list></variable><variable name="winning triples"><list id="1019"><item><list struct="atomic" id="1020">1,4,7</list></item><item><list struct="atomic" id="1021">2,5,8</list></item><item><list struct="atomic" id="1022">3,6,9</list></item><item><list struct="atomic" id="1023">1,2,3</list></item><item><list struct="atomic" id="1024">4,5,6</list></item><item><list struct="atomic" id="1025">7,8,9</list></item><item><list struct="atomic" id="1026">1,5,9</list></item><item><list struct="atomic" id="1027">3,5,7</list></item></list></variable><variable name="spaces"><l>3</l></variable><variable name="empty"><l>0</l></variable><variable name="o&apos;s turn"><l>8</l></variable></variables></scene></scenes></project><media name="U3L1-Tic-Tac-Toe Setup" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAANKADAAQAAAABAAAANAAAAABdv+0DAAAAx0lEQVRoBe2asQ2DMAAErSglaUlNJmEWImYFRdnJATb4FCewzpLL18l3lJTS4Bm3N9UW7jC8vrc90PSeS6310ndZP6XrHvfjQfujWjk+6OwlLWQh2ICfHCw8xlkoVgYPLAQLj3EWipXBAwvBwmOchWJl8MBCsPAYZ6FYGTywECw8xlkoVgYPLAQLj3EWipXBAwvBwmOchWJl8MBCsPAYZ6FYGTywECw8xlkoVgYPLAQLj3EWipXBAwvBwv/CjduqiT8a+/65/gAgXfnWAcy/sAAAAABJRU5ErkJggg==" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAANKADAAQAAAABAAAANAAAAABdv+0DAAACJUlEQVRoBe3aT0sCQRQA8Gd0EIT8AFaIn8JO9gE0kI7ln05BdMhblyLtWp0iqOwjRNCn2AjM/nuS/mjZN0i6tCMsSLizOzPvzc6GD4aR1R3fb+ex8HQjAJDM5fKbsVg0ar8OdfT7Pw+TtiDZ632UiuWVUIO+ep9w02i8MhCkUqnv9bXVUIOsq2sGgolQ19iI5MegERfFqEPcHXp77xiVLEvGKycuqFqtwdb2jjGox6dnmM9k4Pzi0jUnLuhgfw9arZYRKIbJZbOwtFyAxfyCHCgen4L66UngqGHMbo1fMdwdYpchaJQIhuXrCQoSJYrxDQoCJYMRAulEyWKEQTpQKhgpECVKFSMNokBhYJRAmCgsjDIIA4WJQQGpoLAxaCAZFAUGFSSCosKgg/ygKDEkIB6KGkMGGoXSgSEFDaOazSbMpdOD5syrn2HnqYSv9kHlCzrdLtzf3UIikVBZxve5pCCnzArFEliWpaXzJQM5GPYbACszXZ0vCegvxqkXHSh0kBtGFwoV5IXRgUID+cVQo1BAohhKlDJIFkOFUgKpYihQ0iAsDDZKCoSNwUQJg6gwWCghEDUGA+UbpAujivIF0o1RQXmCgsLIorigoDEyKC6oslHR0jY7ifPm4daD96fx4NEYt4XqZ3WYnZl2e1v7cQfFZrfg7pBJGAfAw7DPcEHOImGaxyDTd2twU2i329HDo2PTc+Xmxx4AZBGxR9IeZXv8h3j5BRxf4Dto8cI/AAAAAElFTkSuQmCC" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAANKADAAQAAAABAAAANAAAAABdv+0DAAAE/UlEQVRoBe2aXUwUVxTHTxof2fXNhtA2EVlY25h2+Yi8WNYt1KRBrVYrlmqMski1jcpa0wctu9pEq4I1tsbCQz8UWIWKfPigKIo+uAouvtSvNTWFtrwK+j7e/9VpkJ07XzvLTKknmczu/Tj3/O49c/bOuUs0DcXPmKTpcM2enT34ChZo/YYgSZL0n76uxW5QRoZrBgcC1HSRl0BOX8kZVht4/kIfxeNDlLh/jy71XaSHD/9IGmLFylWUlZVF7/jyKbCwhN54/bWkNmYLLHG54ZG/aNfXYcrOnkNNjY3cllUVFXS5v18x0IRCIQ5zayhO/pISWvlxBf3W0WWWIamfn0U5FuSMy5/DI9LOXXUSC5fS3m8PSvhuRtpPd0ps1aSyskUSPpsRFuWkefPevgU6U0A//XLiX5BHj8bM2JDU51zvRQ6FCTY6OTKQYZcbGxunrdtC1HLiOLW0RumrHSGaOdOdtOxmCt4vDVBb2yny5OZxV8TzaFQMBQXAVAWrye1284GtAploNHRikjweD9VUB+lA/SH6aNmSiU1UP+sGkmG8Xi/t2R1WVWpFJSC8eR5aXF7O1emF0u1ytaHtPNROBYw8IW+9OZe6e3poxfKlFLs+IBer3nUBfX/0RxofH6dIuE5VWToqAcUiH32yuoLgJVqiCfT77Tv0xeYaCjOYdDwzWgaiHu62ZOmHVBeOaDbXBGpoOERHfjhGmCk7Bd7R1XlG0/VUgeC32L6sqVxtJwsfG95Ru30HNTU1qdqiChSNRrkSu1xtsuWYWEwwHgORCIGwPzv8XYMjVkc2HhNbXbOJotGTclHSXQjUd6mftmyttS0QJFn6vGBx+Qd0PRYTVZMQCDvhBe+WCDvaVYHg9OBBQuh2QiBEFPxSO1EQwu/eSyiaJgTCi5ndoVrRYlaY48ml0dFRxWpFIIRrvFU6VXJzPTQUv6loniIQWmJH7VRxu1xC04RAwh4Or/h/ALlcGTQyPOzYtfj7n1FyCdxOcYUQ3Xp7zzkWCBEOkU5JFIHQkGVgNHe2SgqnogwRLjMzU3EoIdD84mL243VfsZPdhdigFhXmK5ohBEJW82xPt2InOwuRCcrJ8QizrUKg0oCf2ttOEnbdTpKrV65QoLRMaJIQCFt1lhVluTfxVl2oNU0VyCl8syfC8gviXYwQCDYFg1XUeOyoruREmhheUHu8uZVPslpyXxUIHSs/XUMH6xteUGzHF7g+kjWYZDVRBUJHKGhmaV+9eTG1wVKpi0R2EzsQEAYDWbcmEFYJ6Vi9eTFZsZX3ffvreV7ws41BTbWaQNCAvBhcD3ltPck+zVENNMC5EZ5jvXlBXUAYHylg5LWnEgowX4a28XSw3pdN3UCTodRSSQYWQNgU6WejMFBmCAgdsFIFhUX8VODnX5tRZKkgmm2oqqauMx2GVkY2wjAQOuL8BoddOPTC4FZEQDybWBWcueLACwdfet1MhsHdFBA6Fs8v4oP68gt4BASYmYNfrAiimM/n43mCVE8FdR94AWKyYHv0+aaNPLva0dlN0dYW7vdIM+F9pbDg2Y54rjePJyzx3D1+/ITwgpZIJOjm4AC/EEEBgklKVVICkgcH2Lq1lfzCjA8MxrnBSKzjXAmbXAg7LaeFgff42yaAcbxvBYRsB+6WAE1UiB/i5L1WdGKTtH42/Qyl1aoUlL8ESmHypqyrn400Lf7ROGvWq7GnDxUGe9396PcAAAAASUVORK5CYII=" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_O"/></media></snapdata>