<snapdata remixID="10113426"><project name="2021 Tic Tac Toe 1.0 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="2021 Tic Tac Toe 1.0 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="doFor"><l>i</l><l>1</l><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="gotoXY"><l>-50</l><l>50</l></block><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="X wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></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><l>X</l></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><l>X</l></list></block><block s="reportVariadicEquals"><list><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="Board"/></block><l>X</l></list></block></list></block></list></block><script><block s="bubble"><l>Congratulations! You&apos;ve won!</l></block><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;Player&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>Winning triples</l><block s="reportNewList"><list><block s="reportNewList"><list><l>3</l><l>5</l><l>7</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>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block></list></block></block><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="Player"/></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="Player"/></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="Player"/></list></block></list></block></list></block><script><block s="bubble"><l>Congratulations! You&apos;ve won!</l></block><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;Player&apos; Win?" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><custom-block s="%s wins?"><block var="Player"/></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doSayFor"><block s="reportJoinWords"><list><l>Congratulations! </l><block var="Player"/><l> wins!</l></list></block><l>2</l></block></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="862"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="863"></list></costumes><sounds><list struct="atomic" id="864"></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="869"><costumes><list id="870"><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="871"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>0</l></variable></variables><scripts><comment x="573" y="48.46666666666661" w="90" collapsed="false">The Square sprite has 3 costumes:&#xD;EMPTY&#xD;X&#xD;O&#xD;</comment><script x="21" y="10"><block s="receiveGo"></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>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 triples</l><block s="reportNewList"><list><block s="reportNewList"><list><l>3</l><l>5</l><l>7</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>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block></list></block></block><block s="doSetVar"><l>clone number</l><l>0</l></block><block s="doSetVar"><l>Spaces Taken</l><l>0</l></block></script><script x="453" y="159.79999999999995"><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="doIfElse"><block s="reportVariadicEquals"><list><block var="X&apos;s 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="doChangeVar"><l>Spaces Taken</l><l>1</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="clone number"/><block var="Board"/><l>O</l></block><block s="doChangeVar"><l>Spaces Taken</l><l>1</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="Spaces Taken"/><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="doSayFor"><l>Seems to be a tie. Play again!</l><l>2</l></block></script><list></list></block><custom-block s="%s Win?"><l>X</l></custom-block><custom-block s="%s Win?"><l>O</l></custom-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"/><watcher var="Board" style="normal" x="10" y="76.00000599999998" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="clone number" style="normal" x="10" y="169.00000799999998" color="243,118,29" hidden="true"/><watcher var="Winning triples" style="normal" x="4" y="199.00000999999997" color="243,118,29" hidden="true"/><watcher var="Spaces Taken" style="normal" x="10" y="190.00000999999997" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="Board"><list struct="atomic" id="1067">Empty,Empty,Empty,Empty,Empty,Empty,Empty,Empty,Empty</list></variable><variable name="Winning triples"><list id="1068"><item><list struct="atomic" id="1069">3,5,7</list></item><item><list struct="atomic" id="1070">1,2,3</list></item><item><list struct="atomic" id="1071">4,5,6</list></item><item><list struct="atomic" id="1072">7,8,9</list></item><item><list struct="atomic" id="1073">1,4,7</list></item><item><list struct="atomic" id="1074">2,5,8</list></item><item><list struct="atomic" id="1075">3,6,9</list></item><item><list struct="atomic" id="1076">1,5,9</list></item></list></variable><variable name="Spaces Taken"><l>0</l></variable></variables></scene></scenes></project><media name="2021 Tic Tac Toe 1.0 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,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAA5VJREFUaEPFWkl22zAMhS6RbvN6Ep/FttIzNbHPomXtul30ROyjqIEDQAykE60SEsP/BAhQtAaoPgMAuEICHw1itbm6rz6z3v8BAKY+5izL08/z6+v3vzOh42mcrpf3fpYTS2uEvavw+JH9P2SgVGGx3e4PeBvHfxuhy+V9dzJ7LNymRpnpHXkpGI9IzLBsAKAg5CMk4SExTkaCU87ZJf8j1KNIooQwf+oVJBXUlnY4SI46GJK0DYTOe8rNe6jmc5mrwhKSocTScR5MLCGOELqN2V3N5ZZtHqcYRllClgSx6OTU6CjVi0tK6DhO12tWtoXodjGhgi04eLmPegAboQa/SHl/DtlkD/1+wNs56kPyxioBF2Q+b6s5uN3/wBg31pKQBHgUDLJnOAA3REcDqV2pXMBQPymI8k3nsL75JQ7r/pr3EE+HlyiOfMkBT0Jyl/l1f8CPesrV+yzrTsLHy/iHICJrwOFwe/NFYSd0nq6XDxYjLRC5Zhs8ISBZgApCvg810Ouj6iA9rz15D5WgV4d5VRPQcw7ckB42a1qzp8Xd+neWcuEFz9r1nQMYGjb0Bn4DUI9GHruibJ9O4+Rf8Ho9ou1QKQiahryS48u2CBWxBEzW5aYlrkqZdIQnRIVL4r3QVSgJRXMxhNBPuiE05qIQI11nBP7tEUKMk4DNTAQMVpHFx05ogMPRvw8lr+A6JFHBppo+vdmUGhRVIkI6Iop1XESV9hXi1ZSr2smaDtYT9ES9RtwpIwsYGGTMRig2pFi9HZ5SSSQehDyh7QWvW2PVVAcRWHms8aJQnkHkFrFLvc6ga2AMZduAzqASg9aoGwjZCpUVIB4NukEwJwXp2tBymu2kyGtS1B4hZMlr9P2cf8KlVvirb9SCNbaxbiClwULXLutSs60mg8+JkCHR2KxqoxkuGpNf8OQ3pxi2NjjJ/ZLElPakkLSjMu3Z1e4vEDEgCCd7qM9JgSsNbZcOXOCEVY4zk8aCl0YkeCUk4KWSkFDH5DEBF3HJy/ZwOJ78zely62N2bFbssmr2CH0t7pL8gkdNKG2RGla8LC8R8ZBUOemnMZxjbr5LbhHcdBH6bKQC5jkkHSGBg6QZby0ndqtZFUYWORPaCWlwcQuR3/I32J5/fTjnn8Zgn35xoBTzsrPEKkVJL+PZdBShrA/huaOATYkGBKogZMJIpm3OkpTbvmhcc99r5s9Xf3uJffyZYXp5+Xb/D2lSkZEkMD7gAAAAAElFTkSuQmCC" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABJpJREFUaEPNmr1vEzEUwN9trSrRrFSAujX8AVU7ZqpQaZEqqnzQD1q1zcrnwEabKxNC/Sto0ikjIzDRUlEWKCtfEjAmTBXDIV/OOdtn+z37UqmZkpz9/H7vPT8/2xcAwPj8/MKTkZGhIVA+AQBE6p/a36wVa53ng8nAngOcnf37xLQoTU5OvVq9uz6UWydvHpvpaGb98/sXfDw5+RYDVSq1drO1XxBtjNvDW/tz6Xh4dAy7YZgCtVr7hd5IZpSLDGkBOhcDSkKdDENsfPj+GHZ3tB4aBJCoBVGjnMmG5KHvP37CtatXkEDUG8ANg96a66T2kIHKtXbzQE4KTM2NzTqMXR6DMNzuay0Lsv0ahKcTGckwn0+/wPzcHDx/sQe3F25JA5A81Ol0YXOrDsViEcJGCoWqqppP+m1LOhEEhrWDwywtr2h10QLphup2urDhA2WhxvOo3AKDYUOhHhJFenvKCEWfMyJMo7FtXPtRIFUXKpRdVRxEbCF5ZmfbWl05AzFAPRSuJDrnhAZcGiXMxCIgXocaHusQ1VMuEGpbGoxc13h5iA+sQg3SRy5hJhrCHyjR/jygXDyjetUfSJDEoLa26jDhuk5p4hGFQcLACOQaPn1PTRSlisJlDqEwBGGoh1zA8iSKQcCQFlaCUdImEUCn614m9WGWVrLepVo0adf3UBBAqVyutdMNnhOK1DjjKUsNR/aMtS5Mh1dCrtputZrJjtUdyLVMsnrGsmOWVx5ZT3QOuWJRoVQYLLLS58k3QwcCUK8nNqAJXJcoyGHmak0AeHd0DM/YIUkAUCpXBjOHbAVttVqJN2em/YwHQ9yFG5zgIcsQWrcJfwpfmaeWV1bh7ZvXcO/+g2Rz5uB33tTYpfcgH5CO1TAgC7Obs7MwPDwMi4tl2uLrwMtVQYA8JCLlzONHD/2280TjxUA+2wdqrOsSgKmiyGO+uG8EEO+H9CenBJURDWzZzFql5yDznkO2fMCenSZHTWI26/dJvuSp/Uzm9t6xygJlPJd1ZtDh5+0hDqR6Sg9jjyEJSjwE4RPD4X4nC9TcL9D7+3vGtvj2DzNtdqCXPi8LunMibJ6awyxThRnCP4JO568mpVtG1jwSPBSUKhVWbfP7oWRcjAQAXOYMljvzJop0P+RYy3FONxiCdYznfoop6CGneMhiUjcYVZBDoiBcEHBp3lnOFYbmGxk6Dr/NOhSv0289vIBIMB4ZStclO6dsSSaCw6MPsBs2kktjdqZwkIacbgAbDOYFD8bYZViiEOWSPSSXM8sQNnawhGV8zmTxDysoKeueDorLEV9DYEAhpTiVPfPUoEUE8d2bqCRRYbN1UgGUw0yShzJhplPSoHhuHoVU9lTWsCSgmZkbMDU97Xa/Ku30/aLTZDd2PcrufKu1O+ZL4/iQREkKXA3xWt9UlLp7AuuhPFd+Mk+Njl7qqSM8M3hIM1gUAbCzIdvHN40RHIjiJ+oNbguOJQKLRg5T0oLek0KaQwQD5m6CeYB60kkPudwq0wWgcJZ3xSSg+AXAtfXMG42SKsbRaC/o0bH8WoovAI4DwFpPzMVQzg8p7vX1P5igHk3xDuHZAAAAAElFTkSuQmCC" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABrdJREFUaEPNWk1sVFUU/matbVnhAhmgQJm2LmyBwEZaUImxyE/QAAUJlplWqgsKkbBpO0xdmMKULgxCpyRGpD8g8tOaGKKU6oKWQgcTW6etkTgF0V0HcD3mvJ+Z93Pfu/fOmya+pKG8d+655zvn3PN364MP8KWBNEQfH+zUrHei/HS6fPAAwUE14BuSgSQr6vzSZxWxdGnxfQVQ3cHQ0PnuLsVK9ML+OH+ZH2Hl9xsZHUN9KPSLCdD8CCfP1Q2O0zc2IAnFSJAqiFzpZZkxdKQCClosJMJYhEbQKF5YKWsNDLIW8qG6rk49Q/l4bv5wC+PjccxMT2Ho1o94+PAPG9t339uFRYsW4dWKSmzaWAX/4pf5VnQRjnCN5vMMJWcfIRbrxsWvL2D1mrXKT2VlBQKrShRhrZYgbSampvEgPo4b168p9Lv31GLn9q1IUxrJQbMZC/mA6g+0KJflkxUh85tRKs3eydnHGSD1Hzaids+ujLZlVH7l6g309fYgNTeHhkON2LljqzQke1CIdTFUY/dy/c2XX11EJNwCAnKoIYSiokJpIawKJHc92d4Ov9+P1tYWVTk2EdgnTyhs60uNLFKpp2gNn8DkxAQibW1Yv26tByD2pcT/i3MxdJ09g7NdMWx+Y5MQfwVQ0CUPsfSQSqUQDDWgsLAQHdFTKCos5FuVF8qYPg2QG35ytAkno6eFXJBpoXQa8OmVhOVkkuaCoXoEAgG0RVptNQVPbr6a7RwmJn/DO1u24GS0Azt3bHNlIeRyRv89GKxHQUEBOk9H+bI5UOQCmkC9Ul6GOyN3Xd1bDJAm2OdnzmH49hC6Y132w5+LlDLlYhq4ck11v3g87hh83AEZ/HpiMqFo6NeJSZSXlXLSm8FPHYGKaoDo6FF5Hm46qvzr5CFmQFQpnLdWCurG5GoVlavxUWODPeFRH5VLIhTFZKgB6QxXVFSgp7eP6XpCLkdEtXt2M00tIZPJqrb8LHEiyfXj4/fBKtOEAJGZV6wswceNDfZtmYjUl7mCVTdhrNZe6VYaGBxEeWmpKWVwAVF9tsS/GHNzKRQVFWR82ezZguHMImMaac195au2z9qj+Pf5M7RFwqZCY+Quq8EzbEylDRWPnR3R3KpFCVeSIaUw3nS4CTdvfm9a5ljLaXUnDh85itc2VGlZWsyJxKhkxGfTFhcvx8DAIMrLs1F3ZPQeo8EzrFcWka+6hmqeyxkgmtBqZ02vTDgYrYGkqcmubO4Z8vl8SFMt5HBO5fQsajudzp2eoh09FKx0Stc8dGd0DKejUfRf6sup2cqANSRoVvQThZnVqppoqc3o7+szhW9XC9HHWCyWWSC3MceoEsycSK3y0Y5SgNjuJSGZnH9yqU2ANDHoXcg4l+vu7tLcKw2KGGQheqcaeZ4fSd0YAbHPkGWm4BTrvcJyllsAkYGEmr+ffxo2FapyUc4rkjyt1zEZo5zOmgto85tvIfJpPmYGaqGjuq3dEgK2Ma0k+mCwHm/XbDG15s6AtB2aW8JYvqIEB/bXeiw2Jc3jhlD7Rkn/9vCwaebHmcsB3169gd7eHly+1MebTEtKbCQXtU92DeWgU+3tArWcZRRMpfqCBUX4MzlrHh46iS8vm6siLDk5Q0ue88KLBTh+TO1gbWfINDm1FE3NrezFHkziaambkoVmCtQTVW+oQvyBNpzIsxVk0VF0++fvJ+ZeSGPCjXL6ZmRiemgWl41WsqLkSG9QYHJ2Fkv8fscjIAxIsVJVleNwIkdRpZfRsGZlSQDHjx2xrSXcmesU9u2DeY0+lrXNxTgumC8Ppbb7/r0x9lyQ63IOUpDrJRIJV6Zuas8VnK5MXrPJHdabhVOzfYtHUFw/s0RZfWLqCMZALzBoZG/f3BxGYiqBcLg1t/aci0oloIjWcarddQxgxK8Csl4aK6z4zkE+Tfc3LeEIDuzfKyiiGBkFoRMnIkgmk+js7ERZWUCofXGIcnwwxszc0tyMxX4/NVaeL74oaV642KtYJZdbQeGw7WYxoxAbN71uq4AdbWLKL4/Q09uvWJx4SCvH0LEqf0niHLYZ1nIwIAG7en0A3w0OKOF167btygh5zepKBVNpYJVyDUKN47Nnz/H4ryeYmZlRaOln7773UVNT42Bly6YOMkhYSMz3oV3/0RkYuzeuCPz79BRST5/im8v9CpNly4oVK9DFmQ54/bo1eWny8w9ICDdbvZZoLRQErNtxGzwh+VyJ+AGGTyGeqrmJ1dtm3tUhy8Gjy/3/4JoAARgyakS92ff2J5PW1Zn/89javnMWGD4vXPjS6H/9DzmtOY+PlgAAAABJRU5ErkJggg==" mediaID="Square_cst_O"/></media></snapdata>