<snapdata remixID="9100206"><project name="U3L1-Tic-Tac-Toe Setup" app="Snap! 5.4, http://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" 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="999.1011235955051" y="999.923211563435" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="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,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>9</l></variable></variables><scripts><script x="19" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>computer pick</l><l>0</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>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>clone number</l><l>0</l></block><block s="doSetVar"><l>spaces taken</l><l>0</l></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>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><block s="gotoXY"><l>-50</l><l>50</l></block><block s="doSwitchToCostume"><l>Empty</l></block><custom-block s="make TIC TAC TOE board"></custom-block></script><script x="28" y="317"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block><script><block s="doIf"><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><block s="doChangeVar"><l>spaces taken</l><l>1</l></block><block s="doWait"><l>.5</l></block><block s="doIf"><custom-block s="%s wins?"><l>x</l></custom-block><script><block s="bubble"><block s="reportJoinWords"><list><l>x</l><l> wins</l></list></block></block></script></block><block s="doIf"><custom-block s="%s wins?"><l>o</l></custom-block><script><block s="bubble"><block s="reportJoinWords"><list><l>o</l><l> wins</l></list></block></block></script></block><block s="doIf"><custom-block s="draw?"></custom-block><script><block s="bubble"><l>draw</l></block></script></block><custom-block s="computer turn"></custom-block><block s="doIf"><custom-block s="%s wins?"><l>x</l></custom-block><script><block s="bubble"><block s="reportJoinWords"><list><l>x</l><l> wins</l></list></block></block></script></block><block s="doIf"><custom-block s="%s wins?"><l>o</l></custom-block><script><block s="bubble"><block s="reportJoinWords"><list><l>o</l><l> wins</l></list></block></block></script></block><block s="doIf"><custom-block s="draw?"></custom-block><script><block s="bubble"><l>draw</l></block></script></block></script></block></script></block></script><script x="50" y="893"><block s="receiveOnClone"></block><block s="doWaitUntil"><block s="reportEquals"><block var="clone number"/><block var="computer pick"/></block></block><block s="doSwitchToCostume"><l>O</l></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReplaceInList"><block var="clone number"/><block var="BOARD"/><l>O</l></block></script></scripts></sprite><watcher scope="Square" s="xPosition" style="normal" x="8.291666666666515" y="8.291666666666664" color="74,108,212" hidden="true"/><watcher scope="Square" s="yPosition" style="normal" x="8.291666666666515" y="25.704168324999983" color="74,108,212" hidden="true"/><watcher var="X&apos;s turn?" style="normal" x="-4.145833333333542" y="42.28750331666666" color="243,118,29" hidden="true"/><watcher var="BOARD" style="normal" x="8.291666666666515" y="43.11666998333334" color="243,118,29" extX="79.99999999999983" extY="69.99999999999997"/><watcher scope="Square" var="clone number" style="normal" x="8.291666666666515" y="206.462504975" color="243,118,29" hidden="true"/><watcher var="winning triples" style="normal" x="8.291666666666515" y="223.87500663333344" color="243,118,29" hidden="true"/><watcher var="triples" style="normal" x="8.291666666666515" y="281.0874983416667" color="243,118,29" hidden="true"/><watcher var="computer pick" style="normal" x="8.291666666666515" y="281.0874983416667" color="243,118,29" hidden="true"/><watcher var="spaces taken" style="normal" x="6.633333333333326" y="140.9583316750001" color="243,118,29" hidden="true"/></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="doRepeat"><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="doRepeat"><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><block s="gotoXY"><l>1000</l><l>1000</l></block></script></block-definition><block-definition s="%&apos;x or o&apos; wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></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><block var="x or o"/></block><block s="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>2</l><block var="triple"/></block><block var="BOARD"/></block><block var="x or o"/></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="BOARD"/></block><block var="x or o"/></block></block></block><script><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="o wins?" type="command" 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>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="bubble"><l>O WINS</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="draw?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportOr"><custom-block s="%s wins?"><l>X</l></custom-block><custom-block s="%s wins?"><l>O</l></custom-block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block><block s="doIf"><block s="reportAnd"><block s="reportEquals"><block var="spaces taken"/><l>9</l></block><block s="reportAnd"><block s="reportEquals"><custom-block s="%s wins?"><l>X</l></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="reportEquals"><custom-block s="%s wins?"><l>O</l></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="computer turn" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>random number</l></list></block><block s="doSetVar"><l>random number</l><block s="reportRandom"><l>1</l><l>9</l></block></block><block s="doUntil"><block s="reportEquals"><l>Empty</l><block s="reportListItem"><block var="random number"/><block var="BOARD"/></block></block><script><block s="doSetVar"><l>random number</l><block s="reportRandom"><l>1</l><l>9</l></block></block></script></block><block s="doSetVar"><l>computer pick</l><block var="random number"/></block><block s="doChangeVar"><l>spaces taken</l><l>1</l></block><block s="doWait"><l>.5</l></block></script></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>true</bool></variable><variable name="BOARD"><list struct="atomic" id="1041">X,O,O,O,X,O,X,Empty,X</list></variable><variable name="winning triples"><list id="1042"><item><list struct="atomic" id="1043">1,2,3</list></item><item><list struct="atomic" id="1044">4,5,6</list></item><item><list struct="atomic" id="1045">7,8,9</list></item><item><list struct="atomic" id="1046">1,4,7</list></item><item><list struct="atomic" id="1047">2,5,8</list></item><item><list struct="atomic" id="1048">3,6,9</list></item><item><list struct="atomic" id="1049">1,5,9</list></item><item><list struct="atomic" id="1050">3,5,7</list></item></list></variable><variable name="triples"><l>0</l></variable><variable name="computer pick"><l>3</l></variable><variable name="spaces taken"><l>8</l></variable></variables></project><media name="U3L1-Tic-Tac-Toe Setup" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>