<snapdata remixID="13154180"><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 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></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>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="X or O"/></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="Triple"/></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="Triple"/></block><block var="board"/></block><block var="X or O"/></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="Draw" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicAnd"><list><block s="reportNot"><custom-block s="%s wins?"><l>X</l></custom-block></block><block s="reportNot"><custom-block s="%s wins?"><l>O</l></custom-block></block></list></block><block s="reportNot"><block s="reportListContainsItem"><block var="board"/><l>Empty</l></block></block></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></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="733"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="734"></list></costumes><sounds><list struct="atomic" id="735"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="-50.000000000000085" y="49.99999999999992" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="740"><costumes><list id="741"><item><ref mediaID="Square_cst_Empty"></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="742"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>0</l></variable></variables><scripts><script x="21.000000000000114" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doChangeVar"><l>count</l><l>1</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"><custom-block s="%s wins?"><l>X</l></custom-block><script><block s="doBroadcast"><l>X wins</l><list></list></block></script><list><custom-block s="%s wins?"><l>O</l></custom-block><script><block s="doBroadcast"><l>O wins</l><list></list></block></script><custom-block s="Draw"></custom-block><script><block s="doBroadcast"><l>draw</l><list></list></block></script></list></block></script><script x="422" y="124.00000000000023"><block s="setColor"><color>228,37,0,1</color></block><block s="write"><l>O Wins!</l><l>40</l></block></script><script x="596.0000000000003" y="117.08333333333388"><block s="receiveGo"></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doSetVar"><l>x turn</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l><l>Empty</l></list></block></block><custom-block s="make tic tac toe board"></custom-block><block s="gotoXY"><l>1000</l><l>1000</l></block><block s="doSetVar"><l>clone number</l><l>0</l></block><block s="doSetVar"><l>Winning Triples</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>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>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><block s="doSwitchToCostume"><l>Empty</l></block><block s="clear"></block><block s="gotoXY"><l>-50</l><l>50</l></block></script><script x="344.2832031250001" y="459.5000000000016"><block var="o"/></script><script x="445.0000000000002" y="491.50000000000125"><block s="doSwitchToCostume"><l>O</l></block><block s="doSetVar"><l>x turn</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><l></l><block var="board"/><l>O</l></block></script><script x="177" y="605.6666666666672"><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="35.99999999999989" y="129.99999999999997" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="36,0,32,1" pen="tip" id="992"><costumes><list struct="atomic" id="993"></list></costumes><sounds><list struct="atomic" id="994"></list></sounds><blocks></blocks><variables></variables><scripts><script x="19" y="10"><block s="receiveMessage"><l>X wins</l><list></list></block><block s="doWarp"><script><block s="show"></block><block s="gotoXY"><l>-60</l><l>130</l></block><block s="write"><l>X Wins!</l><l>40</l></block><block s="setColor"><color>88,139,255,1</color></block><block s="hide"></block></script></block></script><script x="273" y="24.333333333333286"><block s="receiveGo"></block><block s="hide"></block></script><script x="20" y="201"><block s="receiveMessage"><l>O wins</l><list></list></block><block s="doWarp"><script><block s="show"></block><block s="gotoXY"><l>-60</l><l>130</l></block><block s="write"><l>O Wins!</l><l>40</l></block><block s="setColor"><color>228,37,0,1</color></block><block s="hide"></block></script></block></script><script x="288" y="106"><block s="receiveMessage"><l>draw</l><list></list></block><block s="doWarp"><script><block s="show"></block><block s="gotoXY"><l>-60</l><l>130</l></block><block s="write"><l>Draw</l><l>40</l></block><block s="setColor"><color>36,0,32,1</color></block><block s="hide"></block></script></block></script></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="9.999999999999652" y="9.999999999999995" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="9.999999999999652" y="31.000002000000052" color="74,108,212" hidden="true"/><watcher var="x turn" style="normal" x="14.769230769231255" y="14.76923076923079" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="17.723079876923112" color="243,118,29" hidden="true"/><watcher var="Winning Triples" style="normal" x="14.769230769231255" y="147.0769206153846" color="243,118,29" hidden="true"/><watcher scope="Square" var="clone number" style="normal" x="11.07692307692194" y="288.4923136" color="243,118,29" hidden="true"/><watcher var="count" style="normal" x="12.307692307692191" y="12.307692307692387" color="243,118,29" hidden="true"/><watcher var="o" style="normal" x="10.000000000000174" y="9.999999999999995" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="x turn"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="1060">X,X,O,O,X,X,X,O,O</list></variable><variable name="Winning Triples"><list id="1061"><item><list struct="atomic" id="1062">1,2,3</list></item><item><list struct="atomic" id="1063">1,4,7</list></item><item><list struct="atomic" id="1064">2,5,8</list></item><item><list struct="atomic" id="1065">3,6,9</list></item><item><list struct="atomic" id="1066">4,5,6</list></item><item><list struct="atomic" id="1067">7,8,9</list></item><item><list struct="atomic" id="1068">1,5,9</list></item><item><list struct="atomic" id="1069">3,5,7</list></item></list></variable><variable name="count"><l>5</l></variable><variable name="o"><l>3</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="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmsENglAQBZcm8EqsxFok36KM1sIVYjjYkYmJBbzLBH+G++SxMxwZqrNnqKpLVS093DVN5/170HVuy/Nx/+ub1u1Vt9beHnTUjBY6apnfe1nIQrABPzlYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgN9F+rlj8ZxPG0fybadhnLD9WYAAAAASUVORK5CYII=" mediaID="Square_cst_Empty"/><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>