<snapdata remixID="8542212"><project name="ITP Game of Pong Project Start this is it" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAE/0lEQVR4Xu2dz2tUZxSGz02sVhqiiaOtSBaKilIXElpaEXRl60JcWJFudCOG+hcIgmsXrty0RAS3brIRurCBIkbEEhQXtuAPjIgK1UlMoqLJ0BmZCZMyXUju6Zl8vpdnVhLmO997nvdhzI2iWa1WqxkvCCQikCFgIvJc2yCAgIiQlAACJsXP5QiIA0kJIGBS/FyOgDiQlAACJsXP5QiIA0kJ/G8Bl28Zt3czNauNlZIuwuWLR2D4WsW+OzzVcqG3f7eAuw5N2choxUYvrbSv908i4OL1n/Sm+p+bdWwo27M/em3tmo5GlqWbytb1WWYTt1flzuYWsH7p7P2SlV9WbXX/BALmRq954Ifj0zY8UrHpO//K9upNzbq3jbsccAvYxIeAmiJ5U2fry3budJcd+/HTxohnf1dt3bcTjV+/uNVrpZ65T8WFvhBwoaR4X4NAXcC/hnts68ZOO3nmjZ3++a2Vb62yUv+4Xbm4wnZ/80kuUgiYCxdvbgrYv2+y5eGz/nUExI+2E6iLVn99ubnT7lzumb+v/vWHV3tsfV9nrgx8AubCxZvrDxsruzN7fL13HkbzydjzoxgExKlcBK7frNjOg1MtT7zfH5my30Yqi/sU3Pwo/m96z/cBuQjw5uQEmt2f+Gm5nb3wrvG9YOVByZbk+9137qGGvxGdvE/JAL/+Pmv7jk7bgb1LbeiXbvcOCOhGx8EIAggYQZEZbgII6EbHwQgCCBhBkRluAgjoRsfBCAIIGEGRGW4CCOhGx8EIAggYQZEZbgII6EbHwQgCCBhBkRluAgjoRsfBCAIIGEGRGW4CCOhGx8EIAggYQZEZbgII6EbHwQgCCBhBkRluAgjoRsfBCAIIGEGRGW4CCOhGx8EIAggYQZEZbgII6EbHwQgCCBhBkRluAgjoRsfBCAIIGEGRGW4CCOhGx8EIAggYQZEZbgII6EbHwQgCCBhBkRluAi0CZlk2P2hwcNAGBgbcgzkIgSaBD3mFgHjSdgII2HbEXPAhAgiIH0kJIGBS/FyOgDiQlAACJsXP5QiIA0kJIGBS/FyOgO1w4PlTs7G7Zit6zbZsb8cNhZmJgMFVzszM2LLdn5tVq3OTd+wxOzsUfEtxxiFgcJevTw1Y1+WLrVMv/Wn2RV/wTcUYh4DRPR76yuzRvdapNybNOvL9X7nRsT7WeQgY3cyTMbOD/WbVf+Ym920wG7odfUth5iFgG6qszM5aduGMLRm9YnZ+uA03FGckAhanS8lNEFCytuKERsDidCm5CQJK1lac0AhYnC4lN0FAydqKExoBi9Ol5CYIKFlbcUIjYHG6lNxkwQJKbkdoaQL8ywjS9emHR0D9DqU3QEDp+vTDI6B+h9IbIKB0ffrhEVC/Q+kNEFC6Pv3wCKjfofQGCChdn354BNTvUHoDBJSuTz88Aup3KL0BAkrXpx8eAfU7lN4AAaXr0w+PgPodSm+AgNL16YdHQP0OpTdAQOn69MMjoH6H0hsgoHR9+uERUL9D6Q0QULo+/fAIqN+h9AYIKF2ffngE1O9QegMElK5PPzwC6ncovQECStenHx4B9TuU3gABpevTD4+A+h1Kb4CA0vXph0dA/Q6lN0BA6fr0wyOgfofSGyCgdH364RFQv0PpDRBQuj798Aio36H0BggoXZ9+eATU71B6AwSUrk8/PALqdyi9AQJK16cfHgH1O5TeAAGl69MP/x6WeTLGhotmAQAAAABJRU5ErkJggg==</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,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gACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgIKuECIViBAgACBfAIKOF9mJiZAgACBAgL/DxTfrIfYAMDQAAAAAElFTkSuQmCC</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="Rpaddle" idx="3" x="225.0000000000007" y="-0.5217391304348419" 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="Paddle" center-x="5" center-y="36" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABICAYAAADPomTaAAAAOElEQVRIS2NkYGD4z0AEYBxViC+URoMHbxoaDZ7R4MEIgdFEMZooRhMFOARGs8JoVhjNCiM4KwAA6TVIActDoNAAAAAASUVORK5CYII=" id="10"/></item></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="46" y="30"><block s="receiveMessage"><l>reset</l></block><block s="gotoXY"><l>225</l><l>0</l><comment w="250" collapsed="false">Send the paddle to the starting position once it resets.</comment></block><block s="doForever"><script><block s="doIf"><block s="reportAnd"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><block s="reportGreaterThan"><block s="yPosition"></block><l>-144</l></block></block><script><block s="changeYPosition"><block s="reportProduct"><l>-1</l><block var="paddleSpeed"/></block></block></script><comment w="197" collapsed="false">If the up or down arrow key is pressed, the paddle will move a set distance up or down, respectively, and since its in a forever loop it is a smooth continuous motion.</comment></block><block s="doIf"><block s="reportAnd"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><block s="reportLessThan"><block s="yPosition"></block><l>144</l></block></block><script><block s="changeYPosition"><block var="paddleSpeed"/></block></script></block></script></block></script></scripts></sprite><sprite name="Ball" idx="4" x="-7.117784622570742e-13" y="-0.5217391304348122" heading="163" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="0,32,235,1" pen="tip" id="56"><costumes><list id="57"><item><costume name="Untitled" center-x="8" center-y="7" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAf0lEQVQ4T2NkwAH+m/L+R5ZiPP2ZEZtSDEF0jeia0A1CMYCQZphhyIbADSBWM7ohYANI1YxsyCAwgFznw71BsQGDIxAZGBgE/pvyvseVrLEm4dOfBRkYGD4gp0SD/6a854kxhPH0Z0MGBoYLILXoeYGgIciasRkAdgCumMGWIwF14TuQ+fCrFgAAAABJRU5ErkJggg==" id="58"/></item></list></costumes><sounds><list struct="atomic" id="59"></list></sounds><blocks></blocks><variables></variables><scripts><script x="10" y="1584.6666696666666"><block s="doBroadcast"><l>score</l></block></script><script x="26.999997000000008" y="36"><block s="receiveGo"><comment w="90" collapsed="false">When the green flag is clicked, all other scripts are stopped, the ball is sent to the center, the ball/paddle speed is set, and lastly reset is broadcasted</comment></block><block s="doStopThis"><l><option>all but this script</option></l></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doSetVar"><l>speed</l><l>8</l></block><block s="doSetVar"><l>paddleSpeed</l><l>7</l></block><block s="doBroadcastAndWait"><l>reset</l></block></script><script x="29.000000999999997" y="220"><block s="receiveMessage"><l>reset</l><comment w="90" collapsed="false">After the someone scores a point, the scorer sprite broadcasts reset and then this script simply moves the ball to the center and stops other scripts in this sprite</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><script x="355.000001" y="10"><block s="receiveKey"><l><option>space</option></l></block><block s="doSetVar"><l>edge counter</l><block s="reportRandom"><l>1</l><l>2</l></block><comment w="199.999999" collapsed="false">From here till the forever block: All of this code is to randomize the intial ball angle and set the ball direction according to that, which helps figure who scores. The first if statement makes sure the ball isn&apos;t pointed at too extreme of an angle. The second if statement just sets the ball direction correctly.</comment></block><block s="doIfElse"><block s="reportEquals"><block var="edge counter"/><l>1</l></block><script><block s="setHeading"><block s="reportRandom"><l>195</l><l>345</l></block></block></script><script><block s="setHeading"><block s="reportRandom"><l>15</l><l>165</l></block></block></script></block><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block s="direction"></block><l>0</l></block><block s="reportLessThan"><block s="direction"></block><l>180</l></block></block><script><block s="doSetVar"><l>ball direction</l><l>1</l></block></script><script><block s="doSetVar"><l>ball direction</l><l>-1</l></block></script></block><block s="doForever"><script><block s="forward"><block var="speed"/><comment w="336.9999999999999" collapsed="false">Every time the forever loop repeats the ball moves a set amount of units making it move continuously.</comment></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block s="xPosition"></block><l>-230</l></block><block s="reportGreaterThan"><block s="xPosition"></block><l>230</l></block></block><script><block s="doBroadcast"><l>score</l><comment w="328.9999999999999" collapsed="false">If the ball is past either paddles, then broadcast score which triggers a script in the scorer sprite and stop this script from continuing to run</comment></block><block s="doStopThis"><l><option>this script</option></l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block s="yPosition"></block><l>-170</l></block><block s="reportGreaterThan"><block s="yPosition"></block><l>170</l></block></block><script><block s="bounceOffEdge"></block></script><comment w="275.9999999999999" collapsed="false">If the ball hits the bottom or top of the stage, bounce.</comment></block><block s="doIf"><block s="reportTouchingObject"><l>LPaddle</l></block><script><block s="setHeading"><block s="reportProduct"><block s="direction"></block><l>-1</l></block></block><block s="forward"><block var="speed"/></block><block s="doSetVar"><l>ball direction</l><l>1</l></block></script><comment w="339" collapsed="false">If the ball hits the left paddle, point in the opposite direction to make it look like it bounced, and then set ball direction to 1 since it is moving to the right. now.</comment></block><block s="doIf"><block s="reportTouchingObject"><l>Rpaddle</l></block><script><block s="setHeading"><block s="reportProduct"><block s="direction"></block><l>-1</l></block></block><block s="forward"><block var="speed"/></block><block s="doSetVar"><l>ball direction</l><l>-1</l></block></script><comment w="339" collapsed="false">Same thing as the above script except ball direction is set to ball direction is set to -1 since the ball is traveling to the left not.</comment></block></script></block></script><comment x="700.000002" y="204.000001" w="189.9999999999999" collapsed="false">Ball direction is how I know who scores by tracking if the ball is traveling left or right. 1 = right and -1 = left</comment></scripts></sprite><sprite name="LPaddle" idx="1" x="-224.99999999999974" y="-0.5217391304348419" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="97.61399999999999,221.85,0,1" pen="tip" id="210"><costumes><list id="211"><item><costume name="Paddle" center-x="5" center-y="36" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABICAYAAADPomTaAAAAOElEQVRIS2NkYGD4z0AEYBxViC+URoMHbxoaDZ7R4MEIgdFEMZooRhMFOARGs8JoVhjNCiM4KwAA6TVIActDoNAAAAAASUVORK5CYII=" id="212"/></item></list></costumes><sounds><list struct="atomic" id="213"></list></sounds><blocks></blocks><variables></variables><scripts><script x="38" y="42"><block s="receiveMessage"><l>reset</l></block><block s="gotoXY"><l>-225</l><l>0</l><comment w="375" collapsed="false">Send the paddle to the starting position once it resets</comment></block><block s="doForever"><script><block s="doIf"><block s="reportAnd"><block s="reportKeyPressed"><l><option>s</option></l></block><block s="reportGreaterThan"><block s="yPosition"></block><l>-144</l></block></block><script><block s="changeYPosition"><block s="reportProduct"><l>-1</l><block var="paddleSpeed"/></block></block></script><comment w="185" collapsed="false">If the s or w key is pressed, the paddle will move a set distance up or down, respectively, and since its in a forever loop it is a smooth continuous motion.</comment></block><block s="doIf"><block s="reportAnd"><block s="reportKeyPressed"><l><option>w</option></l></block><block s="reportLessThan"><block s="yPosition"></block><l>144</l></block></block><script><block s="changeYPosition"><block var="paddleSpeed"/></block></script></block></script></block></script></scripts></sprite><sprite name="Scorer" idx="2" x="206.65149456521715" y="119.21739130434783" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="0,32,235,1" pen="tip" id="258"><costumes><list struct="atomic" id="259"></list></costumes><sounds><list struct="atomic" id="260"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="16"><block s="receiveGo"><comment w="80" collapsed="false">sets the color of the score label to blue, initializes each score to 0, and displays the score. </comment></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="doBroadcast"><l>reset</l></block></script><script x="402" y="10"><block s="receiveMessage"><l>score</l></block><block s="doIfElse"><block s="reportEquals"><block var="ball direction"/><l>1</l></block><script><block s="doChangeVar"><l>p1score</l><l>1</l></block><block s="clear"></block><block s="setColor"><color>0,32,235,1</color></block><block s="setHeading"><l>90</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><script><block s="doChangeVar"><l>p2score</l><l>1</l></block><block s="clear"></block><block s="setColor"><color>0,32,235,1</color></block><block s="setHeading"><l>90</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><comment w="124" collapsed="false">The if statement is used to discern between which player scored. Then the correct player&apos;s score is increased. If the ball direction is 1, the ball was traveling to the right, and that means player 1 got the point. The else statement is for player 2.</comment></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="p2score"/><l>5</l></block><block s="reportEquals"><block var="p1score"/><l>5</l></block></block><script><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doForever"><script><block s="setColor"><color>0,32,235,1</color></block><block s="gotoXY"><l>-120</l><l>0</l></block><custom-block s="label %txt of size %n"><l>GAME OVER</l><l>48</l></custom-block><block s="doWait"><l>0.5</l></block><block s="setColor"><color>252,255,10,1</color></block><block s="gotoXY"><l>-120</l><l>0</l></block><custom-block s="label %txt of size %n"><l>GAME OVER</l><l>48</l></custom-block><block s="doWait"><l>0.5</l></block></script></block></script><comment w="90" collapsed="false">After the score is updated, if either player has 5 points, the game is stopped and a &quot;GAMEOVER&quot; text is displayed blinking infintely until the green flag is clicked.</comment></block><block s="doBroadcastAndWait"><l>reset</l></block></script></scripts></sprite><watcher scope="Rpaddle" s="yPosition" style="normal" x="82.46398021556718" y="9.47458496093747" color="74,108,212" hidden="true"/><watcher var="p1score" style="normal" x="3.5091055410872514" y="3.5091055410879335" color="243,118,29" hidden="true"/><watcher var="p2score" style="normal" x="3.5091055410872514" y="10.87822787919378" color="243,118,29" hidden="true"/><watcher scope="Ball" s="xPosition" style="normal" x="63.51481029369222" y="106.6768098527163" color="74,108,212" hidden="true"/><watcher var="ball direction" style="normal" x="3.5091055410872514" y="25.61647255540538" color="243,118,29" hidden="true"/><watcher var="speed" style="normal" x="3.5091055410872514" y="32.985594893511234" color="243,118,29" hidden="true"/><watcher var="paddleSpeed" style="normal" x="3.5091055410872514" y="40.35471723161717" color="243,118,29" hidden="true"/><watcher var="edge counter" style="normal" x="0.634105541087365" y="50.830683550632955" color="243,118,29" hidden="true"/><watcher scope="LPaddle" s="direction" style="normal" x="9.583333333332803" y="9.583333333333314" 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></blocks><variables><variable name="p1score"><l>1</l></variable><variable name="p2score"><l>0</l></variable><variable name="edge counter"><l>1</l></variable><variable name="ball direction"><l>1</l></variable><variable name="speed"><l>8</l></variable><variable name="paddleSpeed"><l>7</l></variable></variables></project><media name="ITP Game of Pong Project Start this is it" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>