<snapdata remixID="13464594"><project name="PONG Final Exam" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="PONG Final Exam"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Start display" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="hide"></block><block s="doHideVar"><l>p1 points</l></block><block s="doHideVar"><l>p2 score</l></block><block s="doSetVar"><l>p1 points</l><l>0</l></block><block s="doSetVar"><l>p2 score</l><l>0</l></block><block s="doSetVar"><l>velocity</l><l>3</l></block><block s="doSetVar"><l>start</l><block s="reportRandom"><l>1</l><l>2</l></block></block><block s="gotoXY"><l>0</l><l>0</l></block></script></block-definition><block-definition s="Winner" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doForever"><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="p1 points"/><l>5</l></list></block><script><block s="doSayFor"><l>Game Over, Player 1 has won</l><l>4</l></block><block s="doSayFor"><l>Press green flag to restart the game</l><l>2</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p2 score"/><l>5</l></list></block><script><block s="doSayFor"><l>Game Over, Player 2 has won</l><l>4</l></block><block s="doSayFor"><l>Press green flag to restart the game</l><l>2</l></block></script><list></list></block></script></block></script></block-definition><block-definition s="scoring" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportTouchingObject"><l>Left Wall</l></block><script><block s="doSetVar"><l>velocity</l><l>0</l></block><block s="doChangeVar"><l>p2 score</l><l>1</l></block><block s="setXPosition"><l>-228</l></block><block s="doWait"><l>1</l></block><block s="doChangeVar"><l>velocity</l><l>1</l></block></script><list></list></block><block s="doIf"><block s="reportTouchingObject"><l>Right Wall</l></block><script><block s="doSetVar"><l>velocity</l><l>0</l></block><block s="doChangeVar"><l>p1 points</l><l>1</l></block><block s="setXPosition"><l>228</l></block><block s="doWait"><l>1</l></block></script><list></list></block></script></block-definition><block-definition s="start code" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="show"></block><block s="doShowVar"><l>p1 points</l></block><block s="doShowVar"><l>p2 score</l></block><block s="doSetVar"><l>start</l><block s="reportRandom"><l>1</l><l>2</l></block></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="start"/><l>1</l></list></block><script><block s="setHeading"><block s="reportRandom"><l>220</l><l>310</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="start"/><l>2</l></list></block><script><block s="setHeading"><block s="reportRandom"><l>40</l><l>140</l></block></block></script><list></list></block><block s="doWait"><l>1</l></block><block s="doForever"><script><block s="forward"><block var="velocity"/></block></script></block></script></block-definition><block-definition s="floor" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Floor</l></block><block s="reportVariadicLessThan"><list><block s="direction"></block><l>180</l></list></block></list></block><script><block s="setHeading"><l>35</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Floor</l></block><block s="reportVariadicLessThan"><list><l>180</l><block s="direction"></block></list></block></list></block><script><block s="setHeading"><l>315</l></block></script><list></list></block></script></block-definition><block-definition s="right wall" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Right Wall</l></block><block s="reportVariadicLessThan"><list><block s="direction"></block><l>180</l></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>270</l><l>340</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Right Wall</l></block><block s="reportVariadicLessThan"><list><l>180</l><block s="direction"></block></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>270</l><l>340</l></block></block></script><list></list></block></script></block-definition><block-definition s="ceiling" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Ceiling</l></block><block s="reportVariadicLessThan"><list><block s="direction"></block><l>180</l></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>195</l><l>255</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Ceiling</l></block><block s="reportVariadicLessThan"><list><l>180</l><block s="direction"></block></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>105</l><l>165</l></block></block></script><list></list></block></script></block-definition><block-definition s="left wall" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Left Wall</l></block><block s="reportVariadicLessThan"><list><block s="direction"></block><l>180</l></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>20</l><l>75</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportTouchingObject"><l>Left Wall</l></block><block s="reportVariadicLessThan"><list><l>180</l><block s="direction"></block></list></block></list></block><script><block s="setHeading"><block s="reportRandom"><l>105</l><l>165</l></block></block></script><list></list></block></script></block-definition><block-definition s="P1 paddle" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><l>270</l><block s="direction"></block></list></block><block s="reportTouchingObject"><l>P1</l></block></list></block><script><block s="bounceOffEdge"></block><block s="doChangeVar"><l>velocity</l><l>0.75</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="direction"></block><l>270</l></list></block><block s="reportTouchingObject"><l>P1</l></block></list></block><script><block s="bounceOffEdge"></block><block s="doChangeVar"><l>velocity</l><l>0.75</l></block></script><list></list></block></script></block-definition><block-definition s="P2 Paddle" type="command" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><l>90</l><block s="direction"></block></list></block><block s="reportTouchingObject"><l>P2</l></block></list></block><script><block s="bounceOffEdge"></block><block s="doChangeVar"><l>velocity</l><l>0.75</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block s="direction"></block><l>90</l></list></block><block s="reportTouchingObject"><l>P2</l></block></list></block><script><block s="bounceOffEdge"></block><block s="doChangeVar"><l>velocity</l><l>0.75</l></block></script><list></list></block></script></block-definition><block-definition s="starting" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="hide"></block><block s="doHideVar"><l>p1 points</l></block><block s="doHideVar"><l>p2 score</l></block><block s="doSetVar"><l>p1 points</l><l>0</l></block><block s="doSetVar"><l>p2 score</l><l>0</l></block><block s="doSetVar"><l>velocity</l><l>3</l></block><block s="doSetVar"><l>start</l><block s="reportRandom"><l>1</l><l>2</l></block></block><block s="gotoXY"><l>0</l><l>0</l></block></script></block-definition><block-definition s="-10%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>90</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="-20%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>80</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="-30%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>70</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="size randomizer %&apos;p2&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>p2</l><block s="reportNewList"><list><custom-block s="-10%"></custom-block><custom-block s="-20%"></custom-block><custom-block s="-30%"></custom-block><custom-block s="-40%"></custom-block></list></block></block><block s="doForEach"><l>item</l><block var="p2"/><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="p2 score"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block var="p2 score"/><l>2</l></list></block></list></block><script><block s="changeScale"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="p2 size"/></block></block></script><script><block s="changeScale"><block s="reportListItem"><block s="reportRandom"><l>5</l><l>6</l></block><block var="p2 size"/></block></block></script></block></script></block></script></block-definition><block-definition s="-40%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>60</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="+10%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>110</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="+20%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>120</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="+30%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>130</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="+40%" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="setScale"><l>140</l></block><block s="doReport"><block s="getScale"></block></block></script></block-definition><block-definition s="size randomizer 1 %&apos;p1&apos;" type="command" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>p1</l><block s="reportNewList"><list><custom-block s="-10%"></custom-block><custom-block s="-20%"></custom-block><custom-block s="-30%"></custom-block><custom-block s="-40%"></custom-block><custom-block s="+10%"></custom-block><custom-block s="+20%"></custom-block></list></block></block><block s="doForEach"><l>item</l><block var="p1"/><script><block s="doIfElse"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="p1 points"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block var="p1 points"/><l>2</l></list></block></list></block><script><block s="changeScale"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="p1 size"/></block></block></script><script><block s="changeScale"><block s="reportListItem"><block s="reportRandom"><l>5</l><l>6</l></block><block var="p1 size"/></block></block></script></block></script></block></script></block-definition><block-definition s="play agains" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doAsk"><l>Do you want to Play Again? Press 1 for Yes and 2 For No</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l>1</l></list></block><script><block s="doSetVar"><l>p1 points</l><l>0</l><comment w="90" collapsed="false">Initialization</comment></block><block s="doSetVar"><l>p2 score</l><l>0</l></block><block s="doSetVar"><l>velocity</l><l>2</l></block><block s="doSetVar"><l>game win 2</l><block s="reportNewList"><list><l>Victory tastes even sweeter! Player 2 Champions</l><l>CONGRATS PLAYER 2</l><l>Winner Winner Player 2</l><l>Player 2 WINS</l></list></block></block><block s="doSetVar"><l>game win 1</l><block s="reportNewList"><list><l>Victory tastes even sweeter! Player 1 Champions</l><l>CONGRATS PLAYER 1</l><l>Winner Winner Player 1</l><l>Player 1 WINS</l></list></block><comment w="90" collapsed="false">Winning Messages List</comment></block><block s="doSetVar"><l>P1 Point Win</l><block s="reportNewList"><list><l>Point for Player 1</l><l>BANG! Player 1 +1</l><l>Player 1 SCORES!</l><l>I think P1 just SCORED</l></list></block></block><block s="doSetVar"><l>P2 Point Win</l><block s="reportNewList"><list><l>Point for Player 2</l><l>BANG! Player 2 +1</l><l>Player 2 SCORES!</l><l>I think P2 just SCORED</l></list></block></block><block s="setScale"><l>50</l></block><block s="doSayFor"><l>Hi welcome to the two player retro game PONG. The game will start briefly</l><l>7</l></block><block s="doGlide"><l>1</l><l>0</l><l>0</l><comment w="90" collapsed="false">Start Game</comment></block><block s="doWait"><l>2</l></block><block s="setHeading"><block s="reportRandom"><l>60</l><l>120</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="getLastAnswer"></block><l>2</l></list></block><script><block s="doStopThis"><l><option>all</option></l></block></script><list></list></block></script></block-definition></blocks><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="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="751"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="752"></list></costumes><sounds><list struct="atomic" id="753"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="3"><sprite name="Ball" idx="2" x="220.92116482859637" y="-93.77547083742684" heading="113" scale="0.5" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="758"><costumes><list id="759"><item><ref mediaID="Ball_cst_costume"></ref></item></list></costumes><sounds><list struct="atomic" id="760"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30"><block s="receiveGo"><comment w="90" collapsed="false">add comment here...</comment></block><block s="doSetVar"><l>p1 points</l><l>0</l><comment w="90" collapsed="false">Initialization</comment></block><block s="doSetVar"><l>p2 score</l><l>0</l></block><block s="doSetVar"><l>velocity</l><l>2</l></block><block s="doSetVar"><l>game win 2</l><block s="reportNewList"><list><l>Victory tastes even sweeter! Player 2 Champions</l><l>CONGRATS PLAYER 2</l><l>Winner Winner Player 2</l><l>Player 2 WINS</l></list></block></block><block s="doSetVar"><l>game win 1</l><block s="reportNewList"><list><l>Victory tastes even sweeter! Player 1 Champions</l><l>CONGRATS PLAYER 1</l><l>Winner Winner Player 1</l><l>Player 1 WINS</l></list></block><comment w="90" collapsed="false">Winning List</comment></block><block s="doSetVar"><l>P1 Point Win</l><block s="reportNewList"><list><l>Point for Player 1</l><l>BANG! Player 1 +1</l><l>Player 1 SCORES!</l><l>I think P1 just SCORED</l></list></block></block><block s="doSetVar"><l>P2 Point Win</l><block s="reportNewList"><list><l>Point for Player 2</l><l>BANG! Player 2 +1</l><l>Player 2 SCORES!</l><l>I think P2 just SCORED</l></list></block></block><block s="setScale"><l>50</l></block><block s="doSayFor"><l>Hi welcome to the two player retro game PONG. The game will start briefly</l><l>4</l></block><block s="doGlide"><l>1</l><l>0</l><l>0</l><comment w="90" collapsed="false">Start Game Intro</comment></block><block s="doWait"><l>2</l></block><block s="setHeading"><block s="reportRandom"><l>60</l><l>120</l></block></block><block s="doForever"><script><block s="forward"><block var="velocity"/></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportTouchingObject"><l>P1</l></block><block s="reportTouchingObject"><l>P2</l></block></list></block><script><block s="setHeading"><block s="reportDifference"><l>360</l><block s="direction"></block></block><comment w="90" collapsed="false">Changes Speed of Ball after each hit</comment></block><block s="doChangeVar"><l>velocity</l><l>0.5</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="xPosition"></block><l>-220</l></list></block><script><block s="doSayFor"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="P2 Point Win"/></block><l>2</l><comment w="90" collapsed="false">P2 Point Awarding</comment></block><block s="doGlide"><l>3</l><l>0</l><l>0</l></block><block s="doChangeVar"><l>p2 score</l><l>1</l></block><block s="doSetVar"><l>velocity</l><l>2</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="p1 points"/><block var="p2 score"/></list></block><script><block s="setHeading"><block s="reportRandom"><l>225</l><l>315</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="p2 score"/><block var="p1 points"/></list></block><script><block s="setHeading"><block s="reportRandom"><l>60</l><l>120</l></block></block></script><list></list><comment w="90" collapsed="false">decides where ball goes at restart</comment></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="xPosition"></block><l>220</l></list></block><script><block s="doSayFor"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="P1 Point Win"/></block><l>2</l></block><block s="doGlide"><l>3</l><l>0</l><l>0</l><comment w="90" collapsed="false">P1 Point Awarding</comment></block><block s="doChangeVar"><l>p1 points</l><l>1</l></block><block s="doSetVar"><l>velocity</l><l>2</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="p1 points"/><block var="p2 score"/></list></block><script><block s="setHeading"><block s="reportRandom"><l>225</l><l>315</l></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="p2 score"/><block var="p1 points"/></list></block><script><block s="setHeading"><block s="reportRandom"><l>60</l><l>120</l></block></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p1 points"/><l>3</l></list></block><script><block s="doSayFor"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="game win 1"><comment w="90" collapsed="false">Closure</comment></block></block><l>2</l></block><custom-block s="play agains"></custom-block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="p2 score"/><l>3</l></list></block><script><block s="doSayFor"><block s="reportListItem"><block s="reportRandom"><l>1</l><l>4</l></block><block var="game win 2"/></block><l>2</l><comment w="90" collapsed="false">Closure</comment></block><custom-block s="play agains"></custom-block></script><list></list></block><block s="bounceOffEdge"><comment w="90" collapsed="false">how ball bounces</comment></block></script></block></script></scripts></sprite><sprite name="P1" idx="3" x="-220" y="-16" heading="90" scale="1.2" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1028"><costumes><list id="1029"><item><ref mediaID="P1_cst_costume"></ref></item></list></costumes><sounds><list struct="atomic" id="1030"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="doGlide"><l>1</l><l>-220</l><l>0</l><comment w="90" collapsed="false">Paddle Initialization</comment></block><block s="setScale"><l>100</l></block><block s="doRepeat"><l>5</l><script><custom-block s="size randomizer 1 %s"><block var="p1 size"/><comment w="90" collapsed="false">Changes SIze of Paddle based on points</comment></custom-block></script></block><block s="doForever"><script><block s="doIf"><block s="reportKeyPressed"><l><option>w</option></l></block><script><block s="changeYPosition"><l>4</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>s</option></l></block><script><block s="changeYPosition"><l>-4</l></block></script><list></list><comment w="90" collapsed="false">User Input: Paddle Movement</comment></block></script></block></script><comment x="423.654296875" y="37" w="356" collapsed="false">JEREMY STRAUSE AND KINGSTON HUA</comment><comment x="825" y="373" w="356" collapsed="false">JEREMY STRAUSE AND KINGSTON HUA</comment></scripts></sprite><sprite name="P2" idx="1" x="220" y="64" heading="90" scale="0.6" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="1070"><costumes><list id="1071"><item><ref mediaID="P2_cst_costume"></ref></item></list></costumes><sounds><list struct="atomic" id="1072"></list></sounds><blocks></blocks><variables></variables><scripts><script x="29" y="10"><block s="receiveGo"></block><block s="doGlide"><l>1</l><l>220</l><l>0</l><comment w="90" collapsed="false">Paddle Initialization</comment></block><block s="setScale"><l>100</l></block><block s="doRepeat"><l>5</l><script><custom-block s="size randomizer %s"><block var="p2 size"><comment w="90" collapsed="false">Paddle Sze Randomizer based on points.</comment></block></custom-block></script></block><block s="doForever"><script><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="changeYPosition"><l>4</l></block></script><list></list></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l><comment w="90" collapsed="false">User Input: Paddle Movement</comment></block><script><block s="changeYPosition"><l>-4</l></block></script><list></list></block></script></block></script></scripts></sprite><watcher var="velocity" style="normal" x="-1" y="26.00000399999999" color="243,118,29" hidden="true"/><watcher var="P2 Point Win" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="game win 2" style="normal" x="10" y="103.000002" color="243,118,29" hidden="true"/><watcher var="p1 size" style="normal" x="10" y="196.00000399999996" color="243,118,29" hidden="true"/><watcher var="p2 size" style="normal" x="10" y="289.000006" color="243,118,29" hidden="true"/><watcher var="p2 score" style="normal" x="381" y="2.000001999999995" color="243,118,29"/><watcher var="p1 points" style="normal" x="-1" y="2" color="243,118,29"/></sprites></stage><variables><variable name="p1 points"><l>0</l></variable><variable name="p2 score"><l>0</l></variable><variable name="velocity"><l>2</l></variable><variable name="P1 Point Win"><list struct="atomic" id="1120">Point for Player 1,BANG! Player 1 +1,Player 1 SCORES!,I think P1 just SCORED</list></variable><variable name="P2 Point Win"><list struct="atomic" id="1121">Point for Player 2,BANG! Player 2 +1,Player 2 SCORES!,I think P2 just SCORED</list></variable><variable name="game win 1"><list struct="atomic" id="1122">Victory tastes even sweeter! Player 1 Champions,CONGRATS PLAYER 1,Winner Winner Player 1,Player 1 WINS</list></variable><variable name="game win 2"><list struct="atomic" id="1123">Victory tastes even sweeter! Player 2 Champions,CONGRATS PLAYER 2,Winner Winner Player 2,Player 2 WINS</list></variable><variable name="p1 size"><list struct="atomic" id="1124">-10%,-20%,-30%,-40%,+10%,+20%,+30%,+40%</list></variable><variable name="p2 size"><list struct="atomic" id="1125">90,80,70,60</list></variable></variables></scene></scenes></project><media name="PONG Final Exam" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="costume" center-x="21" center-y="21.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAArCAYAAAAOnxr+AAAAAXNSR0IArs4c6QAAArlJREFUWEftmU2oTkEYx3/XR1LYWJAFFlggSkQpUT4SG0KIjSIUCwuUj8JVWFhQiLIhhNiQpNybUkSKsMBCFqKssHJdzL/m3Oa+nfueOec87p3Fnc37vr0z/+fXc848M/OfFuq32cB0YAIwGhjmJX8CX4APwEvgaZ1QLRUHrwJWu+BLgeGRGj+Ae8AN4GbkmK5uZUF3ATuA8WUDNfT/CJwGTsbqxIIqg0eBSbHCkf3eAftiMhwDegbYFhm4arezwPZmg5uBjgGuAvOqRi857hGwDvicN64n0HHAXffiTykZrG73N8ByQO9wt5YHOgJoA2bUjVpx/AtgAfA9HJ8HesvVvRUVg1gNuw2sbAa6BzhmFa2mzl7geKYRZnSyK+J6R1JqmiNvBRSCXvGzLiVQVZ31IehM4FlKhAHLLFcJnmcZVcHdmijoOS04Ah0CaMMwOFHQDm18BLoQeJAoZIa1SKCHgIOJgx4W6EO/EqTM2ibQXwm/n1nyOgT6N+VUhitTP6jlk+p/9JbZzNb638BAa2FjvU49eu3m5xsLW8u1C/QIsN9a2VivVaCLgfvGwtZySwQ6FJBPNMBa3Ujvj/ysbD96HthsJGwtc8Gd9bdkoHLknlhHMNKbIycwPDNd9w6dkb6JjJy/NeGZSd+neR/TJIKRiHzXV42g+q0ypXKVQjsAtIa7p0aoO+5EuqyPSeV7yYPqanmWzki3UrU7z3JqH8G+9ieOb0Wg+n+id/P02ZvtvX+a+uzWmvmjsr+vOd9dpas3mi4j1uZZjnmTqRFIuyotBpv+M+lFFXWgs6c4Mda4xm7wHv5YY+BP3sO/XKQbCyqdQcBuYCcwqki44P+vwCnghCuJ2g8XtjKgodhGQDclumeKtYJkzeieSXdMlwrJSkymGC1lea6/uVOFyLu50wzWzd3j2OzlBf4HVrplOGJBoGAAAAAASUVORK5CYII=" mediaID="Ball_cst_costume"/><costume name="costume" center-x="6" center-y="30" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA8CAYAAABSD1tKAAAAAXNSR0IArs4c6QAAAEVJREFUSEtjZJA+WsNAAmBkkDr2nwT1DKMaiAmt0VAaDSUcITCaNEaTxmjSQITAaH4YzQ+j+WE0Pwy+Zqjk8WZisiZMDQB6F2+Cd0stogAAAABJRU5ErkJggg==" mediaID="P1_cst_costume"/><costume name="costume" center-x="6" center-y="30" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAA8CAYAAABSD1tKAAAAAXNSR0IArs4c6QAAAEVJREFUSEtjZJA+WsNAAmBkkDr2nwT1DKMaiAmt0VAaDSUcITCaNEaTxmjSQITAaH4YzQ+j+WE0Pwy+Zqjk8WZisiZMDQB6F2+Cd0stogAAAABJRU5ErkJggg==" mediaID="P2_cst_costume"/></media></snapdata>