<snapdata remixID="14940246"><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,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAADS0lEQVR4AezSy43cMBRE0cbkn4HzchBOwp+FFl7oM6IoFvnOAIMGWi2y6tb9+u0PgXEEfnx9/CEwkAABB8J39edDQBYMJUDAofhdTkAODCVQV8Ch2F2+ESDgRsLnEAIEHILdpRsBAm4kfA4hQMAh2F26ESDgRsLnEAIEHIJ96KVRlxMwao56YQhYb/OoxgSMmqNeGALW2zyqMQGj5qgXhoD1No9q/KqAUc2FiSBAwIgZ6oYgYN3tI5oTMGKGuiEIWHf7iOYEjJihbggCvrK9S/YIEHCPjO9fIUDAVzC7ZI8AAffI+P4VAgR8BbNL9ggQcI+M718hQMBXMNe95Kw5Ac8Ied6VAAG74nX4GQECnhHyvCsBAnbF6/AzAgQ8I+R5VwIE7IrX4WcE1hXwrLnnEQQIGDFD3RAErLt9RHMCRsxQNwQB624f0ZyAETPUDUHA9bafqhEBp5prvbAEXG/TqRoRcKq51gtLwPU2naoRAaeaa72wBFxv06kaPSrgVM2FjSBAwIgZ6oYgYN3tI5oTMGKGuiEIWHf7iOYEjJihbggCPrK9Q+4SIOBdct57hAABH8HokLsECHiXnPceIUDARzA65C4BAt4l571HCBDwEYx1D2ltTsBWgt5vIkDAJnxebiVAwFaC3m8iQMAmfF5uJUDAVoLebyJAwCZ8Xm4lMK+Arc29H0GAgBEz1A1BwLrbRzQnYMQMdUMQsO72Ec0JGDFD3RAEnG/7pRITcKk55ytDwPk2WyoxAZeac74yBJxvs6USE3CpOecrQ8D5Nlsq8bcEXKq5MhEECBgxQ90QBKy7fURzAkbMUDcEAetuH9GcgBEz1A1BwEvb+1EvAgTsRda5lwgQ8BImP+pFgIC9yDr3EgECXsLkR70IELAXWedeIkDAS5jq/qh3cwL2Juz8QwIEPMTjYW8CBOxN2PmHBAh4iMfD3gQI2Juw8w8JEPAQj4e9CeQK2Lu58yMIEDBihrohCFh3+4jmBIyYoW4IAtbdPqI5ASNmqBuCgHnbl0pEwFJz55UlYN4mpRIRsNTceWUJmLdJqUQELDV3XlkC5m1SKtF/ApZqrmwEAQJGzFA3BAHrbh/RnIARM9QN8U/An3/r+/98MHifwa8/AAAA//++59AYAAAABklEQVQDAOKJBA6nJCrRAAAAAElFTkSuQmCC</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><custom-block s="for %upvar = %n to %n %cs"><l>column</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></custom-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><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><l>x</l></list></block><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><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="%&apos;_&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="_"/></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="_"/></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="_"/></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="draw?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportListContainsItem"><block var="board"/><l>empty</l></block></block><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><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><block-definition s="set %&apos;#1&apos; to %&apos;#2&apos;" type="command" category="variables" selector="doSetVar" primitive="doSetVar"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true" irreplaceable="true"><options>§_getVarNamesDict</options></input><input type="%s">0</input></inputs><script><block s="doPrimitive"><l><bool>true</bool></l><l>doSetVar</l></block></script></block-definition></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="801"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="802"></list></costumes><sounds><list struct="atomic" id="803"></list></sounds><variables></variables><blocks></blocks><scripts><script x="118" y="74.73333333333335"><block s="receiveMessage"><l>o win</l><list></list><comment w="90" collapsed="false">this comment is depdent on the _ wins block as it waits until o win is true and it braodcasts the message and says o win.&#xD;-A,E</comment></block><block s="doSayFor"><l> O Wins</l><l>2</l></block></script><script x="30" y="210.73333333333335"><block s="receiveMessage"><l>draw</l><list></list><comment w="90" collapsed="false">this code makes it when draw is true that receives the message from the square sprite and then the stage says it was a draw. &#xD;-A.E</comment></block><block s="doSayFor"><l>draw</l><l>2</l></block></script><script x="377" y="112.73333333333335"><block s="receiveMessage"><l>x win</l><list></list><comment w="90" collapsed="false">this code waits for the message from the square sprite and once it is receive it says a message back saying that x has won.&#xD;-A.E</comment></block><block s="doSayFor"><l>x wins</l><l>2</l></block></script></scripts><sprites select="1"><sprite name="Square" idx="1" x="1000.0000000000002" y="1000" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="829"><costumes><list id="830"><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="831"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>9</l></variable></variables><scripts><script x="23" y="10"><block s="receiveGo"><comment w="90" collapsed="true">this code makes it so that when the green flag is pressed my x and o variable is set to true and my board is set to an empty list with nine blocks so that when players choose to fill blocks they can occupy the spots in the list. Then I set the clone numbers to 0 so when clones are being made the varible can track the number of total clones. The winning triples is set to a list of various lists so each time the code can check the list and see if the player has won the game. Then I set winner to false because when green flag is clicked it just starts the game and then I move the orginal sprite out of the screena and create the board&#xD;-A.E</comment></block><block s="doSetVar"><l>x</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>o</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>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>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block></list></block></block><block s="doSetVar"><l>winner</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>draw</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><custom-block s="make Tic Tac Toe Board"><comment w="90" collapsed="false">this code uses the make one row and puts it in a loop so that it will go through the loop 3 times to make the three by three row of blocks.&#xD;-A.E</comment></custom-block></script><script x="494" y="13.533333333333303"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="getCostumeIdx"></block><l>1</l></list></block><block s="reportVariadicEquals"><list><block var="winner"/><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list><comment w="90" collapsed="true">this first loop has paraemters checking the costume number and the checking to make sure no one has one the game to then check if x is able to go. If x is set to true then x can places its symbol on the tik tac toe board swapping the costume and setting x&apos;s turn to false and then the empty sport on the board list was filled with an x in the spot chosen by the user.&#xD;-A.E</comment></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="x"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><script><block s="doSwitchToCostume"><l>X</l></block><block s="doSetVar"><l>x</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>x</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="x"/><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</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list><comment w="90" collapsed="true">in this code I focus on the epic challenge making a computer player which is a loop with paremeters checking if the its not x&apos;s turn and ensuring the board has an empty spot for the symbol to be placed into. The code repeats with the item of the board equaling empty and then slecting a random position. Then the empty space is replaced in the list with the o  and its x&apos;s turn again&#xD;-A.E</comment></block><block s="doIf"><custom-block s="%s wins?"><l>x</l></custom-block><script><block s="doBroadcast"><l>x win</l><list></list></block><block s="doSetVar"><l>winner</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list><custom-block s="%s wins?"><l>o</l><comment w="90" collapsed="true">this code uses the loop which checks the triples of the list winning triples and then if the first item the clone is in one of the winning triples and the second is the second number of the winning triples and the third clone is part of the winning triples triple then it will report true and otherwise it would be false.&#xD;-A.E</comment></custom-block><script><block s="doBroadcast"><l>o win</l><list></list></block><block s="doSetVar"><l>winner</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><custom-block s="draw?"></custom-block><script><block s="doBroadcast"><l>draw</l><list></list></block><block s="doSetVar"><l>draw</l><block s="reportBoolean"><l><bool>true</bool></l><comment w="90" collapsed="false">in this code it chekcs if the board has no more empty spots left and that neither of the players have won before it reports draw and then broadcasts the message to the stage so the message can appear for players&#xD;-A.E</comment></block></block></script></list><comment w="90" collapsed="true">in this part of the code it is constantly checking the blocks in the list to see if any winning triples are present if winning triple is present for x then it will prodcast x has won which sends a message to the stage&#xD;-A.E</comment></block></script><list></list></block></script><script x="10" y="468.73333333333346"><block s="receiveOnClone"><comment w="90" collapsed="false">this code makes it so that when the clones are being made it. checks that if the item of the clone in the board list is equal to o and then swaps costumes&#xD;-A.E</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></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="9.999999999998625" y="10" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="9.999999999998625" y="31.00000199999995" color="74,108,212" hidden="true"/><watcher scope="Square" var="clone number" style="normal" x="15.286624203820914" y="15.286624203821647" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="13.25423728813458" y="46.152548372881334" color="243,118,29" hidden="true"/><watcher var="winning triples" style="normal" x="9.999999999998625" y="10" color="243,118,29" hidden="true"/><watcher var="winner" style="normal" x="9.347027804136589" y="9.34702780413687" color="243,118,29" hidden="true"/><watcher var="draw" style="normal" x="9.999999999999556" y="10" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="board"><list struct="atomic" id="1105">x,x,x,o,o,Empty,o,o,x</list></variable><variable name="winning triples"><list id="1106"><item><list struct="atomic" id="1107">1,2,3</list></item><item><list struct="atomic" id="1108">1,4,7</list></item><item><list struct="atomic" id="1109">1,5,9</list></item><item><list struct="atomic" id="1110">2,5,8</list></item><item><list struct="atomic" id="1111">3,6,9</list></item><item><list struct="atomic" id="1112">3,5,7</list></item><item><list struct="atomic" id="1113">7,8,9</list></item><item><list struct="atomic" id="1114">4,5,6</list></item></list></variable><variable name="winner"><bool>true</bool></variable><variable name="draw"><bool>false</bool></variable><variable name="o"><l>4</l></variable><variable name="x"><bool>true</bool></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,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAA30lEQVR4AeySwQ3CQBADN4jv9RBRBIIftYCoCkE7IEQhpAN+R0IF9mdNLo6yP6+cnckqGnumgw7jTbWF6fvNazoojqdz1FpnPffHM0op699Bo51mXh/07yptyIaSCfiXSwZO19kQjSx5wYaSgdN1NkQjS16woWTgdJ3UEP21wIIPAiBJIzYkxQ+U2xAASRqxISl+oNyGAEjSiA1J8QPlNgRAkkZsSIofKLchAJI0slxDUuxEuQ0RsCRRG5JgJ0ptiIAlidqQBDtRakMELEm0TUO36yW6rpv17HfbGIb35wsAAP//YCtmxAAAAAZJREFUAwBGS82CCTBFoQAAAABJRU5ErkJggg==" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACZ0lEQVR4AezZy0ojQRQG4MOsZjU+QGaGIczMMzgMQ2YfIwRdKF6yVLyAglvFVjeCuhLxEsEXEEHpd4i4iYqaVRBv+AjqSv+GBhFS3VV1TnW3uDghIV2n/i9Vi1T3JyL6USqV13t6eneyXuVy91QAur+/q/z9V8h0/fz1u/L09DgGEOXz+YexkSHKchWLxZfNRhSAgnfv5OUDlPaFVK7Q1fVN6vJHZVKCPG+OpmdmU4M6O7+g/4UC7e7tt8ykBK0sL1Gj0UgFCphSRwf19Q9QV7nTDNTW9oWqW5uJo15j5ufUO0a5QvgZkkbpYJA3EoSLkkLpYpA1FggXukaZYJAzNggXu0KZYpBRC4QB0igbDPJpgzBICmWLQTYjEAZyozgwyGUMwmAuFBcGmaxAaGCL4sQgjzUITUxR3BhkYQGhkS5KAoMcbCA0i4uSwiADKwgNo1CSGMzPDkLTVihpDOYWAaHxW5QLDOYVA6F5iKrX6/SnvT04nEWdZzDOpkRBCHZze0unJ8eUy+XwUbxEQeE2GxisUK1Wc3LyFQOFGNwDwDYLt5/0PQoR0FtMuM9coNhBrTCuUKygKIwLFBsoLkYaxQLSxUiirEGmGCmUFcgWI4EyBnFhuFFGIG4MJ0obJIXhQsUGYUJpDOZA2fyjiA1yhQEIZYqKBXKNAQhlgooEJYUBCKWLUoKSxgCE0kEpQZMTk06OzQgdVa9Rxg+Nq9tVwuEsajJX34co44fG3799dZU19jxAqS5WbjnVwLR+9wFK68qEuYIVajabn1fXNijL5ft+YALo8ujocHF8dNjLci3Me57vH8w+AwAA//+k3GjbAAAABklEQVQDAJg3Rha9RQziAAAAAElFTkSuQmCC" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_X"/><costume name="O" center-x="26" center-y="25" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAAzCAYAAADYfStTAAAFPElEQVR4AeyaW1ATVxjH/+n0rQn4ytB2HEqQti8NSqUPLQwDtNNB7UVrkNrpVILUtlMllOlDLYl2pjcDdtpSJdVxVCCKV8QHbyj4IF7ji3fFGbygjwLO+Bb3v7oOmnOyu2Rx44XJIdmz53zn+33nO2dPvi8vACgCEHsaysSJWccIhK/m+RCLxZ7ocqjvCFwu14sqkDI7T83rOVCqT6XlM7R7bzd++yOEeVXVyMp6DQ6HI67M+syLhYv8WLO2FQNXrlpqI0uAqNTinwMqQLilRVVwtteLAz09wo3G7/fjLU8eTkZPoKiwEATcvLVT7Zfsv6SANBAq9ZLTpQJ0bIzgx3o/ykqK8eorLwv1K5iajy+/qMTyphD6+y/BWzEHkfY2lJV9gGTBxgxEd9FAotGoCiEDEFKNqvz04+mgIerq67Hyv2bVXWmsUU0MfzQNdOvWEOj/bevXoa393mykp6cZHjBRQ85qR8dGuHMmqa7I9ZioveieKSDCVPmqMTw8DA5M1xEJTaaOxqHL/hlqQk21z7QLGgbSYHJzc7Hq/xZw4GQU1+tLN9zR1YUf/ItMQRkGqvXXITMzE0uXBPR0sez+m2+8DkLN/GQG+g4fNSTXENA/zSsxNDSEYKDBkFArGxFq05btmFPhBb1ET7Yu0KnTZ/DdNzUIKDDj7WYyZel+02d8hIZAUNbkQb0uUGNjE/7+dwVoqQe9bPhA7+jcvk3X9RIC0W/3d+/D3MoKGxAeHpLeUVtXj3A4/PCNR64SAkUiEVAIhT3Sz5ZLGpYG5jKQKSAF4pP6r+WNKTE7mvI0bHXNAkQiG7SquHcpUPf+Hny/sHZcnzdx2hiomFb+IQ739UlbSoF4En73vUJpR7tucHO6ePECZG4nBeKOkjvJbZfeCcflFn723AVhGynQ5cv9tm/VQo2Vymx3DgYHB5VP8S8hELfrmbNmx7dOkZqcHDeiJ44LtRECsWVamjVfCSjL6pLmcklFSoGkPVL8xrMB5HI5cWVgIGXn4tr1QUZJhfoJZ4h7/Z49u4QdUqGSOxx3OpEuQiA2LC19X/dky3Z2FO5wGRkZwqGlQFMLCnD23HlhJ7sreUDNn5InVEMKxEDgzq4dwk52VjISlJ3thixkJgUqKS7Cpo4NlodqkzXGwd5eFJeUSsVIgXhU/2lxgxJ7kx/VpVLH6QZjCr8sDSrxBfkpRgpEnXy+KrSsaDYUnGD78S7rWttBI8vcjeMnBGLHys/nYlmokW1tLfzCyWANjZxIkYRA7EgBrUrYlwdWXttVgsEl+PX3ZdLNQNNLF4izxLCs0biYJtjKd+abGBf8er5PV6wuECUwLkbXq1Li2lyYrHtchekVrmOjcUFDQFSeIWDGtR8nFGEY22Y4mMcx6qFXDANR0Ggo2Xd6trOiMPxsFobjmgJiB0JNnpKPaeXlao6UdVYW7mbMz3Zu26oG6o3OjKaDaSB2ZP6GyS4mvTi4FTsg1yZnhVlBJryYfzILQ93GBMSOTHZxUE/eZOXJ7QXB6PO8Z6ZwRriLeTweNU5AQ9FgPKmYkaO1HTMQBXDQbxfMB3OsjOEx8ctUPlOWtDZnjoXWh/LHdcdrghOC2W/OyO2RYeWIFVETaTSU0nTMr6SAtFEJxqw2E79M5RNuZGREDayHQiFMmJCu/laB647B9oO9PXA6nfAr6X1mwbkukwXRdLEESBPGdz6I+dyi2zB1ScjY/R9GUXnWMZ3PmbUKguNqxXIgTbBd78+B7LK80XHVGVq9KqwuWocj/odGDseTUfdOwdu4efPGnbsAAAD//5jKWB4AAAAGSURBVAMAzLCtnkO5uCcAAAAASUVORK5CYII=" mediaID="U3L1-Tic-Tac-Toe Setup_Square_cst_O"/></media></snapdata>