<snapdata remixID="11769849"><project name="U3L3-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="U3L3-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="reportListIsEmpty"><block s="reportCDR"><block var="words"/></block></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="doFor"><l>column</l><l>1</l><l>3</l><script><custom-block s="make row"></custom-block><block s="changeYPosition"><l>-50</l></block><block s="changeXPosition"><l>-150</l></block></script></block></script></block-definition><block-definition s="make row" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>rows</l><l>1</l><l>3</l><script><block s="doChangeVar"><l>position number</l><l>1</l></block><block s="doAddToList"><block var="position number"/><block var="board"/></block><block s="show"></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block><block s="hide"></block></script></block></script></block-definition><block-definition s="make column" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>columns</l><l>1</l><l>3</l><script><block s="show"></block><block s="createClone"><l><option>myself</option></l></block><block s="changeYPosition"><l>50</l></block><block s="hide"></block></script></block></script></block-definition><block-definition s="is %&apos;number a&apos; divisible by %&apos;number b&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportGreaterThan"><block s="reportModulus"><block var="number a"/><block var="number b"/></block><l>0</l></block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block></script></block-definition><block-definition s="even? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="is %n divisible by %n ?"><block var="number"/><l>2</l></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="%&apos;number a&apos; ≤ %&apos;number b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportNot"><block s="reportGreaterThan"><block var="number a"/><block var="number b"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="%&apos;number a&apos; ≥ %&apos;number b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportNot"><block s="reportLessThan"><block var="number a"/><block var="number b"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="%&apos;number a&apos; ≠ %&apos;number b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportNot"><block s="reportEquals"><block var="number a"/><block var="number b"/></block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="is %&apos;b&apos; between %&apos;a&apos; and %&apos;c&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportAnd"><custom-block s="%n ≤ %n"><block var="a"/><block var="b"/></custom-block><custom-block s="%n ≤ %n"><block var="b"/><block var="c"/></custom-block></block><block s="reportBoolean"><l><bool>true</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></script></block-definition><block-definition s="odd? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="is %n divisible by %n ?"><block var="number"/><l>2</l></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block></script></block-definition><block-definition s="number of divisors %&apos;number divided&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><custom-block s="divisors of %n"><block var="number divided"/></custom-block></block></block></script></block-definition><block-definition s="divisors of %&apos;number&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="is %n divisible by %n ?"><block var="number"/><l></l></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="number"/></block></block></block></script></block-definition><block-definition s="maximum of %&apos;number a&apos; and %&apos;number b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="%n ≤ %n"><block var="number a"/><block var="number b"/></custom-block><block var="number b"/><block var="number a"/></block></block></script></block-definition><block-definition s="minimum of %&apos;number a&apos; and %&apos;number b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="%n ≤ %n"><block var="number a"/><block var="number b"/></custom-block><block var="number a"/><block var="number b"/></block></block></script></block-definition><block-definition s="maximum of list %&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="reportCombine"><block s="reportAnd"><block s="reportListItem"><l>1</l><block var="list"/></block><block s="reportCDR"><block var="list"/></block></block><block s="reifyReporter"><autolambda><custom-block s="maximum of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="minimum of list %&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="reportCombine"><block s="reportAnd"><block s="reportListItem"><l>1</l><block var="list"/></block><block s="reportCDR"><block var="list"/></block></block><block s="reifyReporter"><autolambda><custom-block s="minimum of %n and %n"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="sum of list %&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="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="average of list %&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="reportQuotient"><block s="reportCombine"><block var="list"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="list"/></block></block></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>3</l><l>5</l><l>7</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</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="status of all winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="status of triple %l"><custom-block s="possible winning triples"></custom-block></custom-block></block></script></block-definition><block-definition s="won?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportOr"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><l>x</l><l>x</l><l>x</l></list></block></block><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><l>o</l><l>o</l><l>o</l></list></block></block></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="501"><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="502"></list></costumes><sounds><list struct="atomic" id="503"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="0" y="-150" heading="0" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="508"><costumes><list id="509"><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="510"></list></sounds><blocks></blocks><variables><variable name="position number"><l>9</l></variable></variables><scripts><script x="42.26666666666665" y="10"><block s="doWearNextCostume"></block></script><script x="10" y="52.999999999999886"><block s="receiveGo"><comment w="80" collapsed="false">Connect this to the script below it in For You To Do 5.</comment></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>position number</l><block s="reportNewList"><list></list></block></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>0</l><l>0</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><comment w="90" collapsed="true">X plays first.</comment></block></block><block s="doSetVar"><l>win?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script x="60.26666666666665" y="274"><block s="receiveInteraction"><l><option>clicked</option></l></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="doReplaceInList"><block var="position number"/><block var="board"/><l>x</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></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="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doIfElse"><block s="reportOr"><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><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>o</l><l>o</l><l>o</l></list></block></block></block><script><block s="doSetVar"><l>win?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doSetVar"><l>win?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script x="627.9082682291667" y="105.16666666666666"><block var="X&apos;s turn?"/></script><script x="349.26666666666654" y="189.66666666666652"><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="55.999999999999886" y="686.1666666666669"><block s="reportIfElse"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><l>x</l><l>x</l><l>x</l></list></block></block><l>x wins</l><block s="reportIfElse"><block s="reportListContainsItem"><custom-block s="status of all winning triples"></custom-block><block s="reportNewList"><list><l>o</l><l>o</l><l>o</l></list></block></block><l>o wins</l><l>tie</l></block></block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="4.999999999999886" y="5.000000000000007" color="243,118,29" hidden="true"/><watcher scope="Square" var="position number" style="normal" x="1.0000000000013642" y="111.00000200000017" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="22.92546583850981" y="34.925465838509325" color="243,118,29" extX="80" extY="70"/><watcher var="win?" style="normal" x="22.000000000000227" y="7" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="685">o,x,x,4,o,x,7,8,o</list></variable><variable name="win?"><bool>false</bool></variable></variables></scene></scenes></project><media name="U3L3-TicTacToe" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmrENgmAUBh9TYEfBIs6i4lAEZ6GVGAs3MjFxgK+5wJ+jv3y8O0q6auzpqupcVWsLdw3D+P4ddLlO62OZD33Tc3vVdLt/PGivGS201zL/97KQhWADfnKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAYsBAuP5ywUK4MBC8HC4zkLxcpgwEKw8HjOQrEyGLAQLDyes1CsDAbaLtTKH419f9q+t56dV83eYNkAAAAASUVORK5CYII=" mediaID="Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAgVJREFUaEPt2rtOAkEUBuBDpTRgTdRQ8gRIaUUMoIk3RAQlEWm9FpYG7IzxKSyoLC3VTmPUxkvrLVFLLOhMzJJgREHOnDlnZxeh22Qv882/O+HPrgcAgvH4xKbP19MLLv9Vqx/XHgAYDocjh9mFnKtBb68vcHV58VADJZPpg3J5v8/NAZ2encN2qdgFOTbE/5nQ49MzDA70OyqVVmNCJbSYL0AgEIBSccsRqJvbOxhNJGBndw8mx8caxoQCVSrvkF8qQCgUMo6qY+Yy2aZjQYGsKXACqh3GGicaZBqFwSiDTKGwGBLIbpQKhgyyC6WK0QJJoygYbZAUiophAXGjdDBsIC6ULoYVpIviwLCDqCgujAhIFcWJEQNhUdwYUVA7lARGHNQKJYWxBfQTlUrN1MpZqz7T0NYIG0r1gXD+r0OsPpXJzsPJ8REsr6yKFUXbQNZtFo/FwOv1wtR00t2g78/MxvqaaJ0XT6jZAiBZ50VBf61mUigxEGZplkCJgDCY+vLHjWIHqWAkUKwgCoYbxQbSwXCiWEAcGC6UNogTw4HSAklgdFFkkCRGB0UC2YGhopRBdmIoKCWQCYwqCg0yiVFBoUBOwGBRKFA0OgJDkYhYy1St9vU/tKnZNO2lsRNf61sov9/3ay5QCanOoMn9uyCTs4+5dmcn1GkfAAYBIIeJ1QX73H8CynJ8DoPjGXcAAAAASUVORK5CYII=" mediaID="Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAABGBJREFUaEPtmktME1EUhv+uFXCnCQIRBOpjYYtGN4qiIUbwFTUKPmKUghIXEKNxQyllY5ACC+ODYmJUoPiIDzAxREV04QNpNRFESDSCzx0PXWPOmJu0dKZzZ+ZOQWSSpovee+Z85z9z7r1nasE0uywA1gLomA5cSUkp3RLQocOOjksN9f8004uXXXAUFL6dAZqqMs4oxKtM+8PH8PsDGOj/gI7Hj/Dp08ewqTt37UZ8fDyW2ezIWpeJxIT5vOYVxwlVaHDoC7zeBjReu4qM5Sukj91ugzU9TdZZunnfh368Cfhx7+4dafyevHzs2L5FN5gQoGCQwiPFyM/brSvat27fg6+5CSPDwyg6WqwLzDDQ5SuNcLucIJCjRQ7ExcXqji6bSOlaXVWFhMRElJc7NQVHN9DIyCjKXRXo7emBu7ISq1auMAwSbIDsn7/oRf2Fc7hQ70X2hiwu+7qA6GYFjkLExsaixlMtRBUlbykNTxwvxRlPLVcKagZiMFarFZVuF1fUjA7q6X2Pzbm5XFCagQ4XFCImJgZ1tR6jfmqaT1BLlyzG8xevIqa3JqCz5y6i80kHGrz1pqaZWvoFAgHF+3MDsQi96+nFksWLNEVX5OCS0uOSOaUM4QaiVLPZM3CsuEikf5pt0TNss9nQ1OyTTT0uIBqUn7cHkaTW7JmBCZT6AX835I46XEAk88LUtElXh8WAqdTa1haW/qpAtK1JSkzA8PDIpBQCJSFPV3nw+9dY2NKhCkRbG9o8RrtMq2UkFanSklK0tz8IGaoKROm2ek0m1yqt5oTo35OTUzAx7VSB5CaJdkyvPblgqwJZLBaMj4/rvaep86ja0RW8lEQEoh89Hg9uXPeZ6phe43TMaPH5Qsq3KpDX65Wt93qdEDmPnJ/o3wyQyAgbtaVZIaVab9QRUfPp8PfsaWfIGvl/VTmKZHb2RlN6BiJUohPAppzckEVfVaEypwspC1Nx8MBeET4ItUGL/pPOzpCukCoQ65VNtbWItbo07+Voqz5nThw+Dw5p6o8JlULGGGXOrNkxOHXy7wmWXaoK0UClyWY7rWQ/UpC5gOhMtDYzc0qdWH/++C7bRuMCYirRd7R6cUrqsAOn0iPADcRUUmpORCv9qFSnpqWHPTuaniE2mLVlJ6tZQsfu7tddEfuC3AoxKCoQfX19UW82smDKNUY0V7mJ6RRtKF4Y8lOzQhOVcrnKTe2k0qm0proqrHeg9MzqBiKDlNP0/sbpcgvfGlERqqhwY2hwELV1tdxBMwTEJHaWlUlv2xwOh+EXX7RoXm1sllTR81bQMBBBBTuxLmt92A6Yp6STIk3NLZLiZENvcIQAMYcJ7PbdVtxva5XK65at26QW8vIMuzRkkTVd6r7SwXFs7Be+fvuOgYEBaSx99u7bj5ycHEMqCwUKVoIi3vXaLzlM/1UYHR3FzRst0pAFC5IlFejFGQMW9Y7WNCCeNDNjzAyQGVEVaXN6KzRd/tE4d+68l38AHzaJdYJvYYIAAAAASUVORK5CYII=" mediaID="Square_cst_O"/></media></snapdata>