<snapdata remixID="10136004"><project name="U3L1-Tic-Tac-Toe Setup" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></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,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</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="1000" y="1000" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" 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,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAAx0lEQVRoQ+2awQ2CUBAFlybwSqzEWiTfoozWwhViONiRiYkFvMsEf4b75LEzHBmqs2eoqktVLT3cNU3n/XvQdW7L83H/65vW7VW31t4edNSMFjpqmd97WchCsAE/OVh4PGehWBkMWAgWHs9ZKFYGAxaChcdzFoqVwYCFYOHxnIViZTBgIVh4PGehWBkMWAgWHs9ZKFYGAxaChcdzFoqVwYCFYOHxnIViZTBgIVh4PGehWBkMWAgWHs9ZKFYGA30X6uWPxnE8bR/Jtp2GcsP1ZgAAAABJRU5ErkJggg==" id="10"/></item><item><costume name="X" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAACBUlEQVRoQ+3aO0/CUBQH8MMGIRFnooaRL0BgdCIGqQnxASgQjMjqc3A04maM38KwOTqqm8YEFx+rr0QdcSMupiQ1olTOvfec3hZha9LH/d1/e8M/rQ8AIoaR2QoG/X7w+K/V+rj2AcB4LBY/LpUXPQ16e32Bq0bjoQ3KZvNH9frhsJcDOr+4hN1abQBybYj/M6HHp2cYGx1xVSp2Y0IltFSpQjgchtrOtitQN7d3YKTTsLd/ANOZqY4xoUDN5jtUlqsQjUa1oyzMQqHYdSwokDkFbkD1wpjjRIN0ozAYYZAuFBYjBXIaJYKRBjmFEsUogbhRMhhlEBdKFkMCokapYMhAVChVDClIFUWBIQfJoqgwLCBRFCWGDYRFUWNYQb1QHBh2kB2KC+MI6Ccql8u2y5ldn+loaxIbQvVB4vxfh5h9qlAswdnpCaysrrEVRcdA5m02mUpBIBCAmdk5b4O+PzObG+usdZ49oW4LAGedZwX9tZpxodhAmKWZA8UCwmCs5Y8aRQ4SwXCgSEEyGGoUGUgFQ4kiAVFgqFDKIEoMBUoJxIFRRUmDODEqKCmQExhZlDDISYwMSgikAyOKQoN0YkRQKJAbMFgUCpRMTkA8kWBrmaLV3vpDm8vPy700duNrfRMVCg39mgtUQqIzqHP/AUjn7GOu3d8J9dsHgBEAKGNi9cA+958uiHxCYDA7+gAAAABJRU5ErkJggg==" id="11"/></item><item><costume name="O" center-x="26" center-y="26" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAYAAADFeBvrAAAEYElEQVRoQ+2aS0wTURSG/66Vx0oXCCIK1MfCFoxuFERDjOArahR8xKgFJS4kRuOGUsrGIBUXxgfFxKhA8REfYGKIiujCB9BqIoiSaAQV3fHQNeaMuUlLZzp3Zu4URCZpuui9Z853/jPn3numFkyxywIgG0DbVOBKTk7pkoD2H3C0Xa6r/aeZXr7qQJHD8XYaaLLKOK0QrzKtj57A7w+g7+MHtD15jM+fP4VN3bZ9BxISErDUZkfO6iwkJc7hNa84TqhC/QNf4fXWof76NWRkLpM+drsN1vQ0WWfp5r0fPuJNwI/79+5K43cWFGLrlo26wYQABYMUHSpBYcEOXdG+fec+fI0NGB4aQvHhEl1ghoGuXK2H2+UEgRwudiAuLlZ3dNlEStfqqiokJiWhvNypKTi6gYaHR1DuqkBPdzfclZVYsXyZYZBgA2T/wiUvai+ex8VaL3LX5nDZ1wVENzvoKEJsbCzOeKqFqKLkLaXh8WOlOO2p4UpBzUAMxmq1otLt4oqa0UHdPe+xIT+fC0oz0IGDRYiJicHZGo9RPzXNJ6glixfhxcvXEdNbE9C585fQ/rQNdd5aU9NMLf0CgYDi/bmBWITedfdg8aKFmqIrcvDR0mOSOaUM4QaiVLPZM3CkpFikf5pt0TNss9nQ0OiTTT0uIBpUWLATkaTW7JmBCZT6AX8X5I46XEAk84LUtAlXh8WAqdTc0hKW/qpAtK2Zm5SIoaHhCSkESkKeqvLg96/RsKVDFYi2NrR5jHaZVstIKlKlR0vR2vowZKgqEKXbylVZXKu0mhOif09JmY/xaacKJDdJtGN67ckFWxXIYrFgbGxM7z1NnUfVjq7gpSQiEP3o8Xhw84bPVMf0GqdjRpPPF1K+VYG8Xq9svdfrhMh55Px4/6aBREbYqC3NCinVeqOOiJpPh7/nz9pD1sj/q8pRJHNz15nSMxChEp0A1uflhyz6qgqVOV2YvyAV+/buEuGDUBu06D9tbw/pCqkCsV7ZZFuLWKtL816Oturx8XH40j+gqT8mVAoZY5Q5M2bG4OSJvydYdqkqRAOVJpvttJL9SEHmAqIzUXZW1qQ6sf78MSjbRuMCYirRd7R6cUrqsAOn0iPADcRUUmpORCv9qFSnpqWHPTuaniE2mLVlJ6pZQsfurs6OiH1BboUYFBWI3t7eqDcbWTDlGiOaq9z4dIo2FC8M+alZofFKuVzlpnZS6VR6proqrHeg9MzqBiKDlNP0/sbpcgvfGlERqqhwY6C/HzVna7iDZgiISewsK5PetjkcDsMvvmjRvFbfKKmi562gYSCCCnZidc6asB0wT0knRRoamyTFyYbe4AgBYg4T2J17zXjQ0iyV142bNkst5MwMuzRkoTVd6r7SwXF09Be+fR9EX1+fNJY+u3bvQV5eniGVhQIFK0ER7+j0Sw7TfxVGRkZw62aTNGTevBRJBXpxxoBFvaM1DYgnzcwYMw1kRlRF2pzaCk2VfzTOmjX71R8xTomk2qlpUgAAAABJRU5ErkJggg==" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="clone number"><l>0</l></variable></variables><scripts><script x="14" y="11.366666666666532"><block s="receiveGo"></block><block s="gotoXY"><l>-50</l><l>50</l></block><custom-block s="make Tic Tac Toe Board"></custom-block><block s="gotoXY"><l>1000</l><l>1000</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>clone number</l><l>0</l></block><block s="doSetVar"><l>board</l><block s="reportNewList"><list><l>empty</l><l>empty</l><l>empty</l><l>empty</l><l>empty</l><l>empty</l><l>empty</l><l>empty</l><l>empty</l></list></block></block><block s="doSetVar"><l>winning triples</l><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>7</l><l>5</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>3</l><l>6</l><l>9</l></list></block></list></block></block><block s="doSetVar"><l>spaces taken</l><l>0</l></block></script><script x="275" y="17.99999999999943"><block s="receiveOnClone"></block><block s="bubble"><block var="clone number"/></block></script><script x="479" y="10"><block s="receiveKey"><l><option>space</option></l></block><block s="removeClone"></block></script><script x="517" y="114.8333333333334"><block s="doHideVar"><l>clone number</l></block><block s="doHideVar"><l>winning triples</l></block></script><script x="12" y="279.1666666666665"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doChangeVar"><l>spaces taken</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><block s="doIfElse"><block s="reportEquals"><block var="X&apos;s turn?"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><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="clone number"/><block var="board"/><l>X</l></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="clone number"/><block var="board"/><l>O</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doIf"><custom-block s="draw?"></custom-block><script><block s="doSayFor"><l>Game over!</l><l>2</l></block></script></block><block s="doIf"><custom-block s="%s wins?"><l>X</l></custom-block><script><block s="doSayFor"><l>Game over!</l><l>2</l></block></script></block><block s="doIf"><custom-block s="%s wins?"><l>O</l></custom-block><script><block s="doSayFor"><l>Game over!</l><l>2</l></block></script></block></script></scripts></sprite><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="X&apos;s turn?" style="normal" x="10" y="52.00000399999999" color="243,118,29"/><watcher var="board" style="normal" x="10" y="76.00000599999998" color="243,118,29" extX="80" extY="70"/><watcher var="winning triples" style="normal" x="1" y="260.00001" color="243,118,29" hidden="true"/><watcher scope="Square" var="clone number" style="normal" x="0" y="198.00000800000007" color="243,118,29" hidden="true"/><watcher var="spaces taken" style="normal" x="10" y="169.000008" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><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"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-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="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></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="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="make ONE row" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><block s="doChangeVar"><l>clone number</l><l>1</l></block><block s="createClone"><l><option>myself</option></l></block><block s="changeXPosition"><l>50</l></block></script></block></script></block-definition><block-definition s="make Tic Tac Toe Board" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>3</l><script><custom-block s="make ONE row"></custom-block><block s="changeXPosition"><l>-150</l></block><block s="changeYPosition"><l>-50</l></block></script></block></script></block-definition><block-definition s="x wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="for each %upvar of %l %cs"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>X</l></block></block></block><script><block s="doSayFor"><l>X wins</l><l>2</l></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;letter&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doForEach"><l>triple</l><block var="winning triples"/><script><block s="doIf"><block s="reportEquals"><block var="letter"/><l>X</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><l>X</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>X</l></block></block></block><script><block s="doSayFor"><l>X wins!</l><l>2</l></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doIf"><block s="reportEquals"><block var="letter"/><l>O</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><l>O</l></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="board"/></block><l>O</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>O</l></block></block></block><script><block s="doSayFor"><l>O wins!</l><l>2</l></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="draw?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportEquals"><block var="spaces taken"/><l>9</l></block><script><block s="doIf"><block s="reportAnd"><block s="reportNot"><custom-block s="%s wins?"><l>O</l></custom-block></block><block s="reportNot"><custom-block s="%s wins?"><l>X</l></custom-block></block></block><script><block s="doSayFor"><l>Its a draw!</l><l>2</l></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="board"><list struct="atomic" id="1008">empty,empty,empty,empty,empty,empty,empty,empty,empty</list></variable><variable name="winning triples"><list id="1009"><item><list struct="atomic" id="1010">1,2,3</list></item><item><list struct="atomic" id="1011">2,5,8</list></item><item><list struct="atomic" id="1012">1,5,9</list></item><item><list struct="atomic" id="1013">7,5,3</list></item><item><list struct="atomic" id="1014">4,5,6</list></item><item><list struct="atomic" id="1015">7,8,9</list></item><item><list struct="atomic" id="1016">1,4,7</list></item><item><list struct="atomic" id="1017">3,6,9</list></item></list></variable><variable name="spaces taken"><l>0</l></variable></variables></project><media name="U3L1-Tic-Tac-Toe Setup" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>