<snapdata remixID="10363453"><project name="U5L6tictactoe" 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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</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="Empt" center-x="29" center-y="28" image="data:," id="10"/></item><item><costume name="X" center-x="29" center-y="29" image="data:," id="11"/></item><item><costume name="O" center-x="28" center-y="28" image="data:," 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="13.999999000000003" y="10"><block s="receiveGo"></block><block s="clear"></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="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="12.66666566666666" y="364.6666666666665"><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><custom-block s="move in this square"></custom-block><block s="doBroadcast"><block s="reportListItem"><l><option>any</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block></block></block></script></block></script><script x="14.333332333333317" y="312.33333333333303"><custom-block s="won? %s"><l></l></custom-block></script><script x="14.999999000000003" y="164.3333333333335"><custom-block s="possible winning triples"></custom-block></script><script x="20.333332333333317" y="338.33333333333303"><custom-block s="tied?"></custom-block></script><script x="16" y="187.3333333333335"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></block></script><script x="21.66666566666666" y="220.00000000000003"><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block></script><script x="17" y="250.66666666666654"><block s="reportEquals"><custom-block s="status of triple %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="16.333332333333317" y="286"><custom-block s="status of all winning triples"></custom-block></script><script x="335" y="320.66666666666674"><custom-block s="best empty sqaure"></custom-block></script><script x="13" y="537"><block s="receiveMessage"><l><option>any message</option></l></block><block s="doIf"><block s="reportEquals"><block s="getLastMessage"></block><block var="position number"/></block><script><custom-block s="move in this square"></custom-block></script></block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="10" y="298.500002" color="243,118,29"/><watcher var="playing" style="normal" x="10" y="325.499996" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="10" y="177.999998" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="0" y="27" color="243,118,29" extX="80" extY="70"/><watcher scope="Stage" s="getLastMessage" style="normal" x="10" y="338.999998" color="230,168,34"/><watcher var="X&apos;s turn?" style="normal" x="10" y="335.999998" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><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"><block s="errorObsolete"></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="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="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empt</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l></block><block s="setScale"><l>95</l></block><block s="doSetVar"><l>position number</l><l>1</l></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></block></script></custom-block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="possible winning triples" 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="status of triple %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="triple"/></block></block></script></block-definition><block-definition s="status of all winning triples" 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="status of triple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possible winning triples"></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="status of all winning triples"></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="move in this square" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><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></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X won!</l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O won!</l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block><block s="doIf"><block s="reportAnd"><block var="playing"/><custom-block s="tied?"></custom-block></block><script><block s="bubble"><l>It&apos;s a tie.</l></block></script></block></script></block-definition><block-definition s="best empty sqaure" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block s="reportListItem"><block s="reportNewList"><list><l>5</l><l>1</l><l>3</l><l>7</l><l>9</l><l>2</l><l>4</l><l>6</l><l>8</l></list></block><block var="board"/></block></block></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="536">1,2,3,4,5,6,7,8,9</list></variable><variable name="playing"><bool>true</bool></variable><variable name="win lines"><list id="537"><item><list id="538"><item><list struct="atomic" id="539">-100,50</list></item><item><list struct="atomic" id="540">100,50</list></item></list></item><item><list id="541"><item><list struct="atomic" id="542">-100,0</list></item><item><list struct="atomic" id="543">100,0</list></item></list></item><item><list id="544"><item><list struct="atomic" id="545">-100,-50</list></item><item><list struct="atomic" id="546">100,-50</list></item></list></item><item><list id="547"><item><list struct="atomic" id="548">-50,100</list></item><item><list struct="atomic" id="549">-50,-100</list></item></list></item><item><list id="550"><item><list struct="atomic" id="551">0,100</list></item><item><list struct="atomic" id="552">0,-100</list></item></list></item><item><list id="553"><item><list struct="atomic" id="554">50,100</list></item><item><list struct="atomic" id="555">50,-100</list></item></list></item><item><list id="556"><item><list struct="atomic" id="557">-100,100</list></item><item><list struct="atomic" id="558">100,-100</list></item></list></item><item><list id="559"><item><list struct="atomic" id="560">-100,-100</list></item><item><list struct="atomic" id="561">100,100</list></item></list></item></list></variable></variables></project><media name="U5L6tictactoe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>