<snapdata remixID="11379196"><project name="2.6 Project " app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="2.6 Project "><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.000003" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="%&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></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="reportVariadicSum"><list><block var="from"/><l>1</l></list></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></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><stage name="Stage" width="480" height="360" costume="1" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="480"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list id="481"><item><ref mediaID="Stage_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="482"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Left paddle" idx="2" x="-200" y="0" heading="90" scale="0.4" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="487"><costumes><list id="488"><item><ref mediaID="Left paddle_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="489"></list></sounds><blocks></blocks><variables></variables><scripts><script x="26.396396396396398" y="23.73873873873889"><block s="receiveMessage"><l>Reset</l><list></list></block><block s="gotoXY"><l>-200</l><l>0</l></block></script><script x="30" y="118.01801801801804"><block s="receiveGo"></block><block s="doForever"><script><block s="bounceOffEdge"></block><block s="doIf"><block s="reportKeyPressed"><l><option>w</option></l></block><script><block s="changeYPosition"><l>10</l></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>s</option></l></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script></block></script></scripts></sprite><sprite name="Right paddle" idx="3" x="200" y="0" heading="90" scale="0.4" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="521"><costumes><list id="522"><item><ref mediaID="Right paddle_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="523"></list></sounds><blocks></blocks><variables></variables><scripts><script x="45" y="52"><block s="receiveMessage"><l>Reset</l><list></list></block><block s="gotoXY"><l>200</l><l>0</l></block></script><script x="59" y="192"><block s="receiveGo"></block><block s="doForever"><script><block s="bounceOffEdge"></block><block s="doIf"><block s="reportKeyPressed"><l><option>up arrow</option></l></block><script><block s="changeYPosition"><l>10</l></block></script></block><block s="doIf"><block s="reportKeyPressed"><l><option>down arrow</option></l></block><script><block s="changeYPosition"><l>-10</l></block></script></block></script></block></script></scripts></sprite><sprite name="Ball" idx="1" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="255,250,251,1" pen="tip" id="555"><costumes><list id="556"><item><ref mediaID="Ball_cst_Untitled"></ref></item></list></costumes><sounds><list id="557"><item><ref mediaID="Ball_snd_Pop"></ref></item><item><ref mediaID="Ball_snd_Chord"></ref></item></list></sounds><blocks></blocks><variables></variables><scripts><script x="36.30630630630631" y="10"><block s="receiveGo"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doBroadcast"><l>Start</l><list></list></block></script><script x="30" y="115.0090090090091"><block s="receiveMessage"><l>Start</l><list></list><comment w="234.14414414414415" collapsed="false">*Identify your variables.  What values do you need to keep track of and modify?  Make and set your variables. &#xD;*Add your loop with conditionals.  You are going to repeat until what happens?&#xD;*Create your if statements.  If something happens then do what?</comment></block><block s="doSetVar"><l>right paddle</l><l>0</l></block><block s="doSetVar"><l>left paddle</l><l>0</l></block><block s="doSetVar"><l>ball speed</l><l>3</l></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="let player score"/><l>5</l></block><block s="reportEquals"><block var="right player score"/><l>5</l></block><comment w="90" collapsed="false">This makes the game go on forever untill one of the sides left or right scores 5 points</comment></block><script><block s="forward"><block var="ball speed"/></block><block s="bounceOffEdge"></block><block s="doIf"><block s="reportOr"><block s="reportTouchingObject"><l>Right paddle</l></block><block s="reportTouchingObject"><l>Left paddle</l><comment w="90" collapsed="false">This is for the bal bouncing if it touches a paddle it goes up by 1 speed and playes a note </comment></block></block><script><block s="turn"><block s="reportRandom"><l>185</l><l>105</l></block></block><block s="doPlayNote"><l>60</l><l>0.1</l></block><block s="doChangeVar"><l>ball speed</l><l>1</l></block></script></block><block s="doIf"><block s="reportLessThan"><block s="xPosition"></block><l>-200</l><comment w="90" collapsed="false">this makes it where if the ball passes by the right side it will give the right player one point and brodcast a reset for the game</comment></block><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doPlayNote"><l>60</l><l>0.1</l></block><block s="doSayFor"><l>Right player scored 1 point!</l><l>2</l></block><block s="doChangeVar"><l>right player score</l><l>1</l></block><block s="doSayFor"><block s="reportJoinWords"><list><block s="reportJoinWords"><list><l>Left player </l><block var="let player score"/></list></block><block s="reportJoinWords"><list><l>Right player</l><block var="right player score"/></list></block></list></block><l>2</l></block><block s="doBroadcast"><l>Reset</l><list></list></block></script></block><block s="doIf"><block s="reportGreaterThan"><block s="xPosition"></block><l>200</l><comment w="90" collapsed="false">This makes it where if the ball passes by the left side it will give the left player one point and brodcast a reset for the game</comment></block><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doPlayNote"><l>60</l><l>0.2</l></block><block s="doSayFor"><l>Left player scored 1 point!</l><l>2</l></block><block s="doChangeVar"><l>let player score</l><l>1</l></block><block s="doSayFor"><block s="reportJoinWords"><list><block s="reportJoinWords"><list><l>Left player </l><block var="let player score"/></list></block><block s="reportJoinWords"><list><l>Right player</l><block var="right player score"/></list></block></list></block><l>2</l></block><block s="doBroadcast"><l>Reset</l><list></list></block></script></block></script></block><block s="doBroadcastAndWait"><l>End</l><list></list><comment w="90" collapsed="false">this will end game once the forever loop above has meet its requirments </comment></block></script><script x="666" y="597.1351351351351"><block s="receiveGo"></block><block s="doBroadcast"><l>Reset</l><list></list></block></script><script x="658" y="674.3333333333334"><block s="receiveMessage"><l>Reset</l><list></list><comment w="90" collapsed="false">This is what resets everything when a player has scored, it makes the ball go to 0,0 pickes a radom direction from 80-100 and sets ball speed to 3 </comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setHeading"><block s="reportRandom"><l>80</l><l>110</l></block></block><block s="doSetVar"><l>ball speed</l><l>3</l></block></script><script x="809.6306306306305" y="42.70870870870863"><block s="receiveMessage"><l>End</l><list></list><comment w="90" collapsed="false">In this code what it does is if one of the two players scored 5 points it will say the side that won and ask if you want to play agian if you say yes it will start a new game if you say no it will end everything </comment></block><block s="doIf"><block s="reportEquals"><block var="let player score"/><l>5</l></block><script><block s="doSayFor"><l>Left player  won</l><l>2</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="right player score"/><l>5</l></block><script><block s="doSayFor"><l>Right player won</l><l>2</l></block></script></block><block s="doAsk"><l>do you want to play again</l></block><block s="doIfElse"><block s="reportEquals"><block s="getLastAnswer"></block><l>yes</l></block><script><block s="doBroadcastAndWait"><l>Start</l><list></list></block></script><script><block s="doSayFor"><l>Thanks for playing!</l><l>2</l></block><block s="doStopThis"><l><option>all</option></l></block></script></block></script><comment x="981.8918918918919" y="472.8618618618618" w="181.8918918918919" collapsed="false">Use these broadcasts(Reset and End) within the script for block &quot;when I receive Start&quot; </comment></scripts></sprite><watcher var="left paddle" style="normal" x="10" y="10" color="243,118,29"/><watcher var="right paddle" style="normal" x="10" y="31.000001999999995" color="243,118,29"/><watcher var="ball" style="normal" x="10" y="52.00000399999999" color="243,118,29"/><watcher var="let player score" style="normal" x="10" y="73.00000599999998" color="243,118,29"/><watcher var="right player score" style="normal" x="10" y="94.00000799999998" color="243,118,29"/><watcher var="ball speed" style="normal" x="10" y="115.00000999999997" color="243,118,29"/></sprites></stage><variables><variable name="left paddle"><l>0</l></variable><variable name="right paddle"><l>0</l></variable><variable name="ball"><l>0</l></variable><variable name="let player score"><l>3</l></variable><variable name="right player score"><l>5</l></variable><variable name="ball speed"><l>3</l></variable></variables></scene></scenes></project><media name="2.6 Project " app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAIiElEQVR4nO3dQWokZRiA4TpCbuBRcoScqIMXGPAACeM9hoAwCsoQcJvMIm4jijgbma5iylWPMgvT0da3f/tZPIsfvqIX/+Llo6B62m63685ms1mnaXrS+n67l6ee2ee3zs7O1tvb23VZlnVZlvXy8nKv5wA4DT/c3+/dpWMyLcvyYXf4sP3vnZ+f/6Xr6+uP8V2WZb24uMgvG4DjMWyAp2madoc/h+5Y1RcNwHERYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgcMgAv/vp571nv/v6GwEG4HTZgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxA4ZIB/+/Xd3rMPd28FGIDTZQMWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEvn39+mBR/P7Nm71nX15dCzAAp+urV6/ybVaAATg5AizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAwbIC32z8OdVwFGIDnGjrAO3VcBRiA5xJgAQYgMHyA53nO4yrAADzX8AGuwyrAAPwdAizAAAQEWIABCAwd4FHe/wowAJ8SYAEGICDAAgxAYNgAjxRfAQbgUwIswAAEBFiAAQgMG+A6qAIMwD8hwAIMQECABRiAwPABHuVdcH3RAByX4QM8yuco64sG4LgMG+B5ntd5ngUYgCENG+DdnzEIMAAjEmABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAASGD/D6XoABGI8ACzAAgaEDvDvUcRVgAJ5LgAUYgMCwAV7X9TMBBmBUwwZ4mqZJgAEYlQALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiBwyAD/8vjj3rMPd28FGIDTZQMWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEvnjx4mBR/PLqau/Zl1fXAgzA6fp8s8m3WQEG4OQIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEICLAAAxAQYAEGICDAAgxAQIAFGICAAAswAAEBFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgIAACzAAAQEWYAACAizAAAQEWIABCAiwAAMQEGABBiAgwAIMQECABRiAgAALMAABARZgAAICLMAABARYgAEIHDLAD3f3/8qsAAPwv2MDFmAAAgIswAAEBFiAAQgIsAADEBBgAQYgIMACDEBAgAUYgMDIAf54WOb5SY+Pjwdzc3PzbPVFA3BcRg3w75Jj9p524PbFAAAAAElFTkSuQmCC" mediaID="Stage_cst_Untitled"/><costume name="Untitled" center-x="21" center-y="126" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAD8CAYAAAABpDZpAAAA+0lEQVR4nO3OoQ2AUBTAwKfYfzB2AoPAgSD5Jbkm9Tdztc1+FJ97qzGvsKsRr7GrAaCgoKCgoKCgoKB/GBS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD4oaH1Q0PqgoPVBQeuDgtYHBa0PClofFLQ+KGh9UND6oKD1QUHrg4LWBwWtDwpaHxS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD4oaH1Q0PqgoPVBQeuDgtYHBa0PClofFLQ+KGh9UND6oKD1QUHrg4LWBwWtDwpaHxS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD7o59CZyWPn3mrME/IECtEHcoAkCKQAAAAASUVORK5CYII=" mediaID="Left paddle_cst_Untitled"/><costume name="Untitled" center-x="21" center-y="126" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAD8CAYAAAABpDZpAAAA+0lEQVR4nO3OoQ2AUBTAwKfYfzB2AoPAgSD5Jbkm9Tdztc1+FJ97qzGvsKsRr7GrAaCgoKCgoKCgoKB/GBS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD4oaH1Q0PqgoPVBQeuDgtYHBa0PClofFLQ+KGh9UND6oKD1QUHrg4LWBwWtDwpaHxS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD4oaH1Q0PqgoPVBQeuDgtYHBa0PClofFLQ+KGh9UND6oKD1QUHrg4LWBwWtDwpaHxS0PihofVDQ+qCg9UFB64OC1gcFrQ8KWh8UtD7o59CZyWPn3mrME/IECtEHcoAkCKQAAAAASUVORK5CYII=" mediaID="Right paddle_cst_Untitled"/><costume name="Untitled" center-x="16" center-y="15" image="data:image/png;base64,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" mediaID="Ball_cst_Untitled"/><sound name="Pop" sound="http://snap.berkeley.edu/snapsource/Sounds/Pop.wav" mediaID="Ball_snd_Pop"/><sound name="Chord" sound="http://snap.berkeley.edu/snapsource/Sounds/Chord.wav" mediaID="Ball_snd_Chord"/></media></snapdata>