<snapdata remixID="12402821"><project name="U5L6-TicTacToeWithComputer" 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="U5L6-TicTacToeWithComputer"><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="errorObsolete"></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="errorObsolete"></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>row</l><l>1</l><l>3</l><script><block s="doFor"><l>column</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="draw square" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="createClone"><l>Square</l></block></script></block-definition><block-definition s="possible winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="status of triple %&apos;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="errorObsolete"></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="errorObsolete"></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="errorObsolete"></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="errorObsolete"></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="283"><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="284"></list></costumes><sounds><list struct="atomic" id="285"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="-125" y="-150" heading="270" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="290"><costumes><list id="291"><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="292"></list></sounds><blocks><block-definition s="move in this square" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="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 Won! SIUUUUUU</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 Won! UUUUUUUIS</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-definition><block-definition s="find winning move" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="find next move" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>next_square</l><l>0</l></block><block s="doForEach"><l>triple</l><custom-block s="possible winning triples"><comment w="180" collapsed="false">Find winning move</comment></custom-block><script><block s="doSetVar"><l>countX</l><l>0</l></block><block s="doSetVar"><l>countO</l><l>0</l></block><block s="doForEach"><l>square</l><block var="triple"/><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>countX</l><block s="reportVariadicSum"><list><block var="countX"/><l>1</l></list></block></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>countO</l><block s="reportVariadicSum"><list><block var="countO"/><l>1</l></list></block></block></script></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doForEach"><l>square</l><block var="triple"/><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="square"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>next_square</l><block var="square"/></block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSayFor"><custom-block s="join words %mult%txt"><list><l>winning=</l><block var="next_square"/></list></custom-block><l>1</l></block><block s="doBroadcast"><block var="next_square"/><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block><block s="doForEach"><l>triple</l><custom-block s="possible winning triples"></custom-block><script><block s="doSetVar"><l>countX</l><l>0</l></block><block s="doSetVar"><l>countO</l><l>0</l></block><block s="doForEach"><l>square</l><block var="triple"/><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>countX</l><block s="reportVariadicSum"><list><block var="countX"/><l>1</l></list></block></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>countO</l><block s="reportVariadicSum"><list><block var="countO"/><l>1</l></list></block></block></script></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doForEach"><l>square</l><block var="triple"/><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="square"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>next_square</l><block var="square"/></block></script></block></script></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSayFor"><custom-block s="join words %mult%txt"><list><l>blocking=</l><block var="next_square"/></list></custom-block><l>1</l></block><block s="doBroadcast"><block var="next_square"/><list></list></block><block s="doSetVar"><l>busy</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script><comment w="180" collapsed="false">Find blocking move</comment></block><block s="doForEach"><l>square</l><block var="best_empty_squares"/><script><block s="doSetVar"><l>next_square</l><block s="reportListItem"><block var="square"/><block var="board"/></block></block><block s="doIf"><block s="reportNot"><block s="reportListContainsItem"><block var="costume_names"/><block s="reportListItem"><block var="square"/><block var="board"/></block></block></block><script><block s="doSayFor"><custom-block s="join words %mult%txt"><list><l>next best=</l><block var="next_square"/></list></custom-block><l>1</l></block><block s="doBroadcast"><block var="next_square"/><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script><comment w="90" collapsed="false">Next best move</comment></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSayFor"><l>It&apos;s a draw!</l><l>2</l></block></script></block></script></block-definition><block-definition s="next move 2" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>t</l><custom-block s="possible winning triples"></custom-block><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doForEach"><l>item</l><block var="t"/><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="item"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doBroadcast"><block s="reportListItem"><block var="item"/><block var="board"/></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script></block></script></block></script><comment w="90" collapsed="false">Winning move?</comment></block><block s="doForEach"><l>t</l><custom-block s="possible winning triples"></custom-block><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doForEach"><l>item</l><block var="t"/><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="item"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doBroadcast"><block s="reportListItem"><block var="item"/><block var="board"/></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script></block></script></block></script><comment w="90" collapsed="false">Blocking</comment></block><block s="doForEach"><l>item</l><block var="best_empty_squares"/><script><block s="doIf"><block s="reportIsA"><block s="reportListItem"><block var="item"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doBroadcast"><block s="reportListItem"><block var="item"/><block var="board"/></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block></script><comment w="168" collapsed="false">Best remainingchoice</comment></block></script><scripts><script x="266.96875" y="76.63333333333345"><block var="board"/></script></scripts></block-definition><block-definition s="how many %&apos;x&apos; in %&apos;list&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input><input type="%l"></input></inputs><script><block s="doSetVar"><l>count</l><l>0</l></block><block s="doForEach"><l>item</l><block var="list"/><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>count</l><block s="reportVariadicSum"><list><block var="count"/><l>1</l></list></block></block></script></block></script></block><block s="doReport"><block var="count"/></block></script></block-definition></blocks><variables><variable name="position number"><l>9</l></variable><variable name="next_square"><l>1</l></variable><variable name="countX"><l>1</l></variable><variable name="countO"><l>1</l></variable><variable name="count"><l>1</l></variable></variables><scripts><script x="572.9999999999998" y="21.333333333333485"><block s="clear"></block></script><script x="39.73333333333335" y="10"><block s="receiveGo"><comment w="156.66666666666666" collapsed="true">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="doSetVar"><l>best_empty_squares</l><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 s="doSetVar"><l>costume_names</l><block s="reportNewList"><list><l>X</l><l>O</l></list></block></block><block s="gotoXY"><l>-125</l><l>0</l></block><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><custom-block s="makeBoard"></custom-block><block s="hide"></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>busy</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script x="38" y="328.3333333333337"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block var="X&apos;s turn?"/><script><block s="doSetVar"><l>turns</l><block s="reportVariadicSum"><list><block var="turns"/><l>1</l></list></block></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="doSayFor"><l>Player X Won! SIUUUUUU</l><l>2</l></block></script><list></list></block><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSayFor"><l>It&apos;s a draw!</l><l>2</l></block><block s="doStopThis"><l><option>this script</option></l></block></script></block><custom-block s="next move 2" scope="local"></custom-block></script><script x="547" y="1166.666666666667"><block s="doSayFor"><block s="reportJoinWords"><list><block var="triple"/><l>, </l><block var="countO"/><l>, </l><block var="countX"/></list></block><l>0.1</l></block></script><script x="553.4000000000001" y="67.73333333333358"><block s="receiveMessage"><l><option>any message</option></l><list></list></block><block s="doIf"><block s="errorObsolete"></block><script><block s="doSetVar"><l>turns</l><block s="reportVariadicSum"><list><block var="turns"/><l>1</l></list></block></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="doTellTo"><l>Sprite</l><block s="reifyScript"><script><block s="doSayFor"><l>Player O Won! UUUUUUUIS</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><script x="388.9999999999998" y="14.33333333333394"><block s="doStopThis"><l><option>all</option></l></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="-210" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="0,26.928000000000026,168.3,1" pen="tip" id="897"><costumes><list struct="atomic" id="898"></list></costumes><sounds><list struct="atomic" id="899"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite><watcher var="board" style="normal" x="354" y="11.000001999999995" color="243,118,29" extX="80" extY="70"/><watcher var="turns" style="normal" x="356" y="113.00000599999998" color="243,118,29"/><watcher scope="Square" var="count" style="normal" x="10" y="10" color="243,118,29"/></sprites></stage><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="907">1,2,3,4,5,6,7,8,9</list></variable><variable name="turns"><l>0</l></variable><variable name="best_empty_squares"><list struct="atomic" id="908">5,1,3,7,9,2,4,6,8</list></variable><variable name="costume_names"><list struct="atomic" id="909">X,O</list></variable><variable name="busy"><bool>false</bool></variable></variables></scene></scenes></project><media name="U5L6-TicTacToeWithComputer" 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>