<snapdata remixID="11227425"><project name="U5L6-Tic-Tac-Toe" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes>11-8-21: Ideas for improvement&#xD;&#xD;1. Click on a square that has already been selected, do not change costumes.&#xD;2. Add some color, costumes&#xD;3. Detect wins and losses&#xD;4. Create a computer player&#xD;&#xD;11-17: Fix bug so that you cannot play in a square that has already been played.&#xD;&#xD;11-19: Added functions to detect wins and ties, and a variable to stop the game.&#xD;&#xD;Look for repetitive code, and find applications for abstraction.&#xD;&#xD;2-2-22: Alonzo now knows how to play using a strategy based on square value. Now we want to teach him to play smater&#xD;&#xD;1. Play to win&#xD;2. Play to block&#xD;3. Play best available per strategy</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAD3RJREFUeF7tnQl0Tdcax/9XIjKLGCMSBEFNT56xUjPLTItSShf13lMZUKGGlJgleK99JaVIUIISkjaGl/YZa2oNDzGFxJjHI9EYkoiIvPVtznFPIlz3npvsm7P3WlnJOWefs7/v//3W3mdPJ7q8vLw8iCQUKCYFdALAYlJeFMsUEAAKEIpVgVcCeOLECezfvx/UOut0uiL7XbFiRXTv3h2urq7FKooovOgUKADg7t27Ubt2bWaBBKBkTlEdnzp1Cr179y46FURJxaaAAsBjx46hQoUKzBj6u127dsjIyChQA0pw3rx5Ex4eHmYxvkaNGmZ5rngoXwooAFy0aBH69+/PLDx+/Di6du2KmJgYdOvWDY6Ojuxn+fLlGDBgAJydnXHkyBFUrVrVLB7VrFnTLM8VD+VLAQWAYWFhMoBkZvXq1XHv3j1UqlQJSUlJqFWrFh48eIBHjx6hSpUqzJMrV66YxSMqS6SSr4ACwNDQUAWAxem+9B5anDaIss2vgALA+fPnywDa2Vgjd3Fb2JcGfrdvCdvS1jjt3ErVXrF9ejL6PdjKvHT6U0/caDVB9tjb29v83osSil0BBYDz5s2TAcx++Ae8Nn+IXxtPQ33fbsxQGh5JPp/AOiVvSuXdquHZa/LdunWLwUxNuVN4R9joniJlRLz82Lp1676pCHG9BCigAHDOnDkygDkZ95ESE4Z6ny6W3fx6SiDGZB40yO2qYfG4mKGDi4sLy1+qVCnFfXR8+/ZtTJgwAUHD+6Bz8lLc+GSXnKd+/foGlSMyWbYCCgBnz57NerhUwz3NfIDon3Zi0KBBWL16NUaPHo2Qvw5BsH2iwmOPsF1IWzcPmaf3K867fr4CVx2ro1y5cux8/gHtp0+fIjMzE4MHD8aOHTtQeUVHXB++U873zjvvWLaywnqDFFAAOGvWLLkGzM16iB2/7GXHS5Ysgb+/P2Z/NqwAgN4/3kNin4IzF+XGf8cApBouMjISz549UxhkY2Mj14B03W1VZ1wbtkPO06BBA4McEJksWwEFgCEhIawGpPTs8SPExe+Wj+ncnDHDCwBYmPvlxn2HK46eKF++PMuSm5urmFk5ffo0G8Q+efIkOnbsiKoRXXBlaByrASk1bNjQspUV1hukgALAGTNmvByGeZKJH3f9ohiWsbe2QvaEVgY92C3iHBKvpSA9PZ3lzz9gvWfPHvk5HTp0gMeabkge8pN8rnHjxgaVIzJZtgIKAKdPny4Dp8vJQuzOnxUAujjYY12/BnhRSb3W80/jLiAp5TbS0tJYPk9PT0X+vXv3ysft27eH59ruSProR/lckyZNLFtZYb1BCigADA4OloGzys3Gtu3/Qq9evdC8eXNQk7lw/F8wze6iQQ92GbscSfbV2CwKpaysrNcCWGNdT1waFCPnadq0qUHliEyWrYACwGnTpskAWj97wnrB1Amh3jGNEc767GN8aX9J4bFzh8F4sGdjARXKjl2GJLtqqFy5MrtGixr00759++RDWvTgFdUbiR9uk8/5+PhYtrLCeoMUUAA4ZcoUGUAbPMXm2O1sLjg8PJx1FhYH/U0JoE6H8kMmI239/AKFOQcSgO6oU6cOnJyccPGisubMD2DtjX1xYUC0/JxmzZoZ5IDIZNkKKACcPHmyPA5YRpeLH2LiFO+A//jCH8G25w3yuPL8XUhIz5EXLdAiBv1EC16l1LZtW9TZ1A/n+2+RxwGp2Rep5CugAHDSpEnysIttqWfYEB0rA0lSWFtbo1GjRrCysnqjMmfPnmXvfdIAtHSDdHzgwAH5Ge+99x7qbemPs+//IA/DtGjR4o1liAyWr4ACwIkTJ8rA2VsDUVtiFDXgke3RaPv7coO8rvH33Tj1v4dwd3dn+akp10/5AawfPQAJ/TbJwLZqZdhwj0HGiEzcKqAAMCgoSAbOobQO32+KBq1KoWkxqv2WTA3Elw56nRCdDt6xaa+cCXHyD0diGTdUq1aNOZ+amqpYWX337l32Xki1H039NYwZhDN9X3ZmWrduza1owjD1FFAASNNm0opoR5tSWLtxC6sRaWHAuXPnEB48TgFg7U3XcXmQJ7wiE5A8Qjlz4ei/FIk2bvKS/Tt37rzSaqlJbhQ7GKf7bJDzvPvuu+p5KZ7ErQIKAMePHy8D6GxrjdVRP7DjNm3a4ODBg1g2/XODa0BHv6W4aFNFHoCmlS+vS01+GoL/9FovZ/H19eVWNGGYegooABw3bpwMYFm70ohYt1F+J6SaKnJ+ML6wOm1Q6ZUW/hsnUv6Am5sby08zIvrbPGmFTUREBOhdkM433f4xTvZcp+iYGFSQyGTRCigADAwMlAEs51AGK9dGsePo6Gi2OMAci0Rp99vVq1fx553Dcbz7WllMGpwWqeQroAAwICBABtDV0RYr1qxHSkoKFi5cyJS4ceOGrEhCQoLBK1ays7NB88y050Q/EXxz587F0KFD0WzXJzjWbY18meaHRSr5CigA9PPzk5vcCs72SF4/HWuuOrCtmYsXLwYtEJCWSxGAhw8fZj1kGu+zs7PDyJEjWW+XVrLQ1BsNPj958gQzZ84EAUWzIo8fP2aq0rZLmt6bOnUq21nXIn4EfusaKQ/D0BItkUq+AgoAx4wZIwNYsawDzq8NxsYbTqD9wpT0t2DSQDMtMqWhm7i4OBw6dIjVZmfOnMGGDRtAz6IBazq+f/8+1qxZA2riKXl5eYE2QNHUH/32qeaIYVlbcbRLhAxgp06dSr76wkPlx4kIoJYtWzJZKrk4sk1JUeWGYefRc2xFzJvmZ2nsLicnh31V4XVp8+bNoGm/BQsWsN8uy7ugTKlcHO60Uq5hO3fuLMKjAQUUNSANlVCNRcnVyRZ1tw1lf2/P8oY18rAry0sGhM4X9vEiSbc3Xfco9QfGlz36IrsOhzuvZH/TItaBAwdqQH7hYoGPE3377besiaTUvHkzuJYrmi9VXbp8GcnJyQy+Hj16sBU0IpV8BQr9PqAhe3/NIY/UyTHHs8Uz+VNAfKCSv5hoyiIBoKbCzZ+zAkD+YqIpiwSAmgo3f84KAPmLiaYsEgBqKtz8OSsA5C8mmrJIAKipcPPnrACQv5hoyiIBoKbCzZ+zAkD+YqIpiwSAmgo3f84KAPmLiaYsEgBqKtz8OSsA5C8mmrJIAKipcPPnrACQv5hoyiIBoKbCzZ+zAkD+YqIpiwSAmgo3f84KAPmLiaYsEgBqKtz8OSsA5C8mmrJIAKipcPPnrACQv5hoyiIBoKbCzZ+zAkD+YqIpiwSAmgo3f84KAPmLiaYsEgBqKtz8OSsA5C8mmrJIAKipcPPnrACQv5hoyiIBoKbCzZ+zAkD+YqIpiwSAmgo3f84KAPmLiaYsEgBqKtz8OasagPRvHS6cOIh6Pm0U/8yGP5eFRTwpoAqAK2f74+COjahb2wEXL2fAo04DzFq7jyc/hS2cKmAygNcSzyDkkw6I/LoB8gDoAIwYexZ2js4I/zmZU7eFWbwoYDKAI1pXYPARdPRfjqgppuMxky8AVg4CQl4izakdJgH46/YNiFo8DllZuVj6cxLsHcsi89F9+HWpJUMpakJOI8+JWSYBGLtqIWJXhWHSkhjW+ZBS1FfTYH9/K/p1r8RqxjY9BmPUl0s4cVmYwZMCJgFYmCNSsyxdJwhD1uxBde9GPPkubOFAAdUBJPg+HeIO35YuCvcIwohDd8UQDQdB58kE1QA8EBeFiLmBmDmpFjzdbXEt5TGqu9vKvmZm5cJv8gVEHk7lyX9hSzEroAqAVOtRot4vgRcSlgRP74a4npigqA1/PZqOVVEpAsJiDjpPxZsMIMHn4W6LWZNqIWbnHcTuuqsALP/74PSwJKTetxHDMzxRUIy2qAKgZL+9U1ksjU9SuJN66zomfuDDakf9TsmrZkvkmlQ008WIRNEWbTKArzI3P0h0vHCGNyq4llZAOHLaP/FeryEvz0lNuQCwaCkoxtLMBiB1RmaEJbHmWH9wWt9X6hkvib8MB6fnPWYC9aP3q+BCWlMEhn5fjLKIootKAbMBSE3uhcsZCP3mKoMw/7ugfnNM1zMepsO/a215BkX0losKgeItxywAxqwMw4V9SzE5oAakni+52bdbRTY7op+k4RmpF81qwrFnRU+5eLkostJVBVB696NmVarNjPFEAGiMapZ5j+oASitj7OysEL6gnlGq0FCN78BgdB002qj7xU2Wo4CqAFLTGx+12Gjw8ndQxHug5YBkrKWqAij1ZPXH/Iw1TDTDxipnWfepDiDtCwn166sYeDZGkqCZiYBNFSzadtKY28U9FqKA6gCqXQvqjxNaiKbCzLdQgGsAxZDMW0TSQrOqDqD+JiU1NKF3wS+WxipWXKvxXPEMPhRQHcDCZjxMcVd0SExRj+97VQUw6P2mqOf5EKOGuqvqtQBQVTm5epiqAEq1X14eELrkKtuknn8VDOzrAA1WPBfh9/YFxbByRJ5PHK5fSkD1dH92Pf+iBa4UFMaYpIDqAErW0L6Q6ymPkXrvCQJHeb40ssU+tjCBUuT6ICB1p9IB/evxvwDnxzIAKYkesUmx5vJmVQCUVrLQpzloAQKljKxc+NMeEL2FqOyCPmDLOgHZtwsHcFMIcHvz88UJLza/i9kRLjky2ihVAMzf8SgUPslMr8nA7S1A5uVXG+4Z8Pzai9pRApC+tjAqJBI+bXsY7bC4kS8FTAaQ4JN2wr225jPBbwlA6X1Q1IImiMnZraoAmH+/hxpzwZJOBF8dL3tMHVtT7pAIADmjyARzTAJwwZg+8K1/Td6ELnUW3gZA6qjQ0v2IrxpAR5/W0ku0LOvmf7PlDx6JGtCESHN6q0kATh/eDv3aPYRPIyfWUQgIXYtVcwJgVzoTi2Z4v5XLqfdyQKujaVM7JYLvRspjeWW01HOmMsQ74FtJy3VmkwBkNdKLIRV9MPT3Cr+t93fTcjBpViIquHli4dYTb3u7yG9hCpgMYGH+EoRd2pXHkA+qsCwSWOVdS7OZkrq1HFiTS4PWB397/sUESvSNQfqGjEjaUMCsAEqzIDR8Qt8QpM7EBz0rsZ1yUpIgpNqOaj2RtKWAWQGUBo/piwmZD++Daj/fFi7s8x10Lu/pI7Z8X8z1ags6fW/NCmDAKE98s/I660hQj/niyUOs7KZtu7ON535dazEwKYmhFW1CaDYAaTHBjOHtC3yoKD9s9JXV+E3LCnxTRpvh0J7XZgNQe1IKj41RQABojGriHtUUEACqJqV4kDEKCACNUU3co5oCAkDVpBQPMkYBAaAxqol7VFNAAKialOJBxijwf6pgmQKrNptSAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="U5L6-Tic-Tac-Toe"><notes>11-8-21: Ideas for improvement&#xD;&#xD;1. Click on a square that has already been selected, do not change costumes.&#xD;2. Add some color, costumes&#xD;3. Detect wins and losses&#xD;4. Create a computer player&#xD;&#xD;11-17: Fix bug so that you cannot play in a square that has already been played.&#xD;&#xD;11-19: Added functions to detect wins and ties, and a variable to stop the game.&#xD;&#xD;Look for repetitive code, and find applications for abstraction.&#xD;&#xD;2-2-22: Alonzo now knows how to play using a strategy based on square value. Now we want to teach him to play smater&#xD;&#xD;1. Play to win&#xD;2. Play to block&#xD;3. Play best available per strategy</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="doSwitchToCostume"><l>Empty</l></block><block s="gotoXY"><l>-50</l><l>50</l></block><block s="doSetVar"><l>position number</l><l>1</l></block><block s="doRepeat"><l>3</l><script><block s="doRepeat"><l>3</l><script><block s="createClone"><l>Square</l></block><block s="doChangeVar"><l>position number</l><l>1</l></block><block s="forward"><l>50</l></block></script></block><block s="setXPosition"><l>-50</l></block><block s="changeYPosition"><l>-50</l></block></script></block></script></block-definition><block-definition s="possible winning triples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>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 triples %&apos;triples&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="triples"/></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 triples %l"><custom-block s="possible winning triples"></custom-block></custom-block></block></script></block-definition><block-definition s="won, player? %&apos;player&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doForEach"><l>triple</l><custom-block s="status of all winning triples"></custom-block><script><block s="doIf"><block s="reportEquals"><block var="triple"/><block s="reportNewList"><list><block var="player"/><block var="player"/><block var="player"/></list></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="tie game?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>square</l><block var="board"/><script><block s="doIf"><block s="reportIsA"><block var="square"/><l><option>number</option></l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="Initialize Game" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>position number</l><l>0</l></block><custom-block s="makeBoard"></custom-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>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>Game Over</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>computer</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>strategy</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><comment w="90" collapsed="false">Center Best Strategy</comment></block></block></script><scripts><script x="10" y="10"><block s="reportNewList"><list><l>1</l><l>3</l><l>7</l><l>9</l><l>5</l><l>2</l><l>4</l><l>6</l><l>8</l></list><comment w="90" collapsed="false">Corner Best Strategy</comment></block></script></scripts></block-definition><block-definition s="Player Move" type="command" category="lists"><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="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-definition><block-definition s="Check for Win or Tie" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><custom-block s="won, player? %txt"><l>X</l></custom-block><script><block s="doSetVar"><l>Game Over</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="output %s to user"><l>Congrats X wins!</l></custom-block></script><script><block s="doIfElse"><custom-block s="won, player? %txt"><l>O</l></custom-block><script><block s="doSetVar"><l>Game Over</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="output %s to user"><l>Congrats O wins!</l></custom-block></script><script><block s="doIf"><custom-block s="tie game?"></custom-block><script><block s="doSetVar"><l>Game Over</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><custom-block s="output %s to user"><l>Game Over! Click green flag to play again!</l></custom-block></script></block></script></block></script></block></script></block-definition><block-definition s="best empty square" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><l>square</l><block var="strategy"/><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="doReport"><block var="square"/></block></script></block></script></block></script></block-definition><block-definition s="play random square" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>square</l></list></block><block s="doSetVar"><l>square</l><block s="reportRandom"><l>1</l><l>9</l></block></block><block s="doUntil"><block s="reportIsA"><block s="reportListItem"><block var="square"/><block var="board"/></block><l><option>number</option></l></block><script><block s="doSetVar"><l>square</l><block s="reportRandom"><l>1</l><l>9</l></block></block></script></block><block s="doReport"><block var="square"/></block></script></block-definition><block-definition s="how many %&apos;player&apos; in %&apos;triple&apos; ?" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>count</l></list></block><block s="doSetVar"><l>count</l><l>0</l></block><block s="doForEach"><l>square</l><block var="triple"/><script><block s="doIf"><block s="reportEquals"><block var="square"/><block var="player"/></block><script><block s="doChangeVar"><l>count</l><l>1</l></block></script></block></script></block><block s="doReport"><block var="count"/></block></script></block-definition><block-definition s="winning triple for player %&apos;player&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>triple</l><custom-block s="status of all winning triples"></custom-block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="player"/><l>X</l></block><block s="reportAnd"><block s="reportEquals"><custom-block s="how many %s in %l ?"><l>X</l><block var="triple"/></custom-block><l>2</l></block><block s="reportEquals"><custom-block s="how many %s in %l ?"><l>O</l><block var="triple"/></custom-block><l>0</l></block></block></block><script><block s="doReport"><block var="triple"/></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="player"/><l>O</l></block><block s="reportAnd"><block s="reportEquals"><custom-block s="how many %s in %l ?"><l>O</l><block var="triple"/></custom-block><l>2</l></block><block s="reportEquals"><custom-block s="how many %s in %l ?"><l>X</l><block var="triple"/></custom-block><l>0</l></block></block></block><script><block s="doReport"><block var="triple"/></block></script></block></script></block><block s="doReport"><l>none</l></block></script></block-definition><block-definition s="winning square for player %&apos;player&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>triple_win</l></list></block><block s="doSetVar"><l>triple_win</l><custom-block s="winning triple for player %s"><block var="player"/></custom-block></block><block s="doIfElse"><block s="reportIsA"><block var="triple_win"/><l><option>list</option></l></block><script><block s="doForEach"><l>square</l><block var="triple_win"/><script><block s="doIf"><block s="reportIsA"><block var="square"/><l><option>number</option></l></block><script><block s="doReport"><block var="square"/></block></script></block></script></block></script><script><block s="doReport"><l>none</l></block></script></block></script></block-definition><block-definition s="next move for computer" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>win</l><l>block</l></list></block><block s="doSetVar"><l>win</l><custom-block s="winning square for player %s"><l>O</l></custom-block></block><block s="doSetVar"><l>block</l><custom-block s="winning square for player %s"><l>X</l></custom-block></block><block s="doIfElse"><block s="reportIsA"><block var="win"/><l><option>number</option></l></block><script><block s="doReport"><block var="win"/></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="block"/><l><option>number</option></l></block><script><block s="doReport"><block var="block"/></block></script><script><block s="doReport"><custom-block s="best empty square"></custom-block></block></script></block></script></block></script></block-definition><block-definition s="output %&apos;message&apos; to user" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doTellTo"><l>User Interface</l><block s="reifyScript"><script><block s="goToLayer"><l><option>front</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>User Interface</l><block s="reifyScript"><script><block s="doSayFor"><block var="message"/><l>2</l></block></script><list></list></block><list></list></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="630"><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="631"></list></costumes><sounds><list struct="atomic" id="632"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Square" idx="1" x="-50" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="637"><costumes><list id="638"><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="639"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="show"></block><custom-block s="Initialize Game"><comment w="164" collapsed="false">Initialize all global variables, and creates board</comment></custom-block><block s="hide"></block></script><script x="20" y="131.83333333333334"><custom-block s="how many %s in %l ?"><l>X</l><block s="reportNewList"><list><l>X</l><l>O</l><l>2</l></list></block></custom-block></script><script x="20" y="168.83333333333337"><custom-block s="play random square"></custom-block></script><script x="20" y="198.66666666666669"><custom-block s="winning triple for player %s"><l>X</l></custom-block></script><script x="20" y="231.66666666666669"><custom-block s="best empty square"></custom-block></script><script x="20" y="261.5"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIfElse"><block var="Game Over"/><script><custom-block s="output %s to user"><l>Game Over! Click green flag to play again.</l></custom-block></script><script><block s="doIfElse"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><custom-block s="Player Move"></custom-block><custom-block s="Check for Win or Tie"></custom-block><block s="doIf"><block s="reportAnd"><block var="computer"/><block s="reportNot"><block var="Game Over"/></block></block><script><block s="doBroadcastAndWait"><custom-block s="next move for computer"></custom-block><list></list></block></script></block></script><script><custom-block s="output %s to user"><l>Invalid move, pick another square.</l></custom-block></script></block></script></block></script><script x="20" y="551.1666666666669"><block s="receiveMessage"><l><option>any message</option></l><list><l>message</l></list></block><block s="doIf"><block s="reportEquals"><block var="message"/><block var="position number"/></block><script><custom-block s="Player Move"></custom-block><custom-block s="Check for Win or Tie"></custom-block></script></block></script></scripts></sprite><sprite name="Procedures" idx="2" x="86" y="67" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="132.447,135.15,0,1" pen="tip" id="712"><costumes><list struct="atomic" id="713"></list></costumes><sounds><list struct="atomic" id="714"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="hide"></block></script><script x="20" y="90.83333333333334"><custom-block s="Initialize Game"></custom-block></script><script x="20" y="126.66666666666669"><custom-block s="makeBoard"><comment w="131" collapsed="false">Creates clones for squares on the TTT game board.</comment></custom-block></script><script x="20" y="195.66666666666674"><custom-block s="possible winning triples"><comment w="144" collapsed="false">Reports the 8 possible winning triples in a TTT game.</comment></custom-block></script><script x="20" y="264.66666666666674"><custom-block s="status of triples %l"><l/><comment w="164" collapsed="false">Takes a list as input that represents a triple, and reports back the status of plays from the game board.</comment></custom-block></script><script x="20" y="345.66666666666674"><custom-block s="status of all winning triples"></custom-block></script><script x="20" y="375.50000000000006"><custom-block s="Player Move"></custom-block></script><script x="20" y="411.33333333333337"><custom-block s="won, player? %txt"><l></l></custom-block></script><script x="20" y="444.33333333333337"><custom-block s="tie game?"></custom-block></script><script x="20" y="474.16666666666663"><custom-block s="Check for Win or Tie"></custom-block></script><script x="20" y="510"><custom-block s="how many %s in %l ?"><l></l><l/><comment w="134" collapsed="false">Counts the number of either X&apos;s or O&apos;s in a triple</comment></custom-block></script><script x="20" y="579"><custom-block s="winning triple for player %s"><l></l></custom-block></script><script x="20" y="612"><custom-block s="winning square for player %s"><l></l></custom-block></script><script x="20" y="645"><custom-block s="next move for computer"></custom-block></script></scripts></sprite><watcher var="X&apos;s turn?" style="normal" x="5" y="5" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70"/><watcher scope="Square" var="position number" style="normal" x="121" y="9.000001999999995" color="243,118,29" hidden="true"/><watcher var="Game Over" style="normal" x="10" y="103.000002" color="243,118,29" hidden="true"/><watcher scope="User Interface" s="xPosition" style="normal" x="10" y="127.00000399999999" color="74,108,212" hidden="true"/><watcher scope="User Interface" s="yPosition" style="normal" x="10" y="148.00000599999998" color="74,108,212" hidden="true"/><watcher var="computer" style="normal" x="10" y="169.00000799999998" color="243,118,29" hidden="true"/><watcher var="strategy" style="normal" x="10" y="190.00000999999997" color="243,118,29" hidden="true"/><sprite name="User Interface" idx="3" x="-150" y="-100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="15.350999999999965,0,109.64999999999999,1" pen="tip" id="747"><costumes><list id="748"><item><ref mediaID="User Interface_cst_alonzo"></ref></item></list></costumes><sounds><list struct="atomic" id="749"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="gotoXY"><l>-150</l><l>-100</l></block><block s="doWait"><l>1</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSayFor"><l>Hello, my name is Alonzo and wlecome to my awesome game of TicTacToe!</l><l>3</l></block><block s="doAsk"><l>Would you like to play a game against me? Enter Yes or No.</l></block><block s="doIfElse"><block s="reportEquals"><block s="getLastAnswer"></block><l>Yes</l></block><script><block s="doSetVar"><l>computer</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSayFor"><l>Ok great, you will be the X player and you can move first by clicking on an empty square!</l><l>3</l></block></script><script><block s="doSetVar"><l>computer</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSayFor"><l>Ok, I hope you enjoy the game, Player X will go first by clicking an an empty square!</l><l>3</l></block></script></block></script></scripts></sprite></sprites></stage><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="793">X,2,O,X,O,6,X,O,X</list></variable><variable name="Game Over"><bool>true</bool></variable><variable name="computer"><bool>true</bool></variable><variable name="strategy"><list struct="atomic" id="794">5,1,3,7,9,2,4,6,8</list></variable></variables></scene></scenes></project><media name="U5L6-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"/><costume name="alonzo" center-x="45" center-y="60" image="data:image/png;base64,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" mediaID="User Interface_cst_alonzo"/></media></snapdata>