<snapdata remixID="8512267"><project name="PONG" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAD50lEQVR4nO3aoU8bYRyH8fsDmCZzFVNM1DBHgi7JpmjQVCOmKmZIpjYz1MSWVE7UoPE1S6pmZsgSMoMoUEohrA3hN8Guu97de72jLd/r9fkkzeB69/aFPsD7tvMMEPLUE8ByI0BIESCkCBBSSxegV+o4bzt7V4nX7R/cmJnZzt6VeaVO4thB/vlJjxM83mje2sraWexYRbN0AfrintjDo4GtrJ2lOtd1vFzp2ur6uR0eDWLvazRvU48/6b4iIMAJx5MCaLWHkWDLla7zurgAJwVGgAWVNsDV9fNM4/gB7h/c2Mb2ZeS+rAEWHQEmHC9XunZ8cpc4TjhQP8C4xwgH2GjeWq3eTz3nIpo6wMOjwWixHLd+yivXJiIYXJrfTrV6fyyqYIDhMYoW4Or6+ei59zdoWU0d4IvNi7HPt3Z70w75JNLsgGcVoB91mgCPT+4ic5u0DFAILy/Cn6c1VYBZdox585i40owTDjB4TjjA45O7iU9cXr+frr8gmceZ9STinoA8SvvNyrpLjfv6t3Z79vb9daF2wUk/aFnMPMBFWdNkCdC1EdnYvoysfVw/gF6p4wwwaaNDgEkXL0GA/rnhSPx3K8JcAbbaQ/NKHecL0a4ICTDp4gX8E+x6G26ScqU7dn7cri/49plX6lirPYw8tmtNWav3F2Lz4ctFgIu8CcF0crEJMYtuv/P+GxCzEV5qSV6GMXtYCy3iC9GYXnDJEfefL9JY2rfikA8ECCkChBQBQooAIUWAkCJASBEgpAgQUgQIKQKEFAFCigAhRYCQIkBIESCkCBBSBAgpAoQUAUKKACFFgJAiQEgRIKQIEFIECCkChBQBQmoswGq1ap7nmed5Vq1WVXNCwQS7ur+/H7uPADF3BAgpAoQUAUKKACFFgJAiQEgRIKQIcF46p2a9i8nnLTkCnIfXa2avnj3c3rw0O/2tnlFuEeCsDf78j+/fbfDts3pWuUWAs3Z5EQnw7MtH9axyiwDnYfP5eIQ/vqtnlFsEOA/XVzb4+sH6n96Z/fqpnk2uESCkCBBSBAgpAoQUAUKKACFFgJAiQEgRIKRSBwg8NQKEFAFCigAhRYCQIkBIESCkCBBSBAgpAoQUAUKKACFFgJAiQEgRIKQIEFIECCkChBQBQooAIUWAkCJASBEgpAgQUgQIKQKEFAFCigAhRYCQIkAz80qdyMfBY2ZmW7u90b9x57iucz1OmD9+cJxG8zb117CoCPCR9g9uzMysVu+P4kkKptUeJp7jj+GPGXyMIiNASBEgpAgQUgQIKQKEFAFCigAhRYCQIkBIESCkCBBSBAgpAoQUAUKKACFFgJAiQEj9BViCm40hjViWAAAAAElFTkSuQmCC</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" volume="100" pan="0" lines="round" ternary="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAL8ElEQVR4nO3d0XHivAIGUHWCJ/8tI01sCykhFdBBKsh7GqCCbYD3NMDgvG0BuQ8OsWWMsWSDDZwzw0yWBCObRZ8ly1IIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADArVp9/QnF13soym1Ylf9CUX43HttQlB9hVb7OXczZ/Lf/XyjKdSjKTViVn63j8x2Kchcdp//2/5u7yACPqQqzdiWd89iFVfk3FOXbRSr11f7lJziGl6co1+nvU772bndVfiZtryg/Eo/jR3KZQwjhaf/8E7rtk5Ihj0142j//lHf3s5+PexIDcBXTBfBxkEwVxO0Qq4J+/RsaIVQtvyo8P1ohtI3+7pxzAVw93rLLfokALsq31j7vflu47X2vTmQOLeR2WG+inwG4smZLc6iqYn/7bUH9toq//mSXowrVuht1VX4O2l7VDfvReN2/UeVot7xX5b/RJxfNba72L1nbqPZzE5UrpdVfvb4d3vWJCwBXlhPA8evrSj03/Nrhm9MiW+1fRpcjhOMAHtNV3LXN3ACOtlF+Zp8UVMf6rwAGmNvYAA6hGizVDL/UcIhDL787tF2OlO7o7rLULfypWtU5ARy3fPPDtyk+4RHAAFc3RQCHcOiWrq/bDn7/6Lr0+GuR1TXP/GCJW5qvk4TUmABulmGK7vCu7QpggBlMFcDVtuqW2pDW5+rrT9TanC5cml2s66TXto9HO5Bz5AZwdd12N/r9T5fLICyA2UwZwM1WcPH1nvTeuddGuzztn7O7xNvHo7rlZ9xJQu5+VgPd0nsVhjp0Q7sNCWAGUwZwtb1h3ZpRWF+gCzTu2l4Pf13H8YhuLxpwYtG3zbQArlu/OdezAViwuQI4Glg0Yev3oNlyTZlQo+t4VCOH8wd35QRwfI1WFzHA3ZkvgOtu3UtpXgseOor51PFoDu5K7Q7OCeDoBGXECGwAFmrKAI5bnadDKm7djbvHtk88InrYjFZ9xyOaKCSpKzkngA/TRP4b/D4A3JBpR0EPC7zm9dlLDgCqRhGnXWfuDeDoVqu8bu3hAewWIYC7Nm0ADxs01HzPS6/Qk9qSPHc84jmU01vVQwI4dTQ5ADdoqgBu3jJzrlu52ZV7aan7d+7vc25xEsDwwA4TsR/Pc7sNl1pSjtswRQDHA5TOT5V4ze7VqLt7QPgNOR7xLU7nr2ELYK5Jfb8g1WxDu9YHET9SV1bhfowJ4MO6tCnhW73nbQdw9XfD54kWwFyL+n5BmpPTF+U2GvByWFM1ulXDjDgPJzWAqy/4+mhFnVX5d/CZ9T0EcMpcygKYa1DfL0hz8oBzN/IfWjG5K8hwu7qX30t5bJMn0riHAG7/bV9lJoC5NPX9whzOdIbeLlGfGZl155GkBnD1Jd+GovwYsebufQTw0HmirxnA7QUc0h7TLYjBdanvFyS6X3Fg66RZmTgrehxTz4S1tPecehT08d+fnydaAHNJ6vuFqQfGpLUw6tc5K3oUcwfwrd0H3DZknugldkFfejEMrkd9vzD1tYB14uter1YxsgyzBHBit3CuqWfCOv2a/nmiUwO4We5LLEMYggC+J+r7BWl+sVIPavTFv2DFyHLMEcDRCOILDjKaei7oPn3zRI+ZijJlyssUAvg+qO8X5jAjUe4X9/f6kdGXD2GOAA4hNLptLxMw1XtMtxrS2ffqmSc6L4Av200vgO+D+n5h6u69vC/V7xffB/IQ5grgS68HHHc/D1/ycMzxODVPdF4AN6f2XCeX5RwBfB/U9wtTfyB5y7zlXtDnNs3WAo5ajNNf54yni1wPf93ImcG65onOCeD4Fqfpv4sC+D6o7xfm97aIzDOasWdU3Ja5Arj93lO2gnMWTOgqU46ueaJz9/OSvQQC+D6o7xem/rJndkn4QB7KnAFcTWs5/T2o8TSZ66TXTrM4RTxPdG4AN1vBQ+fZHkoA3wf1/cL4QEgxZwCH0G4xjr8fMR75nP5/eIrj0Z4nekxLP74WPN39mgL4PqjvF8YHQoq5A7hdhjEh05yMPnee2+nWR27OE/0v5AZwta3NJMenSQDfB/X9wvhASLGEAK5mk/qMQia1u3W1f4nCN3+e6mmORzyI6ntUALePT8rKU6ekrObEcqnvF2bsqDYfyGNZQgCH0BUyn8NnjWrOrDUifEOY9nhE80SPHExV3Va1ifaz+HrPOlGJW9S+67dMfb8wo+8L84Hcrfh6a+7jsv8vjkNrG4pyHYXqYW3TovyIuneLcpvc7dxsOQ95pHRtx0vETTOauVqLubXN8m8oyrew2r8cBXI1Ivz157h2LdIQrxvLbVHfL8xkN2Zn3lfGct1CAIdwaKWlLJO4C7mTVaQGcFHukkI+HhQ2ze1Edas/f9WjMctJshzq+4WppyYbtvpL2283oJlRmNnq689PBbPtCMmfNYkfvPUWH6PPo7Ct12/eVK1koXtX1PcL07y3Mm8U6HRn6gBcjvp+gSxPBfAY1PcLUw9kyVug+VJrkAIwLfX9wjTvQRzaLRFNe6c7AuAmqO8X6DA6bujZTT1/ruHoALdEfb8w1Y37h9sU+oeY1x9e3vR9AMxHfb9A8dy4f8OqfI0utlf3QNYrx7hFAeA2qe8XaMhEA2On7wNgfur7Baq6J95Ce3ahVfmZNZ8sAMukvgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYRVHuQlF+Nx6buYt0UlTOr/fwtH+eu0iR1f6ldSyrx2r/Mmq7fZ9RUa5/ntuNLT4A1xZV6F/vowPjEopy8xu4T/vnUJTfCw3gdQihPqZFuZ7keJ77jJZ84gTACc3K+2n/HIqv95/nt6Eov39+/v79ufr3OmqVHW/zdKs6p8XdDOD280W5C8XXe2Ob69/fx63S41Zi1LpsBNu5/RtS3u7n622mnECc+oz63u/UvtfPbzv/DcCVtLs0m62rKuCqsKhanuuf5+vKunq+ruCb3cMpvztfzu7wqk4UNtG/D79v7stq/xIFV1FuW/v63Qjg0/s3rKzHgViUu1a5hwd732d06v16973Vhb/ELn2Auxe3SLet351rWR2H4qGLuOsaaN/vUstc/xyXudkVfFTWKIC7W6nn9m9Y+eJtN09e6r8Z3j3d9xl1vV/nfvS0mnVhA8ygr/I9XbGvE7Z/uvWYO3io2WJrlzG+FttqyQ4O4HVWuU5te3wA9wdkd4v79L43XzPVdWoAEqUGcPV8X6i2W9HbQb/r036/dpdzM9zicN5Gr+nvgt40gnvcqOLuQGxfCx9+zXVsALf3PYQ6lLV+AWYQ3+LSN1gq7sJsdyW3u4RPdTP3/W54OeOBVlVwbjv3Ix6ctel47S55//rLue4p5+nfDd/39mfUPi51V/m5fa+P3bByAEBECy6fkc8AZKlbduMnvHgkp3oMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAh/Z/WiKeq2xCnI4AAAAASUVORK5CYII=</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="Scorer" idx="4" x="208.79999923706055" y="120" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,32,235,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="293" y="340" w="90" collapsed="false">This code creates the start screen by typing &quot;PONG&quot; at the top and &quot;Press Space To Play&quot; at the bottom.</comment><script x="24" y="10"><block s="receiveKey"><l><option>space</option></l></block><block s="setColor"><color>0,32,235,1</color></block><block s="clear"></block><block s="hide"></block><block s="doSetVar"><l>p1score</l><l>0</l></block><block s="doSetVar"><l>p2score</l><l>0</l></block><block s="gotoXY"><l>-200</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p1score"/><l>48</l></custom-block><block s="gotoXY"><l>180</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p2score"/><l>48</l></custom-block><block s="doForever"><script><block s="gotoXY"><l>-200</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p1score"/><l>48</l></custom-block><block s="gotoXY"><l>180</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p2score"/><l>48</l></custom-block><block s="doWait"><l>.1</l></block><block s="clear"></block></script></block></script><comment x="16" y="394" w="174" collapsed="false">This code creates the score board and constantly updates the board to show the current score of the players</comment><script x="14" y="464"><block s="receiveKey"><l><option>space</option></l></block><block s="doForever"><script><block s="doIf"><block s="reportEquals"><block var="p1score"/><l>5</l></block><script><block s="doWait"><l>.2</l></block><block s="setColor"><color>10,0,2,1</color></block><block s="clear"></block><block s="hide"></block><block s="gotoXY"><l>-200</l><l>0</l></block><block s="write"><l>PLAYER 1 WON</l><l>60</l></block><block s="doStopThis"><l><option>all</option></l></block></script></block></script></block></script><script x="252" y="460"><block s="receiveKey"><l><option>space</option></l></block><block s="doForever"><script><block s="doIf"><block s="reportEquals"><block var="p2score"/><l>5</l></block><script><block s="doWait"><l>.2</l></block><block s="setColor"><color>10,0,2,1</color></block><block s="clear"></block><block s="hide"></block><block s="gotoXY"><l>-200</l><l>0</l></block><block s="write"><l>PLAYER 2 WON</l><l>60</l></block><block s="doStopThis"><l><option>all</option></l></block></script></block></script></block></script><comment x="251" y="716" w="90" collapsed="false">This code checks if Player 2 has met the win conditions, and if they have, to display &quot;PLAYER 2 WON&quot;</comment><comment x="10" y="718" w="90" collapsed="false">This code checks if Player 1 has met the win conditions, and if they have, to display &quot;PLAYER 1 WON&quot;</comment><script x="295" y="21"><block s="receiveGo"></block><block s="setColor"><color>0,32,235,1</color></block><block s="clear"></block><block s="hide"></block><block s="gotoXY"><l>-65</l><l>130</l></block><block s="write"><l>PONG</l><l>60</l></block><block s="gotoXY"><l>-60</l><l>-130</l></block><block s="write"><l>Press Space To Play</l><l>12</l></block><block s="doSetVar"><l>p1score</l><l>0</l></block><block s="doSetVar"><l>p2score</l><l>0</l></block><block s="gotoXY"><l>-200</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p1score"/><l>48</l></custom-block><block s="gotoXY"><l>180</l><l>120</l></block><custom-block s="label %txt of size %n"><block var="p2score"/><l>48</l></custom-block></script></scripts></sprite><sprite name="RPaddle" idx="1" x="225" y="0" heading="270" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="97.61399999999999,221.85,0,1" pen="tip" id="143"><costumes><list id="144"><item><costume name="Paddle" center-x="5" center-y="36" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABICAYAAADPomTaAAAAJUlEQVRIie3KoQEAAAjAoP3/tL5gMBJoVM2RKIqiKIqiKIo/cQHSjc1PkWPCCQAAAABJRU5ErkJggg==" id="145"/></item></list></costumes><sounds><list struct="atomic" id="146"></list></sounds><blocks></blocks><variables></variables><scripts><script x="23" y="11"><block s="receiveMessage"><l>reset</l></block><block s="gotoXY"><l>225</l><l>0</l></block><block s="setHeading"><l>270</l></block></script><script x="22" y="107"><block s="receiveKey"><l><option>up arrow</option></l></block><block s="changeYPosition"><l>15</l></block></script><script x="25" y="185"><block s="receiveKey"><l><option>down arrow</option></l></block><block s="changeYPosition"><l>-15</l></block></script><comment x="249" y="27" w="90" collapsed="false">This code resets the right paddle to its starting position</comment><comment x="244" y="100" w="90" collapsed="false">This code moves the right paddle up by 15</comment><comment x="249" y="189" w="90" collapsed="false">This code moves the right paddle down by 15</comment></scripts></sprite><sprite name="Lpaddle" idx="2" x="-225" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="165"><costumes><list id="166"><item><costume name="Paddle" center-x="5" center-y="36" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABICAYAAADPomTaAAAAJUlEQVRIie3KoQEAAAjAoP3/tL5gMBJoVM2RKIqiKIqiKIo/cQHSjc1PkWPCCQAAAABJRU5ErkJggg==" id="167"/></item></list></costumes><sounds><list struct="atomic" id="168"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="23"><block s="receiveMessage"><l>reset</l></block><block s="gotoXY"><l>-225</l><l>0</l></block></script><script x="20" y="109"><block s="receiveKey"><l><option>w</option></l></block><block s="changeYPosition"><l>12</l></block></script><script x="17" y="180"><block s="receiveKey"><l><option>s</option></l></block><block s="changeYPosition"><l>-12</l></block></script><comment x="205" y="98" w="90" collapsed="false">This code moves the left paddle up by 12.</comment><comment x="223" y="179" w="90" collapsed="false">This code moves the paddle down by 12</comment><comment x="204" y="25" w="90" collapsed="false">This code resets the left paddle to it&apos;s starting position</comment></scripts></sprite><sprite name="Ball" idx="3" x="0" y="0" heading="47" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="198.9,35.80199999999999,0,1" pen="tip" id="185"><costumes><list id="186"><item><costume name="Untitled" center-x="8" center-y="7" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAATElEQVQokWNgwAH+m/L+R8a41BHUSJJBhDTjNYRYzVgNIVUzhiEDawC5muGGUGzAwIcBFAiQoVkAPS0ZkKDZAFdqJmgIPs0EwwSbWgCLB4PwLFAReAAAAABJRU5ErkJggg==" id="187"/></item></list></costumes><sounds><list struct="atomic" id="188"></list></sounds><blocks></blocks><variables></variables><scripts><script x="31.000000999999997" y="30"><block s="receiveKey"><l><option>space</option></l></block><block s="setHeading"><l>90</l></block><block s="doForever"><script><block s="doIf"><block s="reportTouchingObject"><l>Lpaddle</l></block><script><custom-block s="Left Random Direction"></custom-block></script></block><block s="doIf"><block s="reportTouchingObject"><l>RPaddle</l></block><script><custom-block s="Right Random Direction"></custom-block></script></block><block s="bounceOffEdge"></block><block s="forward"><l>5</l></block></script></block></script><script x="30" y="273.83333433333337"><block s="receiveKey"><l><option>space</option></l></block><block s="doForever"><script><block s="doIf"><block s="reportGreaterThan"><block s="xPosition"></block><l>225</l></block><script><block s="doChangeVar"><l>p1score</l><l>1</l></block><block s="doWait"><l>1</l></block></script></block></script></block></script><script x="30.000001999999995" y="442.66666866666674"><block s="receiveKey"><l><option>space</option></l></block><block s="doForever"><script><block s="doIf"><block s="reportLessThan"><block s="xPosition"></block><l>-225</l></block><script><block s="doChangeVar"><l>p2score</l><l>1</l></block><block s="doWait"><l>1</l></block></script></block></script></block></script><script x="27.000000999999997" y="600"><block s="receiveGo"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doBroadcastAndWait"><l>reset</l></block></script><comment x="247.000001" y="81" w="90" collapsed="false">This code make the ball start moving towards the right paddle, this code also make the ball move in a radom direction whenever the ball touches a paddle.</comment><comment x="244.000001" y="315" w="90" collapsed="false">This code increases player one&apos;s score by one point when the ball passes through    X= 225</comment><comment x="252.000001" y="610" w="90" collapsed="false">This code tells the ball to go to it&apos;s starting position, it also tells the paddles and scorer to reset.</comment><comment x="236.000001" y="459" w="90" collapsed="false">This code increases player two&apos;s score by one point when the ball passes through    X= -225</comment></scripts></sprite><watcher scope="Lpaddle" s="yPosition" style="normal" x="117.5" y="13.5" color="74,108,212" hidden="true"/><watcher var="p1score" style="normal" x="5" y="5" color="243,118,29" hidden="true"/><watcher var="p2score" style="normal" x="5" y="15.500001000000005" color="243,118,29" hidden="true"/><watcher scope="Ball" s="xPosition" style="normal" x="90.5" y="152.000002" color="74,108,212" hidden="true"/><watcher scope="Ball" s="yPosition" style="normal" x="5" y="26.000001999999995" color="74,108,212" hidden="true"/><watcher scope="Ball" s="direction" style="normal" x="5" y="36.50000299999999" color="74,108,212" 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>de:drucke _ in Größe _&#xD;ca:etiqueta _ de mida _&#xD;es:etiqueta _ de tamaño _&#xD;fr:étiquette _ d&apos;une taille de _&#xD;</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="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?&#xD;ca:_ buida?&#xD;es:_ vacía?&#xD;fr:_ vide?&#xD;</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>de:behalte Elemente, die _ aus _&#xD;ca:manté els elements on _ de _&#xD;es:mantener los elementos donde _ de _&#xD;fr:garder les items tels que _ de _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><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-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _&#xD;ca:combina amb _ els elements de _&#xD;es:combinar con _ los elementos de _&#xD;fr:combine avec _ les items de _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><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-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>de:wenn _ dann _ sonst _&#xD;ca:si _ llavors _ si no _&#xD;es:si _ entonces _ sino _&#xD;fr:si _ alors _ sinon _&#xD;</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>de:für _ = _ bis _ _&#xD;ca:per _ = _ fins _ _&#xD;es:para _ = _ hasta _ _&#xD;fr:pour _ allant de _ à _ _&#xD;</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>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><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-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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>de:wirf _&#xD;ca:llança _&#xD;es:lanzar _&#xD;fr:lance _&#xD;</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>de:fange _ _&#xD;ca:agafa _ _&#xD;es:atrapar _ _&#xD;fr:attrape _ _&#xD;</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>de:wirf _ _&#xD;ca:llança _ _&#xD;es:lanzar _ _&#xD;fr:lance _ _&#xD;</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>de:für jedes _ von _ _&#xD;ca:per cada _ de _ _&#xD;es:para cada _ de _ _&#xD;fr:pour chaque _ de _ _&#xD;</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>de:falls _ dann _ und pause $pause-1-255-220-0&#xD;ca:si _ fes _ i atura-ho tot $pause-1-255-220-0&#xD;es:si _ haz _ y páralo todo $pause-1-255-220-0&#xD;fr:si _ faire _ et mettre tout en pause $pause-1-255-220-0&#xD;</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>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations>de:ignoriere _&#xD;ca:ignora _&#xD;es:ignorar _&#xD;fr:ignore _&#xD;</translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %&apos;from&apos; to %&apos;to&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:Zahlen von _ bis _&#xD;ca:nombres des de _ a _&#xD;es:números de _ a _&#xD;fr:nombres de _ à _&#xD;</translations><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %&apos;func&apos; over %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _&#xD;ca:mapeja _ sobre _&#xD;es:mapear _ sobre _&#xD;fr:appliquer _ à _&#xD;</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="hi" type="command" category="sensing"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="Right Random Direction" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setHeading"><block s="reportRandom"><l>195</l><l>345</l></block></block></script><scripts><script x="38" y="176"><block s="doWait"><l>.05</l></block></script></scripts></block-definition><block-definition s="Left Random Direction" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setHeading"><block s="reportRandom"><l>15</l><l>165</l></block></block></script></block-definition></blocks><variables><variable name="p1score"><l>0</l></variable><variable name="p2score"><l>0</l></variable></variables></project><media name="PONG" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>