<snapdata remixID="10154702"><project name="U3L3-TicTacToe- 2/10/2021 7:19pm" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><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" scheduled="false" id="1"><pentrails>data:image/png;base64,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</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Square" idx="1" x="50" y="-50" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,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" id="10"/></item><item><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,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" id="11"/></item><item><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,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" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="10" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"><comment w="90" collapsed="false">The tic Tac Toe board is made by a clone</comment></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="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="10" y="168.90534979423856"><custom-block s="possibleWinning"></custom-block></script><script x="10" y="192.679012345679"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></list></custom-block></script><script x="10" y="229.68724279835422"><custom-block s="statusOfTriple %l"><l/></custom-block></script><script x="10" y="253.56378600823078"><block s="reportEquals"><custom-block s="statusOfTriple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block></script><script x="10" y="288.82304526748965"><custom-block s="statusOfAllWinningTriples"></custom-block></script><script x="10" y="312.59670781893044"><custom-block s="won? %s"><l></l></custom-block></script><script x="10" y="339.85596707818956"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportAnd"><block var="playing"/><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l><comment w="90" collapsed="true">3.3.1.5</comment></block><block s="doIf"><custom-block s="won? %s"><l>X</l><comment w="80" collapsed="true">3.3.2.9</comment></custom-block><script><block s="doBroadcast"><l>X won</l></block><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l><comment w="90" collapsed="true">3.3.3.5</comment></block></block></script><comment w="261" collapsed="true">This part stops the game from continuing after X has won</comment></block></script><script><block s="doSwitchToCostume"><l>O</l><comment w="558.6787109374998" collapsed="false">This shows that is C&apos;s turn to go and when you press a spot on the board thats where C will be placed. </comment></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l><comment w="90" collapsed="true">3.3.1.5</comment></block><block s="doIf"><custom-block s="won? %s"><l>O</l><comment w="90" collapsed="true">3.3.2.9</comment></custom-block><script><block s="doBroadcast"><l>O won</l></block><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l><comment w="90" collapsed="true">3.3.3.5</comment></block></block></script><comment w="268" collapsed="true">This part stops the game from continuing after C has won</comment></block></script><comment w="558.6787109374998" collapsed="true">This shows that is X&apos;s turn to go and when you press a spot on the board thats where X will be placed. </comment></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block></script><comment w="90" collapsed="true">3.3.3.5</comment></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="-50" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,32,0,1" pen="tip" id="148"><costumes><list struct="atomic" id="149"></list></costumes><sounds><list struct="atomic" id="150"></list></sounds><blocks></blocks><variables></variables><scripts><script x="27" y="23.66666666666667"><block s="receiveGo"></block><block s="clear"></block><block s="hide"></block><block s="setSize"><l>5</l></block><block s="setColor"><color>255,32,0,1</color></block></script><script x="432" y="213.66666666666666"><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script></script></block></script><script x="277.83333333333337" y="160.33333333333323"><block var="win lines"/></script><script x="68" y="225.9999999999998"><block s="receiveMessage"><l>X won</l></block><custom-block s="draw win line"></custom-block></script><script x="73" y="307.9999999999998"><block s="receiveMessage"><l>O won</l></block><custom-block s="draw win line"></custom-block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="8.704803240740489" y="259.8383784770718" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="8.704803240740489" y="283.3413420041899" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="8.704803240740489" y="287.2585052034839" color="243,118,29" hidden="true"/><watcher scope="Square" s="xPosition" style="normal" x="11.97222222222183" y="11.972222222222221" color="74,108,212"/><watcher scope="Square" s="yPosition" style="normal" x="11.97222222222183" y="37.11389128333332" color="74,108,212"/><watcher var="board" style="normal" x="-2.3520428240752835" y="122.00442708333327" color="243,118,29" extX="80" extY="70"/><watcher scope="Sprite" s="yPosition" style="normal" x="11.97222222222183" y="62.25556034444449" color="74,108,212"/><watcher scope="Sprite" s="xPosition" style="normal" x="11.97222222222183" y="87.39722940555558" color="74,108,212"/></sprites></stage><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="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>95</l><comment w="190" collapsed="true">Oops costumes are a bit too big.</comment></block><block s="doSetVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportSum"><l>-100</l><block s="reportProduct"><l>50</l><block var="j"/></block></block><block s="reportDifference"><l>100</l><block s="reportProduct"><l>50</l><block var="i"/></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block></script></custom-block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="possibleWinning" 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>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><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="statusOfTriple %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="triple"/></list></custom-block></block></script></block-definition><block-definition s="statusOfAllWinningTriples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="statusOfTriple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possibleWinning"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="statusOfAllWinningTriples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></block></block></script></block-definition><block-definition s="draw win line" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="statusOfAllWinningTriples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="statusOfAllWinningTriples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></block></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win lines"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/><comment w="137.33333333333334" collapsed="false">This is why each line in WIN LINES is a list of points, each of which is a list of x,y coordinates:  It allows us to use the endpoints, as points, in the GO TO block.</comment></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script></block></script></block></script><scripts><comment x="173.99999999999997" y="6.666666666666667" w="244" collapsed="false">I&apos;m kind of bummed that I didn&apos;t find a beautiful one-line solution using FIND FIRST, but it just gives the value it finds, not the position in the list, which is what we need to find the line endpoints in WIN LINES. So it&apos;s a plain old fashioned FOR loop.</comment></scripts></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="994">O,X,X,X,X,O,O,O,X</list></variable><variable name="playing"><bool>true</bool></variable><variable name="win lines"><list id="995"><item><list id="996"><item><list struct="atomic" id="997">-100,50</list></item><item><list struct="atomic" id="998">100,50</list></item></list></item><item><list id="999"><item><list struct="atomic" id="1000">-100,0</list></item><item><list struct="atomic" id="1001">100,0</list></item></list></item><item><list id="1002"><item><list struct="atomic" id="1003">-100,-50</list></item><item><list struct="atomic" id="1004">100,-50</list></item></list></item><item><list id="1005"><item><list struct="atomic" id="1006">-50,100</list></item><item><list struct="atomic" id="1007">-50,-100</list></item></list></item><item><list id="1008"><item><list struct="atomic" id="1009">0,100</list></item><item><list struct="atomic" id="1010">0,-100</list></item></list></item><item><list id="1011"><item><list struct="atomic" id="1012">50,100</list></item><item><list struct="atomic" id="1013">50,-100</list></item></list></item><item><list id="1014"><item><list struct="atomic" id="1015">-100,100</list></item><item><list struct="atomic" id="1016">100,-100</list></item></list></item><item><list id="1017"><item><list struct="atomic" id="1018">-100,-100</list></item><item><list struct="atomic" id="1019">100,100</list></item></list></item></list></variable></variables></project><media name="U3L3-TicTacToe- 2/10/2021 7:19pm" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>