<snapdata remixID="12085006"><project name="U3L4-Tic-Tac-Toe Starter- MS+EC" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U3L4-Tic-Tac-Toe Starter- MS+EC"><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></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>position number</l><l>1</l></block><block s="show"></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><block s="doFor"><l>row</l><l>1</l><l>3</l><script><block s="doFor"><l>column</l><l>1</l><l>3</l><script><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l></block><block s="changeYPosition"><l>-50</l></block></script></block><block s="changeXPosition"><l>50</l></block><block s="changeYPosition"><l>150</l></block></script></block><block s="hide"></block></script></block-definition><block-definition s="possible winning triplets" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block></list></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="678"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="679"></list></costumes><sounds><list struct="atomic" id="680"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="-81" y="-16" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="685"><costumes><list id="686"><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="687"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="11.666666666666591" y="60.03333333333342"><block s="receiveGo"></block><block s="removeClone"></block></script><script x="10.39999999999992" y="180.5000000000001"><block s="receiveGo"></block><block s="doWait"><l>.1</l></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l><l>5</l><l>6</l><l>7</l><l>8</l><l>9</l></list></block></block></script><script x="352.6666666666667" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIfElse"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><block s="doIfElse"><block s="reportEquals"><block var="X&apos;s turn?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSwitchToCostume"><l>X</l></block></script><script><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSwitchToCostume"><l>O</l></block></script></block></script><script><block s="doSayFor"><l>You can&apos;t click a box that is already filled click an empty box</l><l>2</l></block></script></block></script><script x="24.333333333333258" y="370.49999999999994"><block s="bubble"><l>I&apos;m the parent.</l></block><block s="doGlide"><l>1</l><block s="reportRandom"><l>-200</l><l>200</l></block><block s="reportRandom"><l>-150</l><l>150</l></block></block><block s="bubble"><l></l></block></script><script x="530.7082682291666" y="308.05555555555566"><custom-block s="possible winning triplets"></custom-block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="5.000000000000682" y="5.000000000000007" color="243,118,29" hidden="true"/><watcher scope="Square" s="getCostumeIdx" style="normal" x="9.999999999999318" y="10" color="143,86,227"/><watcher var="board" style="normal" x="10" y="35" color="243,118,29" extX="120" extY="105" hidden="true"/><watcher scope="Square" var="position number" style="normal" x="16" y="11.000001999999995" color="243,118,29"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="777">1,2,3,4,5,6,7,8,9</list></variable></variables></scene></scenes></project><media name="U3L4-Tic-Tac-Toe Starter- MS+EC" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmrEJg2AUBp9TmFJwkcySoEOJmcU2ElJko0AgA3zNoT9nf3y+O0u7auzpqupaVVsLdw3D+P4ddLtP22NdTn3Tc3/VPM0fDzpqRgsdtcz/vSxkIdiAnxwsPJ6zUKwMBiwEC4/nLBQrgwELwcLjOQvFymDAQrDweM5CsTIYsBAsPJ6zUKwMBiwEC4/nLBQrgwELwcLjOQvFymDAQrDweM5CsTIYsBAsPJ6zUKwMBiwEC4/nLBQrg4G2C7XyR2PfX/Yv20qdu4RgW9QAAAAASUVORK5CYII=" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgVJREFUaEPt2ktLAlEUB/DjqgTJ1lLh0k9gLltJmAY9NdMSMrc9Fy0j20X0KQJ3LVtWuyKwTY9tL6iWtnITxAhGlua5554zd8Z0NzCP+7v/mYt/ZjwAEEwkJrd8vp5ecPmvWv249gDASDgcOc4u5lwNent9gaty+aEGSibTR6XSYb+bAzq/uITdYrELcmyI/zOhx6dnGBoccFQqrcaESmgpX4BAIADFnW1HoG5u7yARj8Pe/gFMTYw3jAkFqlTeIb9cgFAoZBxVx8xnsk3HggJZU+AEVDuMNU40yDQKg1EGmUJhMSSQ3SgVDBlkF0oVowWSRlEw2iApFBXDAuJG6WDYQFwoXQwrSBfFgWEHUVFcGBGQKooTIwbCorgxoqB2KAmMOKgVSgpjC+gnKpVK1spZqz7T0NYIG0r1gXD+r0OsPpXJLsDZ6QmsrK6JFUXbQNZtNhaLgdfrhemZWXeDvj8zmxvronVePKFmC4BknRcF/bWaSaHEQJilWQIlAsJg6ssfN4odpIKRQLGCKBhuFBtIB8OJYgFxYLhQ2iBODAdKCySB0UWRQZIYHRQJZAeGilIG2YmhoJRAJjCqKDTIJEYFhQI5AYNFoUDR6CgMRyJiLVO12tf/0Kbm0rSXxk58rW+h/P6+X3OBSkh1Bk3u3wWZnH3MtTs7oU77ADAIADlMrC7Y5/4ThDZ8REIghzUAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABGBJREFUaEPtmktME1EUhv+uFXCnCYIKAvWxsEWjG0XRECP4ihoFHzFiixIXEqNxQyllY5CKC+ODYmJUoPiIDzAxREF0IYq0mgiiJBrB546HrjFnzE1aOtO5M3OnIDJJ00XvPXO+8585994ztWCSXRYAqwG0TQauuXNTuySgA4WOtsu1Nf80U8eLTjgdzjdTQBNVximFeJVpedSKQCCIvg/v0db6GJ8+fYyYun3HTiQmJmKJzY7sNVlITprNa15xnFCF+ge+wOerRd31a8hcukz62O02WDPSZZ2lm/e+/4DXwQDu37srjd+VX4BtWzfpBhMCFAriPFSMgvyduqJ9+859+BvqMTQ4iKLDxbrADANduVoHj9sFAjlc5EBCQrzu6LKJlK5VlZVISk5GWZlLU3B0Aw0NDaPMXY6e7m54KiqwYvkywyChBsj+hUs+1Fw8j4s1PuSsy+ayrwuIbnbQ4UR8fDzOeKuEqKLkLaXh8WMlOO2t5kpBzUAMxmq1osLj5oqa0UHdPe+wMS+PC0ozUOFBJ+Li4nC22mvUT03zCWrxooV43vEyanprAjp3/hLan7Sh1ldjapqppV8wGFS8PzcQi9Db7h4sWrhAU3RFDj5ackwyp5Qh3ECUajZ7Jo4UF4n0T7MteoZtNhvqG/yyqccFRIMK8nchmtSaPTMwgVI/GOiC3FGHC4hknp+WPu7qsBgwlZqamyPSXxWItjVzkpMwODg0LoVASchTlV78/jUSsXSoAtHWhjaPsS7TahlJRarkaAlaWh6GDVUFonRbuSqLa5VWc0L07ykpqRibdqpAcpNEO6bXnlywVYEsFgtGR0f13tPUeVTt6ApdSqIC0Y9erxc3b/hNdUyvcTpmNPr9YeVbFcjn88nWe71OiJxHzo/1bwpIZISN2tKskFKtN+qIqPl0+Hv2tD1sjfy/qhxFMidnvSk9AxEq0QlgQ25e2KKvqlCpy43U+WnYv2+3CB+E2qBF/0l7e1hXSBWI9com2lrEWl2a93K0VZ8xIwGf+wc09ceESiFjjDJn2vQ4nDzx9wTLLlWFaKDSZLOdVrIfLchcQHQmWp2VNaFOrD9/fJdto3EBMZXoO1a9OCV12IFT6RHgBmIqKTUnYpV+VKrT0jMinh1NzxAbzNqy49UsoWN316vOqH1BboUYFBWI3t7emDcbWTDlGiOaq9zYdIo1FC8M+alZobFKud1lpnZS6VR6pqoyoneg9MzqBiKDlNP0/sbl9gjfGlERKi/3YKC/H9Vnq7mDZgiISewqLZXetjkcDsMvvmjRvFbXIKmi562gYSCCCnViTfbaiB0wT0knReobGiXFyYbe4AgBYg4T2J17TXjQ3CSV102bt0gt5KWZdmnIAmuG1H2lg+PIyC98/fYdfX190lj67N6zF7m5uYZUFgoUqgRFvPNVQHKY/qswPDyMWzcbpSHz5qVIKtCLMwYs6h2taUA8aWbGmCkgM6Iq0ubkVmiy/KNx5sxZL/4AQuKJ2eg1SwAAAAAASUVORK5CYII=" mediaID="Square_cst_O"/></media></snapdata>