<snapdata remixID="11769867"><project name="U3L3-Tic-Tac-Toe" 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="U3L3-Tic-Tac-Toe"><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="doSetVar"><l>position number</l><l>0</l></block><block s="doFor"><l>rows</l><l>1</l><l>3</l><script><block s="doFor"><l>columns</l><l>1</l><l>3</l><script><block s="doChangeVar"><l>position number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></block></script></block-definition><block-definition s="x and o" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="X&apos;s turn?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportObject"><l><option>myself</option></l></block></block><l>Empty</l></block><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><comment w="90" collapsed="true">X plays first.</comment></block></block></script></block></script><script><block s="doIf"><block s="reportEquals"><block var="X&apos;s turn?"/><block s="reportBoolean"><l><bool>false</bool></l></block></block><script><block s="doIf"><block s="reportEquals"><block s="reportAttributeOf"><l><option>costume name</option></l><block s="reportObject"><l><option>myself</option></l></block></block><l>Empty</l></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><comment w="90" collapsed="true">X plays first.</comment></block></block></script></block></script></block></script></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>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>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;winning triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><l>1</l><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 s="reportListItem"><l>2</l><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><block s="reportEquals"><block s="reportListItem"><l>2</l><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 s="reportListItem"><l>3</l><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></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="doDeclareVariables"><list><l>massive list</l></list></block><block s="doSetVar"><l>massive list</l><block s="reportNewList"><list></list></block></block><block s="doForEach"><l>item</l><custom-block s="possible winning triples"></custom-block><script><block s="doAddToList"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block var="item"/></block><block var="massive list"/></block></script></block><block s="doReport"><block var="massive list"/></block></script></block-definition><block-definition s="won? %&apos;letter&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>opposite letter</l><l>blankCHECK</l><l>BlankFINAL</l></list></block><block s="doIfElse"><block s="reportEquals"><block var="letter"/><l>X</l></block><script><block s="doSetVar"><l>opposite letter</l><l>O</l></block></script><script><block s="doSetVar"><l>opposite letter</l><l>X</l></block></script></block><block s="doForEach"><l>item</l><custom-block s="status of all winning triples"></custom-block><script><block s="doSetVar"><l>blankCHECK</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>BlankFINAL</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doFor"><l>i</l><l>1</l><l>9</l><script><block s="doSetVar"><l>blankCHECK</l><block s="reportListContainsItem"><block var="item"/><block var="i"/></block></block><block s="doIf"><block s="reportEquals"><block var="blankCHECK"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><script><block s="doSetVar"><l>BlankFINAL</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportListContainsItem"><block var="item"/><block var="letter"/></block><block s="reportAnd"><block s="reportNot"><block s="reportListContainsItem"><block var="item"/><block var="opposite letter"/></block></block><block s="reportNot"><block var="BlankFINAL"/></block></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></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="431"><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="432"></list></costumes><sounds><list struct="atomic" id="433"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="438"><costumes><list id="439"><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="440"></list></sounds><blocks></blocks><variables><variable name="position number"><l>9</l></variable></variables><scripts><script x="10" y="10"><block s="doWearNextCostume"></block></script><script x="28" y="375.8333333333335"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doSetVar"><l>turns</l><block s="reportVariadicSum"><list><block var="turns"/><l>1</l></list></block></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><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="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="doSayFor"><l>Player X has won!</l><l>2</l></block></script><list></list></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script><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? %s"><l>O</l></custom-block><script><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="doSayFor"><l>Player O has won!</l><l>2</l></block></script><list></list></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="turns"/><l>9</l></block><script><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="doSayFor"><l>The game has ended in a tie!</l><l>2</l></block></script><list></list></block><list></list></block></script></block></script><script x="32" y="45"><block s="receiveGo"></block><block s="removeClone"></block></script><script x="28.399999999999977" y="128.3333333333334"><block s="receiveGo"><comment w="156.66666666666666" collapsed="false">Connect this to the script below it in For You To Do 5.</comment></block><block s="doSetVar"><l>turns</l><l>0</l></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l><l>4</l><l>5</l><l>6</l><l>7</l><l>8</l><l>9</l></list></block></block><block s="doWait"><l>0.1</l></block><block s="show"></block><block s="doSwitchToCostume"><l>Empty</l></block><custom-block s="makeBoard"></custom-block><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l><comment w="90" collapsed="true">X plays first.</comment></block></block></script><script x="289" y="414.66666666666663"><custom-block s="status of triple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>5</l></list></block></custom-block></script></scripts></sprite><sprite name="Sprite" idx="2" x="-10000" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="12.24000000000001,0,153,1" pen="tip" id="597"><costumes><list struct="atomic" id="598"></list></costumes><sounds><list struct="atomic" id="599"></list></sounds><blocks></blocks><variables></variables><scripts><script x="77" y="171.00000000000003"><block s="gotoXY"><l>-10000</l><l>-100</l></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="1.7999999999999545" y="1.8000000000000043" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="3.6000000000001364" y="3.6000000000000014" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="position number" style="normal" x="4.645161290322676" y="4.645161290322591" color="243,118,29" hidden="true"/><watcher var="turns" style="normal" x="3.7999999999999545" y="101.59999999999997" color="243,118,29"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="611">1,2,3,4,5,6,7,8,9</list></variable><variable name="turns"><l>0</l></variable></variables></scene></scenes></project><media name="U3L3-Tic-Tac-Toe" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmsENglAQBZcm8EhiJdYi/qaM1sIVYjjYkYmJBbzLBH+G++SxMxwZqrNnqKpLVS093DVN5/170HVuy/Nx/+ub1u1V7dbeHnTUjBY6apnfe1nIQrABPzlYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgN9F+rlj8ZxPG0fpgqdIlzL6G8AAAAASUVORK5CYII=" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgVJREFUaEPt2jtPwlAUB/DDpB0QZ6KGkS9AYHQiBtCEqAgKBCOy+hwcTRmN8VuYMDk6qpvG4ORj9ZWoIy4sDqYkNaIg5957Tm+LsDXp4/7uv73hn9YHAKFkMr3j9w8Ng8d/zebHtQ8AJiOR6HGxtOxp0NvrC1zV6w8tUCaTO6rVDke9HND5xSVUTXMAcm2I/zOhx6dnmBgfc1Uq3caESmilXIFgMAhVc9cVqJvbO5hOpWBv/wBm0zNtY0KBGo13KK9WIBwOa0fZmKV8oeNYUCBrCtyA6oWxxokG6UZhMMIgXSgsRgrkNEoEIw1yCiWKUQJxo2QwyiAulCyGBESNUsGQgahQqhhSkCqKAkMOkkVRYVhAoihKDBsIi6LGsIJ6oTgw7KBuKC6MI6CfqGx2oVXOuvWZtrYmsSFUHyTO/3WI1afyhSKcnZ7A2voGW1F0DGTdZslEAgzDgLn5jLdB35+Z7a1N1jrPnlCnBYCzzrOC/lrNuFBsIMzSzIFiAWEw9vJHjSIHiWA4UKQgGQw1igykgqFEkYAoMFQoZRAlhgKlBOLAqKKkQZwYFZQUyAmMLEoY5CRGBiUE0oERRaFBOjEiKBTIDRgsCgWKx6cgGouxtUzRam//oc3mFuVeGrvxtb6FCgRGfs0FKiHRGdS5/wCkc/Yx1+7vhPrtA8AQAJQwsXpgn/tPUFR7qLbGkSAAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABF9JREFUaEPtmktME1EUhv+uFXClCwQCCtTHwhaNbhRFQ4zgK2oUfMQoBSUuJETjhlLKxiAVF8YHxcSoQPERH2BiiILoQhRpNRFESSSCzx0PXWPOmJu0dKZzZ+ZOQWSSpovee+Z85z9z7r1nasE0uywA1gJonw5cSUkp3RLQocOO9it1tf80U+fLLjgKHG9ngKaqjDMK8SrT+rgNfn8A/R8/oL3tCQYGPoVN3blrN+Lj47HMZkfWukwkJsznNa84TqhCg0Nf4PXWof7GdWQsXyF97HYbrOlpss7Szfs+fMSbgB8P7t+Txu/Jy8eO7Vt0gwkBCgYpPFKM/LzduqJ95+4D+BobMDI8jKKjxbrADANdvVYPt8sJAjla5EBcXKzu6LKJlK7VVVVISExEeblTU3B0A42MjKLcVYHenh64KyuxauUKwyDBBsj+xcte1F66gEu1XmRvyOKyrwuIblbgKERsbCzOeqqFqKLkLaXhidISnPHUcKWgZiAGY7VaUel2cUXN6KCe3vfYnJvLBaUZ6HBBIWJiYnCuxmPUT03zCWrpksV40fkqYnprAjp/4TI6nrajzltrapqppV8gEFC8PzcQi9C7nl4sWbxIU3RFDj5eUiqZU8oQbiBKNZs9A8eKi0T6p9kWPcM2mw0NjT7Z1OMCokH5eXsQSWrNnhmYQKkf8HdD7qjDBUQyL0xNm3R1WAyYSs0tLWHprwpE25qkxAQMD49MSiFQEvJ0lQe/f42FLR2qQLS1oc1jtMu0WkZSkSo5XoLW1kchQ1WBKN1Wr8nkWqXVnBD9e0rKAkxMO1UguUmiHdNrTy7YqkAWiwXj4+N672nqPKp2dAUvJRGB6EePx4NbN32mOqbXOB0zmny+kPKtCuT1emXrvV4nRM4j5yf6NwMkMsJGbWlWSKnWG3VE1Hw6/D1/1hGyRv5fVY4imZ290ZSegQiV6ASwKSc3ZNFXVajM6cKChak4eGCvCB+E2qBF/2lHR0hXSBWI9cqm2lrEWl2a93K0VZ8zJw6fB4c09ceESiFjjDJn1uwYnDr59wTLLlWFaKDSZLOdVrIfKchcQHQmWpuZOaVOrD9/fJdto3EBMZXoO1q9OCV12IFT6RHgBmIqKTUnopV+VKpT09LDnh1NzxAbzNqyk9UsoWN39+uuiH1BboUYFBWIvr6+qDcbWTDlGiOaq9zEdIo2FC8M+alZoYlKuVzlpnZS6VR6troqrHeg9MzqBiKDlNP0/sbpcgvfGlERqqhwY2hwEDXnariDZgiISewsK5PetjkcDsMvvmjRvF7fKKmi562gYSCCCnZiXdb6sB0wT0knRRoamyTFyYbe4AgBYg4T2N37zXjY0iyV1y1bt0kt5OUZdmnIImu61H2lg+PY2C98/fYd/f390lj67N23Hzk5OYZUFgoUrARFvOu1X3KY/qswOjqK27eapCHJySmSCvTijAGLekdrGhBPmpkxZgbIjKiKtDm9FZou/2icO3feyz8NoolAOmg4eQAAAABJRU5ErkJggg==" mediaID="Square_cst_O"/></media></snapdata>