<snapdata remixID="10986977"><project name="U3L3-Tic-Tac-Toe" app="Snap! 6, https://snap.berkeley.edu" version="1"><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.</notes><thumbnail>data:image/png;base64,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</thumbnail><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" scheduled="false" id="1"><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="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><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="8"><costumes><list id="9"><item><costume name="Empty" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAAXNSR0IArs4c6QAAAMdJREFUaEPtmsENglAQBZcm8EhiJdYi/qaM1sIVYjjYkYmJBbzLBH+G++SxMxwZqrNnqKpLVS093DVN5/170HVuy/Nx/+ub1u1V7dbeHnTUjBY6apnfe1nIQrABPzlYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgMWgoXHcxaKlcGAhWDh8ZyFYmUwYCFYeDxnoVgZDFgIFh7PWShWBgN9F+rlj8ZxPG0fpgqdIlzL6G8AAAAASUVORK5CYII=" id="10"/></item><item><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=" id="11"/></item><item><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==" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="20" y="20.00000000000003"><block s="doWearNextCostume"></block></script><script x="20" y="55.83333333333337"><block s="receiveGo"></block><block s="show"></block><custom-block s="Initialize Game"></custom-block><block s="hide"></block></script><script x="20" y="162.33333333333334"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIfElse"><block var="Game Over"/><script><block s="doSayFor"><l>Game Over! Click green flag to play again.</l><l>2</l></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></script><script><block s="doSayFor"><l>Invalid move, pick another square.</l><l>1</l></block></script></block></script></block></script><script x="20" y="782.8333333333333"><custom-block s="possible winning triples"></custom-block></script><script x="20" y="812.6666666666665"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></block></script><script x="20" y="856.4999999999997"><custom-block s="status of triples %l"><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block></custom-block></script><script x="20" y="893.4999999999997"><custom-block s="status of all winning triples"></custom-block></script><script x="20" y="923.3333333333329"><custom-block s="won, player? %txt"><l>o</l></custom-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="77"><costumes><list struct="atomic" id="78"></list></costumes><sounds><list struct="atomic" id="79"></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="makeBoard"><comment w="131" collapsed="false">Creates clones for squares on the TTT game board.</comment></custom-block></script><script x="20" y="159.83333333333334"><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="228.83333333333334"><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="309.83333333333337"><custom-block s="status of all winning triples"></custom-block></script><script x="20" y="339.66666666666674"><custom-block s="Player Move"></custom-block></script><script x="20" y="375.5000000000002"><custom-block s="won, player? %txt"><l></l></custom-block></script><script x="20" y="408.5000000000002"><custom-block s="tie game?"></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"/></sprites></stage><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></script></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><block s="doSayFor"><l>Congrats X wins!</l><l>2</l></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><block s="doSayFor"><l>Congrats O wins!</l><l>2</l></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><block s="doSayFor"><l>Game is a tie! Click Green flag to play again!</l><l>3</l></block></script></block></script></block></script></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="452">1,2,3,4,5,6,7,8,9</list></variable><variable name="Game Over"><bool>false</bool></variable></variables></project><media name="U3L3-Tic-Tac-Toe" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>