<snapdata remixID="11056738"><project name="U3L1-Tic-Tac-Toe" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAA89JREFUeF7t1r9rU2EUh/GTNqQ/AqFSimjTH5BMOji5dnISF2dHoav/gKP/goOCq6uLODl1cVbUKSlpMUKoBZuSxl68XLmhDcSmhUDgyzl9OufmvO9zPty0kGVZZvxRQFSgAEBRecYOCgAQCNICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZzgAMSAtAEBpfoYDEAPSAgCU5mc4ADEgLQBAaX6GAxAD0gIAlOZnOAAxIC0AQGl+hgMQA9ICAJTmZ7hrgOVm03q12mCLhUbDsnp9oo1+Pj21e3NzEz2Tf/hdr2ePy+WJn+OBiwVcA8yvU2w07P78vH2qVsfu93+Yt1st+7q2ZtsHB/Y7Te3j6uoQ8N1Syb4lyRBy/ux2pWKvu90R3Dv9vm0tLOBpCgXcA/ySJPbq6MherqyMzZED/VuvD9+Qb7pde1qpDD77oN0eAXj+Bv1wcmIPFxet2mrZj83NC9/7PUnsTqk0hfx8hXuA+VvqVrFoP8dAydf7/PDQni0t2a80tfLMjK0Xi8OtXwbwfa9nj85+Yt8eH9uTTmfkDdhJU7s5O4ueKRRwDbC2t2fNjY0r/wf8k2V2Y3fX+rWabbXbtnP2k3vVG/AcYI73xfKyrbdatn8J8Cns4Fp/hWuA13pzQS4PwCCL9HoNAHrdXJBzAzDIIr1eA4BeNxfk3AAMskiv1wCg180FOTcAgyzS6zUA6HVzQc4NwCCL9HoNAHrdXJBzAzDIIr1eA4BeNxfk3AAMskiv1wCg180FOTcAgyzS6zUA6HVzQc4NwCCL9HoNAHrdXJBzAzDIIr1eA4BeNxfk3AAMskiv1wCg180FOTcAgyzS6zUA6HVzQc4NwCCL9HoNAHrdXJBz/wNdlV+3HdmLdgAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="U3L1-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="show"></block><block s="createClone"><l><option>myself</option></l></block><block s="doSetVar"><l>position</l><l>1</l></block><block s="doRepeat"><l>2</l><script><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="forward"><l>50</l></block></script></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="changeYPosition"><l>-50</l></block><block s="doRepeat"><l>2</l><script><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="forward"><l>-50</l></block></script></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="changeYPosition"><l>-50</l></block><block s="doRepeat"><l>2</l><script><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="forward"><l>50</l></block></script></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position</l><l>1</l></block><block s="hide"></block></script></block-definition><block-definition s="possible_wins" 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_wins"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;player&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><block s="reportNewList"><list><block var="player"/><block var="player"/><block var="player"/></list></block></block></autolambda><list></list></block><custom-block s="status of all winning triples"></custom-block></block></block><l>0</l></block></block></script></block-definition><block-definition s="Win or Tie" type="command" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><custom-block s="won? %s"><l>x</l></custom-block><script><block s="doTellTo"><l>Sprite(3)</l><block s="reifyScript"><script><block s="write"><l>X wins!</l><l>24</l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIfElse"><custom-block s="won? %s"><l>o</l></custom-block><script><block s="doTellTo"><l>Sprite(3)</l><block s="reifyScript"><script><block s="write"><l>O wins!</l><l>24</l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="board"/><l>e</l></block></block><script><block s="doTellTo"><l>Sprite(3)</l><block s="reifyScript"><script><block s="write"><l>Tie!</l><l>24</l></block></script><list></list></block><list></list></block><block s="doSetVar"><l>playing?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block></script></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="reportListItem"><l>1</l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l>e</l><block s="reportListItem"><l></l><block var="board"/></block></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>4</l><l>6</l><l>8</l><l>2</l></list></block></block></block></block></script></block-definition><block-definition s="winning move" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>item</l><custom-block s="possible_wins"></custom-block><script><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>O</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>e</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>1</l></block></block><script><block s="doForEach"><l>position</l><block var="item"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="position"/><block var="board"/></block><l>e</l></block><script><block s="doReport"><block var="position"/></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportAnd"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>X</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportEquals"><l></l><l>e</l></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>1</l></block></block><script><block s="doForEach"><l>position</l><block var="item"/><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><block var="position"/><block var="board"/></block><l>e</l></block><script><block s="doReport"><block var="position"/></block></script></block></script></block></script><script></script></block></script></block></script></block><block s="doReport"><custom-block s="best empty square"></custom-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="518"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAFyBJREFUeF7t3X2sZHdZB/DvubvtSotGG03aWm23O2eWpotKqVohiiVaNVJFglEqQQ0mJkqwKolGVJRA1OD7CyKKGnxBoxYVMChgVQoGXyrFprb3TFmhpYBGmgZLuunde8y59+6bu9vtdu/uc3+7n/mnTe7MPM98nif57jlzZqaLGwECBAgQIHDGBbozXlFBAgQIECBAIALYEhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAABAWwHCBAgQIBAgYAALkBXkgABAgQICGA7QIAAAQIECgQEcAG6kgQIECBAQADbAQIECBAgUCAggAvQlSRAgAABAgLYDhAgQIAAgQIBAVyAriQBAgQIEBDAdoAAAQIECBQICOACdCUJECBAgIAAtgMECBAgQKBAQAAXoCtJgAABAgQEsB0gQIAAAQIFAgK4AF1JAgQIECAggO0AAQIECBAoEBDABehKEiBAgAAB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</pentrails><costumes><list struct="atomic" id="519"></list></costumes><sounds><list struct="atomic" id="520"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="15" y="-20" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="525"><costumes><list id="526"><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="527"></list></sounds><blocks></blocks><variables><variable name="position"><l>10</l></variable></variables><scripts><script x="10" y="14.16666666666643"><block s="receiveGo"></block><block s="doSetVar"><l>playing?</l><block s="reportBoolean"><l><bool>true</bool></l></block></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="reportNewList"><list><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l><l>e</l></list></block></block><block s="gotoXY"><l>-85</l><l>80</l></block><block s="doSwitchToCostume"><l>Empty</l></block><custom-block s="makeBoard"></custom-block></script><script x="370.2113281249992" y="10"><block s="receiveMessage"><l><option>any message</option></l><list></list></block><block s="doWait"><l>1</l></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="reportEquals"><block var="position"/><block s="getLastMessage"></block></block></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"/><block var="board"/><l>O</l></block><custom-block s="Win or Tie"></custom-block></script></block></script><script x="14.600000000000023" y="452.16666666666623"><block s="receiveGo"></block><block s="removeClone"></block></script><script x="430.59999999999934" y="434.50000000000074"><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="reportEquals"><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block><l>empty</l></block></block><script><block s="doIf"><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"/><block var="board"/><l>X</l></block></script></block><custom-block s="Win or Tie"></custom-block><block s="doBroadcast"><custom-block s="winning move"></custom-block><list></list></block></script><comment w="90" collapsed="false">p vs ai</comment></block></script><script x="99.599999999999" y="222.50000000000057"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="reportEquals"><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block><l>empty</l></block></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"/><block var="board"/><l>X</l></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"/><block var="board"/><l>O</l></block></script></block><custom-block s="Win or Tie"></custom-block></script><comment w="90" collapsed="false">pvp</comment></block></script></scripts></sprite><sprite name="Sprite(3)" idx="2" x="-2" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,219.29999999999998,219.29999999999998,1" pen="tip" id="687"><costumes><list struct="atomic" id="688"></list></costumes><sounds><list struct="atomic" id="689"></list></sounds><blocks></blocks><variables></variables><scripts><script x="197" y="107"><block s="receiveGo"></block><block s="clear"></block><block s="hide"></block><block s="gotoXY"><l>-100</l><l>-100</l></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="5" y="5" color="243,118,29" hidden="true"/><watcher scope="Square" s="xPosition" style="normal" x="10" y="10" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="10" y="31.000001999999995" color="74,108,212" hidden="true"/><watcher var="board" style="normal" x="10" y="52.000003999999976" color="243,118,29" hidden="true"/><watcher scope="Square" var="position" style="normal" x="10" y="145.00000599999996" color="243,118,29" hidden="true"/><watcher var="playing?" style="normal" x="10" y="166.00000799999995" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="706">e,O,X,e,X,O,X,e,e</list></variable><variable name="playing?"><bool>false</bool></variable></variables></scene></scenes></project><media name="U3L1-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>