<snapdata remixID="11658541"><project name="huddleston_TicTacToe" 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="huddleston_TicTacToe"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><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>Empty</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><block s="show"></block><block s="doRepeat"><l>3</l><script><block s="doRepeat"><l>3</l><script><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block><block s="doChangeVar"><l>position number</l><l>1</l></block></script></block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></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>5</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>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block></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="won %&apos;letter&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doForEach"><l>item</l><custom-block s="possible winning triples"></custom-block><script><block s="doDeclareVariables"><list><l>josh</l></list></block><block s="doSetVar"><l>josh</l><custom-block s="status of triple %l"><block var="item"/></custom-block></block><block s="doIf"><block s="reportAnd"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="josh"/></block><block s="reportListItem"><l>2</l><block var="josh"/></block></block><block s="reportEquals"><block s="reportListItem"><l>2</l><block var="josh"/></block><block s="reportListItem"><l>3</l><block var="josh"/></block></block></block><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="josh"/></block><block var="letter"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></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="doIf"><block var="someone won"/><script><block s="doReport"><l></l></block></script></block><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doWait"><l>1</l></block><block s="doIf"><custom-block s="won %txt"><l>X</l></custom-block><script><block s="doSayFor"><l>X Won</l><l>2</l></block><block s="doSetVar"><l>someone won</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doStopThis"><l><option>all</option></l></block></script></block><block s="doIfElse"><block s="reportEquals"><block var="randomized or strategic CPU?"/><l>1</l></block><script><block s="doBroadcastAndWait"><custom-block s="random empty square"></custom-block><list></list></block></script><script><block s="doBroadcastAndWait"><custom-block s="next move for computer"></custom-block><list></list></block></script></block></script><script><block s="doIf"><block s="reportEquals"><block s="reportBoolean"><l><bool>false</bool></l></block><block var="X&apos;s turn?"/></block><script><block s="doSwitchToCostume"><l>O</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won %txt"><l>O</l></custom-block><script><block s="doSayFor"><l>O Won</l><l>2</l></block><block s="doSetVar"><l>someone won</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doStopThis"><l><option>all</option></l></block></script><comment w="90" collapsed="false">This line onwards simply detects if any side has won yet.</comment></block></script></block></script></block><block s="doForEach"><l>item</l><block var="board"/><script><block s="doIf"><block s="reportIsA"><block var="item"/><l><option>number</option></l></block><script><block s="doReport"><l>BOb</l></block></script></block></script></block><block s="doSayFor"><l>Its a tie!</l><l>2</l></block><block s="doSetVar"><l>someone won</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doStopThis"><l><option>all</option></l></block></script><scripts><script x="248.00000000000006" y="111.30000000000015"><block s="doBroadcastAndWait"><block s="reportOr"><custom-block s="winning square for player %s"><l></l></custom-block><custom-block s="best empty square"></custom-block></block><list></list></block></script></scripts></block-definition><block-definition s="pick random from %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block><block var="list"/></block></block></script></block-definition><block-definition s="best empty square" 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"><block s="reportListItem"><l></l><block var="board"/></block><l><option>number</option></l></block></autolambda><list></list></block><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></block></script></block-definition><block-definition s="how many %&apos;a&apos; in %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><block var="a"/></block></autolambda><list></list></block><block var="list"/></block></block></block></script></block-definition><block-definition s="winning triple for player %&apos;player&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportAnd"><block s="reportGreaterThan"><custom-block s="how many %s in %l"><block var="player"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><l/></block></custom-block><l>1</l></block><block s="reportEquals"><custom-block s="how many %s in %l"><block s="reportIfElse"><block s="reportEquals"><block var="player"/><l>O</l></block><l>X</l><l>O</l></block><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><l/></block></custom-block><l>0</l></block></block></autolambda><list></list></block><custom-block s="possible winning triples"></custom-block></block></block></script></block-definition><block-definition s="winning square for player %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>winning triple</l></list></block><block s="doSetVar"><l>winning triple</l><custom-block s="winning triple for player %s"><block var="player"/></custom-block></block><block s="doIf"><block s="reportEquals"><block s="reportIsA"><block var="winning triple"/><l><option>list</option></l></block><block s="reportBoolean"><l><bool>true</bool></l></block></block><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="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="winning triple"/></block></block></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="random empty square" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><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-definition><block-definition s="can player %&apos;player&apos; win now?" type="predicate" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportIsA"><custom-block s="winning square for player %s"><block var="player"/></custom-block><l><option>number</option></l></block></block></script></block-definition><block-definition s="next move for computer" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><custom-block s="can player %s win now?"><l>O</l></custom-block><script><block s="doReport"><custom-block s="winning square for player %s"><l>O</l></custom-block></block></script><script><block s="doIfElse"><custom-block s="can player %s win now?"><l>X</l></custom-block><script><block s="doReport"><custom-block s="winning square for player %s"><l>X</l></custom-block></block></script><script><block s="doReport"><custom-block s="best empty square"></custom-block></block></script></block></script></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="611"><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="612"></list></costumes><sounds><list struct="atomic" id="613"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="-50" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="618"><costumes><list id="619"><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="620"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="381.5999999999999" y="10"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><custom-block s="move in this square"></custom-block></script></block></script><script x="10" y="54.166666666666686"><block s="receiveGo"></block><block s="doSetVar"><l>position number</l><l>1</l></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>someone won</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>randomized or strategic CPU?</l><l>2</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></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="7.204947916666242" y="22.335339982656265" color="243,118,29" hidden="true"/><watcher var="someone won" style="normal" x="7.895833333333599" y="7.895833333333329" color="243,118,29" hidden="true"/><watcher var="X&apos;s turn?" style="normal" x="9.129557291666742" y="2.812890625000012" color="243,118,29" hidden="true"/><watcher var="randomized or strategic CPU?" style="slider" min="1" max="2" x="-0.7166666666663559" y="0.4749999999999943" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="-0.002317708332498114" y="35.05026041666679" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="665">X,2,3,O,O,O,X,X,9</list></variable><variable name="someone won"><bool>true</bool></variable><variable name="randomized or strategic CPU?"><l>2</l></variable></variables></scene></scenes></project><media name="huddleston_TicTacToe" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMhJREFUaEPtmrENgmAUBh97YEfBGMxCrNSNDLPQaSgs3MiEhAG+5oJ/jv7y8e4o6aqxp6uqqarWFu4ahvGzHzTP13VZnn990+u91eN++3rQWTNa6KxljveykIVgA35ysPB4zkKxMhiwECw8nrNQrAwGLAQLj+csFCuDAQvBwuM5C8XKYMBCsPB4zkKxMhiwECw8nrNQrAwGLAQLj+csFCuDAQvBwuM5C8XKYMBCsPB4zkKxMhiwECw8nrNQrAwG2i7Uyh+NfX/ZfgG3n8ERdSX+AAAAAElFTkSuQmCC" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgJJREFUaEPt2r9OwlAUBvDDZAcSWSVR2XgCGYiDG3EgQpEWjVESguiqDq5GIPE5nJgcfQIhTpCIu+iiTrgxmpJgRKmce+85vS3C1qR/7u9+7Q1f2hAAxNJp8zwcXjAg4L/BINQNAcBGMrl+a+/sBhr0/vYKnXa7NwRZ1t5No3EdCXJAzdY91Gu1Oci3If7PhHrPL7C6suyrVNzGhEqoVCrDUjQK1csLX6Aeuo+wnTOhWr+CfC4zNiYUqN//gPJhBeLxuHbUCJO3ChPHggI5U+AH1DSMM040SDcKgxEG6UJhMVIgr1EiGGmQVyhRjBKIGyWDUQZxoWQxJCBqlAqGDESFUsWQglRRFBhykCyKCsMCEkVRYthAWBQ1hhU0DcWBYQe5obgwnoB+omzbGpYztz4z1tYkNoTqg8T5vw5x+tT+QRFazTuoHB2zFUXPQM5tZmazYBgGbGWywQZ9f2bOTk9Y6zx7QpMWAM46zwr6azXjQrGBMEszB4oFhMGMlj9qFDlIBMOBIgXJYKhRZCAVDCWKBESBoUIpgygxFCglEAdGFSUN4sSooKRAXmBkUcIgLzEyKCGQDowoCg3SiRFBoUB+wGBRKFAqtQlriQRbyxSt9qM/tJZdkHtp7MfX+g4qEln8NReohERnUOf+c5DO2cdce7YTmrUPAGMAUMTEGoB9nj4BddN7SIy6Ns8AAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABGRJREFUaEPtmllMU0EUhv++qii8krpEEHDFViPRoCGuiC9GRYnGDQpuRI1LUIJQkLhEKu4b4K4BUWNMlEUSIuICBiouUUpMBHF9EQR9xZybTNLae3vnLi0V6UsfOnPu+c5/7pmZMzWgj30MAGIAVPcFrtDQiAYBKDHRUl1UVPBPMz15WofUTRub+oH8VcZ+hXiVKa+sQmOjHe9bHKitrYHD4XCbuiR+GYKDgxE50YRZM2MwfNhQXvOS43RVqLXtIwoKClF6oxgTIk0wmSfBbDZhdES4qLP08HfNDjS9sKO87J4wZ+myBMQvXqgaTBcgZ5DVay1YsTxBVbRLb93BjZJi/OzshCVlnSowzUDnL17Bwf25IJCN61MQGDhEdXTZRErXfJsNRqMRmVmZioKjGqijoxNZ1my8e/sWWVYrpk2N0gzibIDsnzpzDpcuFOLo8ZOInTuby74qIHpYcso6DA4IgM2Wp4sqUt5SGmakpyF330GuFFQMxGDCw8ORuzebK2paB716/QZLFi/iglIMlJSUjEEBATh65LBWPxXNJ6gJ48fh8ZNnHtNbEdCxE6fxqOYhCs6d9WqayaVfXV295PO5gViEXr56jfHjxiqKrp6Dt2zdJpiTyhBuIEq1SJMZm1M36OmfYlv0DkdFTcGFi5dFU48LiAatXbMKnqRW7JmGCZT6TfZGiB11uIBI5pDQUb2uDosBU+nmrdtu6S8LRNuaEcOH4cePjl4pBFJC7jtwCL9/dbstHbJAtLWhzaOvy7RcRlKR2rF9ByoqylyGygJRukVPn8G1Sss5offvtLj/nXayQGKT9HZMrT2xYMsCGQwG9PT0qH2mV+dRtaOP81LiEYh+zM/PFw5s/vihY0ZpSYlL+ZYFKiosFK33/gBIzv/tXz+QPyjDfFCskFSt9xcoOvzVPqpxWSP/rypHSsybN98rPQM9VKYTQGzcApdFX1ahjD1ZGBkSisQ1K/XwQVcbtOhXPqhy6QrJArFemb+tRazVpXgvR1v1oKBAfGhtU9Qf01UKEWOUOQMGDkL6rp3KNqc0Wmqyt52Wsu8pyLIpR0bpTDR3zmy/OrF+//ZVtI3GBcRUom9f9eKk1GEHTqlXgBuIqSTVnPBV+lGpDhkV5vbuOO8euK8kWVu2t5oldOy2NzZ47AtyK8QiQAWiubnZ581GFkyxxohzdigGYu+TL6F4Ycg3VUDOUJmZe7zaSaVT6cnjR9x6B1LvrGogMkg5Tfc3abszdN8aURHKyc5Be3s78mx53EHTBMQkzrZahdu2JItF88UXLZqXr14XVFFzK6gZiKCcnYiOnuG2A+Yp6aTItevFguJkQ21wdAFiDhPY7Tt3UXb/Hl422RE7f4HQQp48ySwMGTM6Qui+0sGxq6sbnz5/QUtLi1CKaXz80gTExcVpUllXIGclKOL1zxsEh+m/Cj+7unCztEQYEhYWJqhAF2cMWK87Wq8B8aSZN8b0A3kjqnra7NsK9ZV/NBqNQ+v+AGLci9/+oT9VAAAAAElFTkSuQmCC" mediaID="Square_cst_O"/></media></snapdata>