<snapdata remixID="14850124"><project name="U3L1-TicTacToe" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAEoklEQVR4AeyWTUtUURjHjy9kIAo6YZKkgm6CIGjXd2jZKtq16AO0aeGuvkRfoFXQrlWrPkAQRCsFHSTUtI1oCNp079AdZqy51+bcl/85z0+YuS/nnnOe5/f/ccfxDn8QaJDAuOMPAg0SQMAG4bO1cwiIBY0SQMBG8bM5AuJAowTsCtgodjbPCCBgRoJjIwQQsBHsbJoRQMCMBMdGCCBgI9jZNCOAgBkJjo0QQMBGsDe6qdTmCCgVh71iENBe5lIdI6BUHPaKQUB7mUt1jIBScdgrBgHtZS7Vca0CSnVOMRIEEFAiBrtFIKDd7CU6R0CJGOwWgYB2s5foHAElYrBbBALWkj2bDCOAgMPIcL8WAghYC2Y2GUYAAYeR4X4tBBCwFsxsMowAAg4jw/1aCCBgLZjtblLUOQIWEWK8UgIIWCleFi8igIBFhBivlAACVoqXxYsIIGARIcYrJYCAleJl8SIC8QpY1DnjEgQQUCIGu0UgoN3sJTpHQIkY7BaBgHazl+gcASVisFsEAsaXfVAdIWBQccVXLALGl2lQHSFgUHHFVywCxpdpUB0hYFBxxVcsAsaXaVAdlSpgUJ1TrAQBBJSIwW4RCGg3e4nOEVAiBrtFIKDd7CU6R0CJGOwWgYClZM8ioxJAwFHJMa8UAghYCkYWGZUAAo5KjnmlEEDAUjCyyKgEEHBUcswrhQACloLR7iK+nSOgL0HmexFAQC98TPYlgIC+BJnvRQABvfAx2ZcAAvoSZL4XAQT0wsdkXwLhCujbOfMlCCCgRAx2i0BAu9lLdI6AEjHYLQIB7WYv0TkCSsRgtwgEDC/7qCpGwKjiDK8ZBAwvs6gqRsCo4gyvGQQML7OoKkbAqOIMrxkEDC+zqCr+LwGj6pxmJAggoEQMdotAQLvZS3SOgBIx2C0CAe1mL9F50AJOb231II5tbvbOr3ry+ezsqo8OPPfu5GTgmovRCQQt4MnamptMxHuwu+s66+v/pHBZzFvb2+7HxYV7tLfnnh8e9uakz91tt116zG6m588ODtzY5qDcrfGgsWXtSRyDJ/lpedndn5oaCnPiz0gqU3r6cn7ezU9MuLeLi+nlwOdLslYq8vvT0+79pclJ93ph4S+5byTzuw/w5U0geAHvJW+tvJ/EF3Nz7nvyxvuayNU+P3dPZ2cLof3qdLrP7K6uujfHxwNvxXSghYAphlI+QQu4trPTfTt9S0TJ3nCXqWwkb7zl5Gf3zrVr7sn+/uXh3OuNoyP3eGbG3U7ehP0P3kTAfhxe50ELuLWy0ms+/ensXfSdXB8bcz+T/xXTWx+XltJD7/Oh77p//sPp6e4zr1qt7rGdCN494at0AkELWDoNFqydAALWjjysDauuFgGrJsz6uQQQMBcPg1UTQMCqCbN+LgEEzMXDYNUEELBqwqyfSwABc/EwWDUBXQGr7pz1JQggoEQMdotAQLvZS3SOgBIx2C0CAe1mL9E5AkrEYLcIBNTL3lRFCGgqbr1mEVAvE1MVIaCpuPWaRUC9TExVhICm4tZrFgH1MjFV0YCApjqnWQkCCCgRg90iENBu9hKdI6BEDHaLQEC72Ut0/hsAAP//yhfQVgAAAAZJREFUAwCld9uPgqJ+6QAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="U3L1-TicTacToe"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="errorObsolete"></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><block s="reportNewList"><list><block var="player"/><block var="player"/><block var="player"/></list></block></list></block></autolambda><list></list></block><custom-block s="status of all winning triples"></custom-block></block></block><l>0</l></list></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><list></list></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="reportVariadicEquals"><list><l>e</l><block s="reportListItem"><l></l><block var="board"/></block></list></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="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>O</l></list></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>e</l></list></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>1</l></list></block></list></block><script><block s="doForEach"><l>position</l><block var="item"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="position"/><block var="board"/></block><l>e</l></list></block><script><block s="doReport"><block var="position"/></block></script><list></list></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>X</l></list></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>2</l></list></block><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><l></l><l>e</l></list></block></autolambda><list></list></block><custom-block s="status of triple %l"><block var="item"/></custom-block></block></block><l>1</l></list></block></list></block><script><block s="doForEach"><l>position</l><block var="item"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="position"/><block var="board"/></block><l>e</l></list></block><script><block s="doReport"><block var="position"/></block></script><list></list></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><primitives></primitives><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="565"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAQAElEQVR4Aezcaawd51kH8Dm245aED6xpCFlw4uMsToVUAioEUaKCkBAiXaEKIiwqqViqggBRlH4rWwV8KqBCAyggsTVQqoBUoUJS+gGQKGoQaUiukzQNSQOoQAVp3ST24ZlzfO1r3+0sM2fmnecXnblzlpn3fZ/fc5W/Z+61D1T+I0CAAAECBNYuIIDXTm5CAgQIECBQVbkD2HcAAQIECBDoSEAAdwRvWgIECBDILSCA8/Zf5QQIECDQoYAA7hDf1AQIECCQV0AA5+197spVT4AAgY4FBHDHDTA9AQIECOQUEMA5+67q3AKqJ0CgBwICuAdNsAQCBAgQyCcggPP1XMUEcguonkBPBARwTxphGQQIECCQS0AA5+q3agkQyC2g+h4JCOAeNcNSCBAgQCCPgADO02uVEiBAILdAz6oXwD1riOUQIECAQA4BAZyjz6okQIAAgZ4JrDmAe1a95RAgQIAAgY4EBHBH8KYlQIAAgdwCAniN/TcVAQIECBDYFBDAmxL2BAgQIEBgjQICeI3YuadSPQECBAhsFRDAWzU8J0CAAAECaxIQwGuCNk1uAdUTIEDgQgEBfKGI1wQIECBAYA0CAngNyKYgkFtA9QQI7CQggHdS8R4BAgQIEGhZQAC3DGx4AgRyC6iewG4CAng3Ge8TIECAAIEWBQRwi7iGJkCAQG4B1e8lIID30vEZAQIECBBoSUAAtwRrWAIECBDILbBf9QJ4PyGfEyBAgACBFgQEcAuohiRAgAABAvsJDDuA96ve5wQIECBAoCMBAdwRvGkJECBAILeAAB5u/1VGgAABAj0WEMA9bo6lESBAgMBwBQTwcHubuzLVEyBAoOcCArjnDbI8AgQIEBimgAAeZl9VlVtA9QQIFCAggAtokiUSIECAwPAEBPDweqoiArkFVE+gEAEBXEijLJMAAQIEhiUggIfVT9UQIJBbQPUFCQjggpplqQQIECAwHAEBPJxeqoQAAQK5BQqrXgAX1jDLJUCAAIFhCAjgYfRRFQQIECBQmEDDAVxY9ZZLgAABAgQ6EhDAHcGblgABAgRyCwjgBvtvKAIECBAgMK+AAJ5XynEECBAgQKBBAQHcIGbuoVRPgAABAosICOBFtBxLgAABAgQaEhDADUEaJreA6gkQILCogABeVMzxBAgQIECgAQEB3ACiIQjkFlA9AQLLCAjgZdScQ4AAAQIEVhQQwCsCOp0AgdwCqiewrIAAXlbOeQQIECBAYAUBAbwCnlMJECCQW0D1qwgI4FX0nEuAAAECBJYUEMBLwjmNAAECBHILrFq9AF5V0PkECBAgQGAJAQG8BJpTCBAgQIDAqgJlB/Cq1TufAAECBAh0JCCAO4I3LQECBAjkFhDA5fbfygkQIECgYAEBXHDzLJ0AAQIEyhUQwOX2LvfKVU+AAIHCBQRw4Q20fAIECBAoU0AAl9k3q84toHoCBAYgIIAH0EQlECBAgEB5AgK4vJ5ZMYHcAqonMBABATyQRiqDAAECBMoSEMBl9ctqCRDILaD6AQkI4AE1UykECBAgUI6AAC6nV1ZKgACB3AIDq14AD6yhyiFAgACBMgQEcBl9skoCBAgQGJjAggE8sOqVQ4AAAQIEOhIQwB3Bm5YAAQIEcgsI4AX671ACBAgQINCUgABuStI4BAgQIEBgAQEBvABW7kNVT4AAAQJNCgjgJjWNRYAAAQIE5hQQwHNCOSy3gOoJECDQtIAAblrUeAQIECBAYA4BATwHkkMI5BZQPQECbQgI4DZUjUmAAAECBPYREMD7APmYAIHcAqon0JaAAG5L1rgECBAgQGAPAQG8B46PCBAgkFtA9W0KCOA2dY1NgAABAgR2ERDAu8B4mwABAgRyC7RdvQBuW9j4BAgQIEBgBwEBvAOKtwgQIECAQNsC/Q7gtqs3PgECBAgQ6EhAAHcEb1oCBAgQyC0ggPvbfysjQIAAgQELCOABN1dpBAgQINBfAQHc397kXpnqCRAgMHABATzwBiuPAAECBPopIID72Reryi2gegIEEggI4ARNViIBAgQI9E9AAPevJ1ZEILeA6gkkERDASRqtTAIECBDol4AA7lc/rIYAgdwCqk8kIIATNVupBAgQINAfAQHcn15YCQECBHILJKteACdruHIJECBAoB8CArgffbAKAgQIEEgmcEEAJ6teuQQIECBAoCMBAdwRvGkJECBAILeAAN7Sf08JECBAgMC6BATwuqTNQ4AAAQIEtggI4C0YuZ+qngABAgTWKSCA16ltLgIECBAgcEZAAJ+BsMstoHoCBAisW0AAr1vcfAQIECBAIAQEcCB4EMgtoHoCBLoQEMBdqJuTAAECBNILCOD03wIACOQWUD2BrgQEcFfy5iVAgACB1AICOHX7FU+AQG4B1XcpIIC71Dc3AQIECKQVEMBpW69wAgQI5BbounoB3HUHzE+AAAECKQUEcMq2K5oAAQIEuhboNoC7rt78BAgQIECgIwEB3BG8aQkQIEAgt4AA7q7/ZiZAgACBxAICOHHzlU6AAAEC3QkI4O7sc8+segIECCQXEMDJvwGUT4AAAQLdCAjgbtzNmltA9QQIEKgEsG8CAgQIECDQgYAA7gDdlARSCyieAIGpgACeMvhCgAABAgTWKyCA1+ttNgIEcguonsBZAQF8lsITAgQIECCwPgEBvD5rMxEgQCC3gOrPExDA53F4QYAAAQIE1iMggNfjbBYCBAgQyC2wrXoBvI3EGwQIECBAoH0BAdy+sRkIECBAgMA2gVQBvK16bxAgQIAAgY4EBHBH8KYlQIAAgdwCAjhN/xVKgAABAn0SEMB96oa1ECBAgEAaAQGcptW5C1U9AQIE+iYggPvWEeshQIAAgRQCAjhFmxWZW0D1BAj0UUAA97Er1kSAAAECgxcQwINvsQIJ5BZQPYG+CgjgvnbGuggQIEBg0AICeNDtVRwBArkFVN9nAQHc5+5YGwECBAgMVkAAD7a1CiNAgEBugb5XL4D73iHrI0CAAIFBCgjgQbZVUQQIECDQd4F2A7jv1VsfAQIECBDoSEAAdwRvWgIECBDILSCA2+u/kQkQIECAwK4CAnhXGh8QIECAAIH2BARwe7a5R1Y9AQIECOwpIID35PEhAQIECBBoR0AAt+Nq1NwCqidAgMC+AgJ4XyIHECBAgACB5gUEcPOmRiSQW0D1BAjMJSCA52JyEAECBAgQaFZAADfraTQCBHILqJ7A3AICeG4qBxIgQIAAgeYEBHBzlkYiQIBAbgHVLyQggBficjABAgQIEGhGQAA342gUAgQIEMgtsHD1AnhhMicQIECAAIHVBQTw6oZGIECAAAECCwsMKoAXrt4JBAgQIECgIwEB3BG8aQkQIEAgt4AAHkz/FUKAAAECJQkI4JK6Za0ECBAgMBgBATyYVuYuRPUECBAoTUAAl9Yx6yVAgACBQQgI4EG0URG5BVRPgECJAgK4xK5ZMwECBAgULyCAi2+hAgjkFlA9gVIFBHCpnbNuAgQIEChaQAAX3T6LJ0Agt4DqSxYQwCV3z9oJECBAoFgBAVxs6yycAAECuQVKr14Al95B6ydAgACBIgUEcJFts2gCBAgQKF1gtQAuvXrrJ0CAAAECHQkI4I7gTUuAAAECuQUE8PL9dyYBAgQIEFhaQAAvTedEAgQIECCwvIAAXt4u95mqJ0CAAIGVBATwSnxOJkCAAAECywkI4OXcnJVbQPUECBBYWUAAr0xoAAIECBAgsLiAAF7czBkEcguongCBRgQEcCOMBiFAgAABAosJCODFvBxNgEBuAdUTaExAADdGaSACBAgQIDC/gACe38qRBAgQyC2g+kYFBHCjnAYjQIAAAQLzCQjg+ZwcRYAAAQK5BRqvXgA3TmpAAgQIECCwv4AA3t/IEQQIECBAoHGBogK48eoNSIAAAQIEOhIQwB3Bm5YAAQIEcgsI4GL6b6EECBAgMCQBATykbqqFAAECBIoREMDFtCr3QlVPgACBoQkI4KF1VD0ECBAgUISAAC6iTRaZW0D1BAgMUUAAD7GraiJAgACB3gsI4N63yAIJ5BZQPYGhCgjgoXZWXQQIECDQawEB3Ov2WBwBArkFVD9kAQE85O6qjQABAgR6KyCAe9saCyNAgEBugaFXL4CH3mH1ESBAgEAvBQRwL9tiUQQIECAwdIG9A3jo1auPAAECBAh0JCCAO4I3LQECBAjkFhDAu/ffJwQIECBAoDUBAdwarYEJECBAgMDuAgJ4d5vcn6ieAAECBFoVEMCt8hqcAAECBAjsLCCAd3bxbm4B1RMgQKB1AQHcOrEJCBAgQIDAdgEBvN3EOwRyC6ieAIG1CAjgtTCbhAABAgQInC8ggM/38IoAgdwCqiewNgEBvDZqExEgQIAAgXMCAvichWcECBDILaD6tQoI4LVym4wAAQIECMwEBPDMwVcCBAgQyC2w9uoF8NrJTUiAAAECBKpKAPsuIECAAAECHQj0KoA7qN+UBAgQIECgEwEB3Am7SQkQIEAgu4AA7s13gIUQIECAQCYBAZyp22olQIAAgd4ICODetCL3QlRPgACBbAICOFvH1UuAAAECvRAQwL1og0XkFlA9AQIZBQRwxq6rmQABAgQ6FxDAnbfAAgjkFlA9gawCAjhr59VNgAABAp0KCOBO+U1OgEBuAdVnFhDAmbuvdgIECBDoTEAAd0ZvYgIECOQWyF69AM7+HaB+AgQIEOhEQAB3wm5SAgQIEMgtUFUCOPt3gPoJECBAoBMBAdwJu0kJECBAILtA5gDO3nv1EyBAgECHAgK4Q3xTEyBAgEBeAQGctffqJkCAAIFOBQRwp/wmX7vAxsbd1cbGpHr00Q+tfW4TEiBAYIuAAN6C4ekcApPJKALsw7FNYrtn1zNOnLglPj8d2/PVI4989a7HdfNB/2fd2Ph02E2qEyfe1P/FWiEBAssICOBl1DKfMxpNovwfjO2zsd0RV5LfGvvzHw89dLiaTN4bb45i+/nquusejH0/HqdO/XIs5NZY30/Gvr+P0ejzZxa3uT/z0o4AgaEICOChdHKddYzHj0WA/ex0ytHoN6tnnrl4+nzzy0te8o54ekNsH6s+85lfiH1/Htdf/0g1Hj/Qqz8U7KQzmTw/ffv06dl++qKhL4YhQKAXAgK4F20ocBHj8btj1X8b25HquefeGfvZY2PjeITzz8SLF6rTp7+/uvnmF+L58o+NjfeduRV7576DTCYH49jPxzapnnzyi6fHb2xcMX1d/9x367bfz4BPnHhiet6JE1fGVf4N8fyPYns2tnr8jbg1fFfUeXA6x4VfnnrqC+K4t8f20dj+N7aTsT0Z2/tj+7YLD9/l9eaV7+Z+l8O8TYBAqQICuNTOdb3u829Fv6167LGbI5Dq76e7Y2mHY2vq1vPHY6wqxr5uut/ryyOPHI2PD1ej0aeqq6/+73heVc8/X98q/9N4vrn9Yzzf/zGZnJwedPr0N8Z4fx/Pb4rtgdj+Vl9yVAAACohJREFUObajsZ6fixCub2fHyy2P++8/VJ08+dfxzi/G9mVx7n1xbP2z8o/F61fH9sEI9LfFfr/H5pXv5n6/430+n4CjCPRGoP4fZm8WYyGFCZy7FX0wrnbvjkD68ajglbE1d+t5NJoFcFUdi3H3fhw6VN/2rsP6X84eePz4f8Ut5zec3SaTXz/72d5PTk0/Ho1+LUL0nXH+TbG9KbavjdfvmH5WVT9cPfTQF555PttdeeUb4snXxzEfqo4evSa226tjx94S590WRvX6no3PvreqgzoO3OOxeeW7ud/jUB8RIFCiwIESF23NPRI4dyu6/k3nX42VNXPrOQaaPhYJ4Mnkxuk5VXUugM+8sfRuMvl4hOivnHf+ZFK/roPxpdXhwy+/4LM6ZOs/BHwkgnYW4psHXHfd0xHEXxHbzdWtt764+fYu+9mV72g02+9ykLcJLCTg4F4JCOBetaPAxdS3og8efOuWlb+30V9wOnnykRi7DrJrzl41PvHEZfGz1FOxTeJ27ubVaBxWzcKvqh6qXzS03bttnPG4Dt+np+8fODD7WfP0xfTLJ6dfq+rOWN83x+3n0ZnXi+7qOepzNvf1cxsBAgMSEMADamZnpZw69UNb5n5d3Jb9ki2vV3t6/Hh9BfhYDHKouuqqa2JfVS+++LrY19+7T8RV5mvj+eZjdgU8mTR3BTwaPbE5+AX7z01fnzpVr2P6dPrlkkv+MPYfje0rY7s/fjb+dATxPXF7/o7YLo335n3UdVdR32xf+Y8AgRUFenf6+f/z6N3yLKj3Ahsbr4o1/mhsn47tfbFdFrdl69+QjqcNPSaT2RXtqVObPweuf876eITTb8QMr6gef/zqM1ea9S9qTaoXXpgdHx+u/Fj0FvDll3+2OnSo/sWtn465/ynWdVns74j9PbE9E2H8J1V9BR9v7vPYvPLd3O9zuI8JEChNQACX1rE+rffBBy+J5fxObPVt1p+I4LkzQvFT8fr2CJrbYt/UY/aLWKPROMb98hj0m2L7QHX69F/Gvr4ifk2E8JXxvF7PJ6vjx/8vnnf3OHLk5PTnxuPx14TJ5RG83xOL+b3YPhfbG+MPCA9EHS+J53s9ZsF74IAr4L2UfEagYIG1BnDBTpa+k8DFF/9SvF3fFv6rajz+/erIkf+J1/XVcOyq9zR4K3oWwFV1VQT8a2Lwg7G/tzp27OF4vhHPXxthXK+jiufN3X6uGvjvyJFnY51/ED7fV506VV+hPxlrvC62b99z9PH4jXHOqLrmmn/f8zgfEiBQrIAALrZ1HS/83K3n5+Jnsm85u5qjR98f4fJn8brJW9GbAXxFXE2+PsZ+prr22r+Lff3bxh+I/S0xZ/33dOvX3QbwxsYfx9XtJ+I280tjXec/rr/+mXjjb2Kr13nhL29N3/aFAIE8AgJ4bb0e0ERbbz1PJndVN9zwifOqe/75H4vX9dXw7dWJE/UVa7xc4XHRRf8aZ5+O7atie1VsdcjX/yZ1VR048Ofx+lBs3xVb/Wju57/1aItv9V8vujpuM2/97ezZKLOf/X7L7EVV/+MeZ57aESCQUeBAxqLVvKLAxRe/K0aob/n+Q9wm3f4LVzfeWP8c+KfimPpK7z3Vww9/6fT5sl/qn6lWVf3byK+IIeory3N/NWh2JfwfcWV8S3xWP85dAW9svDKuRu89bxuNZrfIR6OXn/f+xsa9sc464Osxlt8OHKj/jeyn4or8rurRRx+MP4D8bszzW7HdF3cK6t/mrn9W/a5w27yq33mujY2Tcc4kzl/9DzA7z+BdAgQ6FhDAHTeguOlnt55/JNb9QoTMm2Orr0zj5QWP8fi34536duvLqosuenc8X/VRX9nW36//WR09+pGzg41G9fz3xev6s9PVoUP1z4Xj5fRxRXytb1lv3W6O9+rHpfFl6/uvrw4e/KJ4b7XHtdfWfw/4G2KQ+l/QOhx/MPjueP4DsX1dWN0f+++M8H177D0IEEguUP9PKzmB8hcSGI8/HAFyILbDEYTnrjZ3GmQ8fnUcN4rjbt/p44XeG49vm441Hl8aQVb/wxznTh+P33zms4PV7Gp59tl4fO+Z90dz7Y8dq/+95s1zb5qec/ToB2dvXPB1PJ59fuzYX1zwSRXn/Vtsb43thtguju2i2F4WDt8R+/oPC9tO2fbGePzSOHYU59S32Ld97A0CBMoXEMDl91AFvRewQAIECGwXEMDbTbxDgAABAgRaFxDArRObgEBuAdUTILCzgADe2cW7BAgQIECgVQEB3CqvwQkQyC2gegK7Cwjg3W18QoAAAQIEWhMQwK3RGpgAAQK5BVS/t4AA3tvHpwQIECBAoBUBAdwKq0EJECBAILfA/tUL4P2NHEGAAAECBBoXEMCNkxqQAAECBAjsLzDkAN6/ekcQIECAAIGOBARwR/CmJUCAAIHcAgJ4qP1XFwECBAj0WkAA97o9FkeAAAECQxUQwEPtbO66VE+AAIHeCwjg3rfIAgkQIEBgiAICeIhdVVNuAdUTIFCEgAAuok0WSYAAAQJDExDAQ+uoegjkFlA9gWIEBHAxrbJQAgQIEBiSgAAeUjfVQoBAbgHVFyUggItql8USIECAwFAEBPBQOqkOAgQI5BYornoBXFzLLJgAAQIEhiAggIfQRTUQIECAQHECjQZwcdVbMAECBAgQ6EhAAHcEb1oCBAgQyC0ggBvrv4EIECBAgMD8AgJ4fitHEiBAgACBxgQEcGOUuQdSPQECBAgsJiCAF/NyNAECBAgQaERAADfCaJDcAqonQIDA4gICeHEzZxAgQIAAgZUFBPDKhAYgkFtA9QQILCcggJdzcxYBAgQIEFhJQACvxOdkAgRyC6iewPICAnh5O2cSIECAAIGlBQTw0nROJECAQG4B1a8mIIBX83M2AQIECBBYSkAAL8XmJAIECBDILbB69QJ4dUMjECBAgACBhQUE8MJkTiBAgAABAqsLlBzAq1dvBAIECBAg0JGAAO4I3rQECBAgkFtAAJfaf+smQIAAgaIFBHDR7bN4AgQIEChVQACX2rnc61Y9AQIEihcQwMW3UAEECBAgUKKAAC6xa9acW0D1BAgMQkAAD6KNiiBAgACB0gQEcGkds14CuQVUT2AwAgJ4MK1UCAECBAiUJCCAS+qWtRIgkFtA9YMSEMCDaqdiCBAgQKAUAQFcSqeskwABArkFBle9AB5cSxVEgAABAiUICOASumSNBAgQIDA4gYUCeHDVK4gAAQIECHQkIIA7gjctAQIECOQWEMBz99+BBAgQIECgOQEB3JylkQgQIECAwNwCAnhuqtwHqp4AAQIEmhUQwM16Go0AAQIECMwlIIDnYnJQbgHVEyBAoHkBAdy8qREJECBAgMC+AgJ4XyIHEMgtoHoCBNoREMDtuBqVAAECBAjsKSCA9+TxIQECuQVUT6A9AQHcnq2RCRAgQIDArgICeFcaHxAgQCC3gOrbFRDA7foanQABAgQI7CgggHdk8SYBAgQI5BZov3oB3L6xGQgQIECAwDYBAbyNxBsECBAgQKB9gT4HcPvVm4EAAQIECHQkIIA7gjctAQIECOQWEMB97b91ESBAgMCgBQTwoNurOAIECBDoq8D/AwAA//+qCREyAAAABklEQVQDAGelVe84WW2nAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="566"></list></costumes><sounds><list struct="atomic" id="567"></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="572"><costumes><list id="573"><item><ref mediaID="U3L1-TicTacToe_Square_cst_Empty"></ref></item><item><ref mediaID="U3L1-TicTacToe_Square_cst_X"></ref></item><item><ref mediaID="U3L1-TicTacToe_Square_cst_O"></ref></item></list></costumes><sounds><list struct="atomic" id="574"></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="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportVariadicEquals"><list><block var="position"/><block s="getLastMessage"></block></list></block></list></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><list></list></block></script><script x="14.600000000000023" y="452.1666666666663"><block s="receiveGo"></block><block s="removeClone"></block></script><script x="430.59999999999934" y="434.5000000000007"><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block><l>empty</l></list></block></list></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><list></list></block><custom-block s="Win or Tie"></custom-block><block s="doBroadcast"><custom-block s="winning move"></custom-block><list></list></block></script><list></list><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="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block var="playing?"/><block s="reportBoolean"><l><bool>true</bool></l></block></list></block><block s="reportVariadicEquals"><list><block s="reportGetImageAttribute"><l><option>name</option></l><l><option>current</option></l></block><l>empty</l></list></block></list></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><list></list><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="760"><costumes><list struct="atomic" id="761"></list></costumes><sounds><list struct="atomic" id="762"></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="779">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-TicTacToe" app="Snap! 11.0.8, https://snap.berkeley.edu" version="2"><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAA4ElEQVR4AeySwQ3CQBADN4jv1RCJIhD8qAVEVQjaASEKQamA35FQgf1Zk4uj7M8rZ2eyisae6aDDeFNtYfp+85oOiuPpHLXWWc/98YxSyvp30GinmdcH/btKG7KhZAL+5ZKB03U2RCNLXrChZOB0nQ3RyJIXbCgZOF0nNUR/LbDggwBI0ogNSfED5TYEQJJGbEiKHyi3IQCSNGJDUvxAuQ0BkKQRG5LiB8ptCIAkjSzXkBQ7UW5DBCxJ1IYk2IlSGyJgSaI2JMFOlNoQAUsSbdPQ7XqJrutmPfvdNobh/fkCAAD//1EH2C8AAAAGSURBVAMA9JjNgjGESNkAAAAASUVORK5CYII=" mediaID="U3L1-TicTacToe_Square_cst_Empty"/><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACaElEQVR4AezZy0ojQRQG4MOsZjU+QGaGcZjBV1BEdN9eEF0EvGSpeAEFt4qtbgR1JeIlgi8gghifIeImKmpWKt4WPoHgRv+GBhFS3VV1TnW3uDghIV2n/i9Vi1T3NyL643nd6/l8fifr1dXVOxWAnp4eC80tbZmuf/8bCi8vz2MAUX393+exkSHKcnme97bZiAJQ8O6TvHyB0r6QyhW6vbtPXf6oTEqQ78/R9MxsalDnF5fU1tpKu3v7NTMpQSvLS1StVlOBAqajvZ36+geop7vTDFRX94OKW5uJo95j5ufUO0a5QvgZkkbpYJA3EoSLkkLpYpA1FggXukaZYJAzNggXu0KZYpBRC4QB0igbDPJpgzBICmWLQTYjEAZyozgwyGUMwmAuFBcGmaxAaGCL4sQgjzUITUxR3BhkYQGhkS5KAoMcbCA0i4uSwiADKwgNo1CSGMzPDkLTWihpDOYWAaHxR5QLDOYVA6F5iKpUKtTU2BgczqLOMxhnU6IgBLt/eKCz0xPK5XL4KF6ioHCbDQwWqFwuOzn5ioFCDO4BYJuF20/6HoUI6CMm3GcuUOygWhhXKFZQFMYFig0UFyONYgHpYiRR1iBTjBTKCmSLkUAZg7gw3CgjEDeGE6UNksJwoWKDMKE0BnOgbP5RxAa5wgCEMkXFArnGAIQyQUWCksIAhNJFKUFJYwBC6aCUoMmJSSfHZoSOqvco44fGxe0i4XAWNZmr70OU8UPj379+usoaex6gVBcrt5xqYFq/+wKldWXCXMEKXV9ffV9d26AsV6lUCkwA3RwfHy2Ojw77Wa6Fed8/PDyYfQUAAP//RepweQAAAAZJREFUAwCgyUYWN4CCdgAAAABJRU5ErkJggg==" mediaID="U3L1-TicTacToe_Square_cst_X"/><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAFPUlEQVR4AeyaX1BUVRjAv216iwVfGSpnCJDqJVCSHgqGAWoa1P5oLpJNkyyS1aQsMT1k7Goz/XPBpiJls2kyYBVLRXooCwMfwv64vVSahjNY0fgm0Exv2/1dvQ7KPXvvsne9K8rsYfeee853vt/5vnPu2e/bm2Se/QFUqTHF50NZuDD/R4DkmXV+icfj13T5bvR78Xq9N+tAmnXmzesGUKab0nELffX1kLzxVljWNTZJfv4d4vF4ZpVVT/hk46aAfPxJj4yf/dPROXIECKU2vxrUASLd3bqCq30++XZ42HSjCQQCck9JqfwcOy6VFRUC4Gf7B/R+qf5LCcgAQalbsrw6QP/eqLzcFpDa6iq5/bZbTfUrX1omTz/VINs7wzI29of46tdItK9XamsfklTB5gyEuxggsVhMh1ABmFLNqHz80eXCRLS2tcnOD7p0d2WyZjSx/TFpoPPnJwX/7/10t/T2XbBGTk627QETNcSq/f17pbBoke6KrMdE7c3uJQUETKO/SaampoSBcR0zoanUMTm47NvhTmlu8iftgraBDJji4mLZ9WG3MHAqilv1xQ0PDQ7KS4FNSUHZBmoJtEpeXp5s3RK00sWx+3ffdacAtfKxFTJ67Adbcm0Bvde1UyYnJyUUbLcl1MlGQO37/KCsqfcJXmIl2xLol19/kxeea5agBpNuN1Mpi/stX/GItAdDqiaX6i2BOjo65d33dwgzdamXCx/wjoGDByxdLyEQfntk6BtZ21DvAsLlQ+IdLa1tEolELr9xxVVCoGg0KghB2BX9XLlkYplgloFKASUQT+p3tnek1ToqpVT1TGxT8waJRveomogSaOjIsLy4sSXtzxulZooby+oelmOjo4q7ogbiJHz/AxXKjm7dYHM6ffqUqNxOaSF2lOJFhW7pnXBctvATJ0+ZtlECnTkz5vpWbaqxVllQWCQTExPap9kvUyC265WrVs9unSE1RUWFEjv+k6k2pkC0zM525isBspwu2V6vUqQSSNkjw29cH0Beb5acHR/PWFv89fcEUVJT/UwtxF5/+PCXph0yoZIdjp3OTBdTIBrW1DxoebKlnRuFHS43N9d0aCXQ0vJyOXHyd9NObldyQC1bUmqqhhKIQOAXg4dMO7lZSSSooKBQVCEzJVB1VaXs69/jeKg21ck4OjIiVdU1SjFKII7qr2xu12Jv6qO6UmqabhBTeG1rSIsvqE8xSiB08vsbpXtHl63gBO3TXXb39AmTrHI3xk8IRMeGJ9fKtnAHbV0tfOEkWMMkJ1IkIRAdEdCjhX05sHLtVgmFtsjrb25TbgaGXpZAWImwrN24mCHYyXfyTcQFn13vtxRrCYQE4mK4XqMW12ZhUne1CukV1rHduKAtIJQnBExc+2pCAUNsm3AwxzH0sCq2gRA0E0r1nZ52ThTCz8nCMG5SQHQAavGSMllWV6fnSKlzsrCbkZ8dOLBfD9TbtYyhQ9JAdCR/Q7KLpBeDO7EDsjaxCllBEl7kn5KFQbc5AdGRZBeDlpQu1p7cPgEMn+deMgWLsIuVlJTocQImignjpJKMHKPtnIEQwKDPb1gv5FiJ4ZH4JZVPypLZxnIUZl+0P9Yd14ADQfYbi/w7PaUdsaJ6Io2J0prO+ZUSkDEqYGS1SfySygduenpaD6yHw2FZsCBH/60C645g+9GRYcnKypKAlt4nC866TBXE0MURIEMY7zyIeW7hNqQugYxf/GEUylNHOh/LOgXBuEZxHMgQ7Nb7DSC3Zt7uuLqFPtoV0Retx+O5Zt/vK79Xzp3757//AQAA//8b6070AAAABklEQVQDANDFraDKLecQAAAAAElFTkSuQmCC" mediaID="U3L1-TicTacToe_Square_cst_O"/></media></snapdata>