<snapdata remixID="9121865"><project name="Tic tac toe computer" 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="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>9</l></variable></variables><scripts><script x="15" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>computer picks</l><l>0</l></block><block s="doSetVar"><l>clone number</l><l>0</l></block><block s="gotoXY"><l>-50</l><l>50</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="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><custom-block s="make Tic Tac Toe Board"></custom-block></script><script x="160.6416025625" y="298.8000009999999"><block var="o"/></script><script x="487" y="33.799999999999955"><custom-block s="%s wins?"><l>x</l></custom-block></script><script x="487" y="69.79999999999995"><custom-block s="X wins?"></custom-block></script><script x="19" y="260.79999999999995"><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="doReplaceInList"><block var="clone 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><custom-block s="computers turn"></custom-block></script></block></script></block><block s="doBroadcast"><l>who wins</l></block></script><script x="30" y="481.0000000000001"><block s="receiveOnClone"></block><block s="doWaitUntil"><block s="reportEquals"><block var="computer picks"/><block var="clone number"/></block></block><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></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 scope="Square" var="clone number" style="normal" x="10" y="169.00000799999998" color="243,118,29"/><watcher var="winning triples" style="normal" x="10" y="190.00000999999997" color="243,118,29" extX="186" extY="150"/><watcher var="triple" style="normal" x="10" y="338.999998" color="243,118,29"/><watcher var="computer picks" style="normal" x="10" y="338.999998" color="243,118,29"/><watcher var="random number" style="normal" x="10" y="338.999998" color="243,118,29"/><sprite name="Sprite" idx="2" x="140" y="-143" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="206.55,185.89499999999998,0,1" pen="tip" id="172"><costumes><list struct="atomic" id="173"></list></costumes><sounds><list struct="atomic" id="174"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="254"><block s="receiveCondition"><block s="reportEquals"><custom-block s="X wins?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Congraulations! X wins!</l><l>10</l></block></script><script x="20" y="127"><block s="receiveCondition"><block s="reportEquals"><custom-block s="o wins?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Congratulations! O wins!</l><l>10</l></block></script><script x="20" y="10"><block s="receiveCondition"><block s="reportEquals"><custom-block s="draws?"></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSayFor"><l>Sorry... you both lose.</l><l>10</l></block></script></scripts></sprite></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="doSwitchToCostume"><l>Empty</l></block><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="make row" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="X wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><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="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="o wins?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForEach"><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>0</l></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><l>0</l></block></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="%&apos;character&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="reportAnd"><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>1</l><block var="triple"/></block><block var="board"/></block><block var="character"/></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="character"/></block><block s="reportEquals"><block s="reportListItem"><block s="reportListItem"><l>3</l><block var="triple"/></block><block var="board"/></block><block var="character"/></block></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="computers turn" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doWait"><l>.5</l></block><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"><block s="reportListItem"><block var="random number"/><block var="board"/></block><l>Empty</l></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 picks</l><block var="random number"/></block></script></block-definition><block-definition s="draws?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIfElse"><block s="reportListContainsItem"><block var="board"/><l>Empty</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></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="1026">empty,empty,empty,empty,empty,empty,empty,empty,empty</list></variable><variable name="winning triples"><list id="1027"><item><list struct="atomic" id="1028">1,2,3</list></item><item><list struct="atomic" id="1029">4,5,6</list></item><item><list struct="atomic" id="1030">7,8,9</list></item><item><list struct="atomic" id="1031">1,4,7</list></item><item><list struct="atomic" id="1032">2,5,8</list></item><item><list struct="atomic" id="1033">3,6,9</list></item><item><list struct="atomic" id="1034">1,5,9</list></item><item><list struct="atomic" id="1035">3,5,7</list></item></list></variable><variable name="triple"><l>0</l></variable><variable name="computer picks"><l>0</l></variable><variable name="random number"><l>0</l></variable></variables></project><media name="Tic tac toe computer" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>