<snapdata remixID="8504003"><project name="ITP Game of Pong Project Start File" app="Snap! 5.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" 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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</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" y="7" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" 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="23.358396437500005" y="17"><block s="receiveKey"><l><option>space</option></l><comment w="90" collapsed="false">Starts moving the paddle using mouse in y direction if it is not going out of the boundaries</comment></block><block s="doForever"><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="reportMouseY"></block><l>-180</l></block><block s="reportLessThan"><block s="reportMouseY"></block><l>180</l></block></block><script><block s="doIf"><block s="reportAnd"><block s="reportGreaterThan"><block s="yPosition"></block><l>-180</l></block><block s="reportLessThan"><block s="yPosition"></block><l>180</l></block></block><script><block s="gotoXY"><block s="xPosition"></block><block s="reportMouseY"></block></block></script></block></script></block></script></block></script><script x="23.358396437500005" y="214"><block s="receiveMessage"><l>reset</l><comment w="90" collapsed="false">Resets paddle to the center when scored</comment></block><block s="gotoXY"><l>225</l><l>0</l></block></script></scripts></sprite><sprite name="Ball" idx="2" x="0" y="0" heading="17" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="198.9,35.80199999999999,0,1" pen="tip" id="60"><costumes><list id="61"><item><costume name="Untitled" center-x="8" center-y="7" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAAf0lEQVQ4T2NkwAH+m/L+R5ZiPP2ZEZtSDEF0jeia0A1CMYCQZphhyIbADSBWM7ohYANI1YxsyCAwgFznw71BsQGDIxAZGBgE/pvyvseVrLEm4dOfBRkYGD4gp0SD/6a854kxhPH0Z0MGBoYLILXoeYGgIciasRkAdgCumMGWIwF14TuQ+fCrFgAAAABJRU5ErkJggg==" id="62"/></item></list></costumes><sounds><list struct="atomic" id="63"></list></sounds><blocks></blocks><variables></variables><scripts><script x="33" y="10"><block s="receiveGo"><comment w="90" collapsed="false">When flag is clicked, the game is reset..</comment></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="doBroadcastAndWait"><l>reset</l></block></script><script x="36" y="104"><block s="receiveKey"><l><option>space</option></l><comment w="165" collapsed="false">When the space key is clicked, the sprite points in a random direction and begins to move.</comment></block><block s="setHeading"><l><option>random</option></l></block><block s="doForever"><script><block s="forward"><l>3.5</l></block><block s="doIf"><block s="reportLessThan"><block s="xPosition"></block><l>-225</l></block><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doBroadcastAndWait"><l>reset</l></block><block s="doBroadcast"><l>p2</l></block><block s="doStopThis"><l><option>this script</option></l></block></script><comment w="153" collapsed="false">If the ball goes past either paddle, resets the ball and paddles, updates the score, and stops the forever loop. All of it occurs before it hits right or left edge.</comment></block><block s="doIf"><block s="reportGreaterThan"><block s="xPosition"></block><l>225</l></block><script><block s="gotoXY"><l>0</l><l>0</l></block><block s="doBroadcastAndWait"><l>reset</l></block><block s="doBroadcast"><l>p1</l></block><block s="doStopThis"><l><option>this script</option></l></block></script></block><block s="doIf"><block s="reportTouchingObject"><l>LPaddle</l></block><script><block s="setHeading"><block s="reportQuotient"><block s="direction"></block><l>-1</l></block></block></script><comment w="90" collapsed="false">If the ball is touching either paddle, it bounces off in an angle the opposite of what it hit the paddle with.</comment></block><block s="doIf"><block s="reportTouchingObject"><l>Rpaddle</l></block><script><block s="setHeading"><block s="reportQuotient"><block s="direction"></block><l>-1</l></block></block></script></block><block s="bounceOffEdge"><comment w="143" collapsed="false">If the ball comes into contact with the top or bottom of the screen, it bounces off.</comment></block></script></block></script></scripts></sprite><sprite name="Scorer" idx="4" x="206.390625" y="120" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="0,32,235,1" pen="tip" id="141"><costumes><list struct="atomic" id="142"></list></costumes><sounds><list struct="atomic" id="143"></list></sounds><blocks></blocks><variables></variables><scripts><script x="214" y="397"><block s="receiveCondition"><block s="reportOr"><block s="reportEquals"><block var="p1score"/><l>5</l></block><block s="reportEquals"><block var="p2score"/><l>5</l></block></block><comment w="153" collapsed="false">When either person hits 5, it rewrites the number to show who has the 5, and writes game over in middle and stops all code.</comment></block><block s="clear"></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="gotoXY"><l>-100</l><l>-10</l></block><custom-block s="label %txt of size %n"><l>Game Over</l><l>40</l></custom-block><block s="doStopThis"><l><option>all</option></l></block></script><script x="389" y="205"><block s="receiveMessage"><l>p1</l><comment w="90" collapsed="false">When P1 scores increases the score by 1 and rewrites both as clear clears both</comment></block><block s="doSetVar"><l>p1score</l><block s="reportSum"><block var="p1score"/><l>1</l></block></block><block s="clear"></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 x="400" y="29"><block s="receiveMessage"><l>p2</l><comment w="90" collapsed="false">When P2 scores increases the score by 1 and rewrites both as clear clears both</comment></block><block s="doSetVar"><l>p2score</l><block s="reportSum"><block var="p2score"/><l>1</l></block></block><block s="clear"></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 x="29" y="49"><block s="receiveGo"><comment w="90" 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></script></scripts></sprite><sprite name="LPaddle" idx="1" x="-225" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="97.61399999999999,221.85,0,1" pen="tip" id="244"><costumes><list id="245"><item><costume name="Paddle" center-x="5" center-y="36" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAABICAYAAADPomTaAAAAOElEQVRIS2NkYGD4z0AEYBxViC+URoMHbxoaDZ7R4MEIgdFEMZooRhMFOARGs8JoVhjNCiM4KwAA6TVIActDoNAAAAAASUVORK5CYII=" id="246"/></item></list></costumes><sounds><list struct="atomic" id="247"></list></sounds><blocks></blocks><variables></variables><scripts><script x="29" y="243"><block s="receiveKey"><l><option>s</option></l><comment w="122" collapsed="false">Moves paddle down when s key is pressed and it&apos;s not going out of bounds</comment></block><block s="doIf"><block s="reportGreaterThan"><block s="yPosition"></block><l>-180</l></block><script><block s="changeYPosition"><l>-15</l></block></script></block></script><script x="20" y="20"><block s="receiveMessage"><l>reset</l><comment w="90" collapsed="false">Resets paddle to the center when scored</comment></block><block s="gotoXY"><l>-225</l><l>0</l></block></script><script x="32" y="115"><block s="receiveKey"><l><option>w</option></l><comment w="115" collapsed="false">Moves paddle up when w key is pressed and it&apos;s not going out of bounds</comment></block><block s="doIf"><block s="reportLessThan"><block s="yPosition"></block><l>180</l></block><script><block s="changeYPosition"><l>15</l></block></script></block></script></scripts></sprite><watcher scope="Rpaddle" s="yPosition" style="normal" x="235" y="27" color="74,108,212" hidden="true"/><watcher var="p1score" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher var="p2score" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher scope="Ball" s="xPosition" style="normal" x="181" y="304.0000039999998" color="74,108,212" hidden="true"/><watcher scope="Ball" s="direction" style="normal" x="10" y="52.000003999999976" 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>0</l></variable><variable name="p2score"><l>0</l></variable></variables></project><media name="ITP Game of Pong Project Start File" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>