<snapdata remixID="9863386"><project name="chapter 2 project" app="Snap! 6, https://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" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails><costumes><list id="2"><item><costume name="XY Grid" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAXjElEQVR4nO3dQW4bCZZFUa3ROzBgeBu5jh7VWgqJ7FktQiuJHriFUjojyPhkkLwUzwE0sC3bKj59XVMpu96WuPf390e/CXxij8f7/uPn5guP4zZ66pu8PfoNOKf+AL4aezSIb4/b6KlvIsCM2KNDfFvcRk99EwFmxB4tb2//++g3gf/nNnrqmwgwI/ZoEeAOt9FT30SAGbFHy7kAv/qnqO/5v99t9NQ3EWBG7NFyKsCr8fnj7dfL1rfXfLzOjtd9e/v1svXtvT9v7ce2Xufcj98rwm6jp76JADNij5abB3j4+pcEeE9cL/32sgjwK6tvIsCM2ONY5wJ1/sfXA3wyOqee0Z4L7uBZ8Nrbvje0W99/SYCX5T4Rdhs99U0EmBF7HG8apb+/zgUBXpbtkMYCPP31BJjP6psIMCP2OF4qwOdeb+fP2/vffs+9vmfAXKO+iQAzYo/buPyLlw7+FPTW6259e/PtEmAer76JADNij9s599W86z9nGODpp5jPfHvr97n2v/Vufb8AM1HfRIAZscdtzZ85HvxV0Ke+MGvlx44I8LV/zchfQ2JLfRMBZsQet3XzAB/sGf6hDwF+XfVNBJgRe9zWkQFeltvHR3z/y2301DcRYEbscVtHB5j7cRs99U0EmBF73JYAPy+30VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW8iwIzYo0WAO9xGT30TAWbEHi0C3OE2euqbCDAj9mgR4A630VPfRIAZsUeLAHe4jZ76JgLMiD1aBLjDbfTUNxFgRuzRIsAdbqOnvokAM2KPFgHucBs99U0EmBF7tAhwh9voqW/y9v7+vnjx4uU5X759+/fD3wYvXrxc9uIZMCP2aPEMuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo/7++vP7R8T4A630VPfRIAZscf9/PXnP19+J8AdbqOnvokAM2KP+/g9uFsRFuAOt9FT30SAGbHHfazFVoDb3EZPfRMBZsQe93EqwJ+/X4A73EZPfRMBZsQet7PnGa8Ad7mNnvomAsyIPY639cVWa894BbjLbfTUNxFgRuxxrHNfbHXuK6EFuMNt9NQ3EWBG7HGsvV9stfV3gQW4w2301DcRYEbscay9X2y1RYA73EZPfRMBZsQelzkV1L3PgtcIcIfb6KlvIsCM2OMyp57V7vliqy0C3OE2euqbCDAj9pjb809K7nmdNQLc4TZ66psIMCP2mJs8s90b3g8C3OE2euqbCDAj9rje73/N6BoC3OE2euqbCDAj9rjepZ9uXiPAHW6jp76JADNij+sdEd4PAtzhNnrqmwgwI/a4zlHh/SDAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DcRYEbs0SLAHW6jp76JADNijxYB7nAbPfVNBJgRe7QIcIfb6KlvIsCM2KNFgDvcRk99EwFmxB4tAtzhNnrqmwgwI/ZoEeAOt9FT30SAGbFHiwB3uI2e+iYCzIg9WgS4w2301DfZDPD3Hz+X7z9+3vNtWVV7ACuPy6PU9nh1WwF+9vfTZ3z73cYvpe0escnkf/9qgFd/gT/efr1sfXvi4+fu+TXWfnzw89/efr1sffvUz9l63dI72L35INOyFuDD7tedjbiNx7zvPXMj7h/gya+z9mPDt2P64O55/Wf7wHAkH2RabhZgdzbmNh7wvnemEe/v7+n33X/8Nid/4qk/VRwV5LXf69TrD/6Es/ZAnXswv8qfzo/ig0zL7wE+7H7d2dir38bN2nFFI/YEeFke9747C/CynH8wJk79Wls/7gPDQ736B5maUYCXZf/9urOxV7+Nm7Tjyka8ToC3Xm/6oJ87+gs/Fb7n8/prr/cVPjAc6dU/yNQcFuBzr+fOznr12zjsfe/c6w8asTfAy/KY991ZgM9Fda89f+LZ+r18YHioV/8gU3PYp6C3Xnfr25tvz+ve2avfxqHtOKgRXyfAB4VwFO8LngFvvf1bD9IrfGrsSK/+QaZmd4Cn9+vOxl79Nm72vnfKBc+AS++7q/8rL/pKtks/Nb3nTzrnfo1zb/uy/8H9/H1f4YPC0V79g0zNYV8FfeoDmTvbxW0c9L73Qo3YH+AHmb5T3+NtLz0+9+aDTMvuAB/sq/weR3Ibvc3WNim9724+Za08kJcE+JYqj8uj+CDT8qh/Ccud/ZPb+KW03VaAb2nyv3/nJ9ofxzt1iz1a/FvQHW6jp76JADNijxYB7nAbPfVN3iqfKthSfwBfjT06Pj7VVb/hV+E2esqbfP/x81eAywdcfgBfkT0aPse3fsOvwm30VDf5uNm3+gFXH8BXZY/HW4tv+YZfhdvoKW7y+V7/HuCtv3/1wJf3//n28LfBiz1KLycDHHj7XvXFbfReiptsBzio+CeYV2aPx/MMuMlt9BQ3WQ1wVfEBfGX2aBDfHrfRU93kbwEuqz6Ar8oeHeL7AP/51+YPuY0HedJNvv/4ubw9+o1YluVpH8AvbWMTe7T4e8B38p9//fPlN27jzr7AJo8N8Bd4AL+cM5vYo0WA7+D3O3Abj/dFNnlcgL/IA/il7NjEHi0CfAdrTw58rHqsL7JJJ8Ab31d/AL+UHZvYo0WA7+DUXbiNx/gimzQD/EQP4JeyYxN7tAjwjex4cuBj1Z2VN/n4e77DH7tfgNe+qKf0AL6iCzaxR4sAH2zrayDW/hOZj1X38SybrIX2VJiXewT41Bf11B7AV3HFJvZoEeADnbsFX6B4f8+0SS7Akw/uhQfwFVy5iT1aBPhAO78uZfUzR4vbuIln2+RzcM/Ed1nuHeCt7/v4/hXeqQ925Sb2aBHgA+34GohT3MYBJv+dt7rJ53/7+YzjA3zi08l/+74dD96yeKc+3DO+Q7NJgC9w6n198gfU37iNK5z4LOjTbfKQAJ/7b4prr7uDd+ornHpm+0zv0GwS4Auc+gPn3o9hK9zGhc493s+0yUM+BX3qwbniwVsW79RXOfcnymd4h+YkAR468zUnu19nhdu40PTTztVNHvZFWOcewAsfvGXxTn2xc4/5M7xDc5YAD03+0Dn4OLUsbuNik8/GlTfJBnjr9XbwTn2hvR9oyu/QnCXAV/r9s3VXcBsHWfsM6oVe8x/ieMYH8Ks76AONPVoE+EpXfHbud27jIAftsSz9TW4b4Bd4AJ/GQR9o7NEiwFc66OPUsriNQxzYjmXpb3Kbv4b0Qg/g0/AHoi9JgK9w0MeoD27jAC+2yXUBPvXFPQepP4A5N97EHi0C3OE2euqbXB7gA5/lnlJ/AFPusIk9WgS4w2301De5LMB3CO+H+gOYcadN7NEiwB1uo6e+yeP+/4B3qj+Ar8YeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3eXt/f1+8ePHynC/fvv374W+DFy9eLnvxDJgRe7R4BtzhNnrqmwgwI/ZoEeAOt9FT30SAGbHH/f315/aPCXCH2+ipbyLAjNjjfv76858vvxPgDrfRU99EgBmxx338HtytCAtwh9voqW8iwIzY4z7WYivAbW6jp76JADNij/s4FeDP3y/AHW6jp76JADNij9tY+++7e54FC3CH2+ipbyLAjNjjWKe+0OrU930Q4A630VPfRIAZscdxJsH1RVh9bqOnvokAM2KP4+z9QquP718jwB1uo6e+iQAzYo/j7P1Cq1MEuMNt9NQ3EWBG7HGZU89s9z4LXiPAHW6jp76JADNij8tsPbPd84VWpwhwh9voqW8iwIzYY+7cF1Lt+Scntwhwh9voqW8iwIzYY27vs9tJeD8IcIfb6KlvIsCM2ON6nyN8SXQ/E+AOt9FT30SAGbHH9a75lPPvBLjDbfTUNxFgRuxxvSPC+0GAO9xGT30TAWbEHvtd+1eM9hDgDrfRU99EgBmxxz5HPss9RYA73EZPfRMBZsQe590jvB8EuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNijRYA73EZPfRMBZsQeLQLc4TZ66psIMCP2aBHgDrfRU99EgBmxR4sAd7iNnvomAsyIPVoEuMNt9NQ3EWBG7NEiwB1uo6e+iQAzYo8WAe5wGz31TQSYEXu0CHCH2+ipbyLAjNij5VyAv//4uXz/8fNOb83zuMXj4jZ66psIMCP2aDkV4NXI/PH262Xr22s+XmfH6769/XrZ+vbUqZ//8WNbr3Pux4+OsNvoqW8iwIzYo+XmAR6+/pEB3hPXS7+9LAL8CuqbCDAj9mjZCvDJuJx6RnsuuINnwWvRmwb5lgFelmMj7DZ66psIMCP2aLkowMuyHdInCfD09xHg11TfRIAZsUfL4QE+93o7f97e0O7977jnvt8zYNbUNxFgRuzRcvinoLded+vbm2/XdV98de7XEWD2qG8iwIzYo2Uc4OmnmM98e+v3mT6j3SLAXKO+iQAzYo+Ww78K+tQXZq382C0DfO1fM/LXkKhvIsCM2KNlHOCDPfM/9CHAX199EwFmxB4tj/6XsMT3v9xGT30TAWbEHi3+LegOt9FT30SAGbFHx8ezuGd9FvrVuI2e+iYCzIg9Gj7HV4Qb3EZPfRMBZsQej7cWXxF+PLfRU9/k/wCuvf/nWYKwzAAAAABJRU5ErkJggg==" id="3"/></item></list></costumes><sounds><list struct="atomic" id="4"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Comp_Paddle" idx="2" x="-210" y="87.91190988472803" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="9"><costumes><list id="10"><item><costume name="costume1" center-x="12.5" center-y="61" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAB6CAYAAABKifiXAAAATUlEQVRoge3NMREAIAwAsZeCf1NIARX0GDJkTtUa0BkgkUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSya/Jfu0CUC/F1WZ2ZjcAAAAASUVORK5CYII=" id="11"/></item></list></costumes><sounds><list struct="atomic" id="12"></list></sounds><blocks></blocks><variables></variables><scripts><script x="23.076923076923077" y="23.076923076923077"><block s="receiveGo"></block><block s="gotoXY"><l>-210</l><l>0</l><comment w="334.6153846153846" collapsed="true">At the start of the game, go to the correct starting position.</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportGreaterThan"><block var="Ball Y Position"/><l>123</l><comment w="368.0223858173077" collapsed="true">If the ball is too high, stop the paddle at its highest possible value</comment></block><script><block s="setYPosition"><l>123</l></block></script><script><block s="doIfElse"><block s="reportLessThan"><block var="Ball Y Position"/><l>-123</l><comment w="352.3076923076923" collapsed="true">If the ball is too low, stop the paddle at its lowest possible value</comment></block><script><block s="setYPosition"><l>-123</l></block></script><script><block s="setYPosition"><block var="Ball Y Position"/><comment w="586.9230769230768" collapsed="true">Otherwise the ball is in the middle range, and forever have the paddle Y position follow the ball Y position.</comment></block></script></block></script></block></script></block></script></scripts></sprite><sprite name="Player_Paddle" idx="3" x="210" y="123" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="47"><costumes><list id="48"><item><costume name="costume1" center-x="12.5" center-y="61" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAB6CAYAAABKifiXAAAATUlEQVRoge3NMREAIAwAsZeCf1NIARX0GDJkTtUa0BkgkUgkEolEIpFIJBKJRCKRSCQSiUQikUgkEolEIpFIJBKJRCKRSCQSya/Jfu0CUC/F1WZ2ZjcAAAAASUVORK5CYII=" id="49"/></item></list></costumes><sounds><list struct="atomic" id="50"></list></sounds><blocks></blocks><variables></variables><scripts><script x="32.69230769230769" y="34.02564102564106"><block s="receiveGo"></block><block s="gotoXY"><l>210</l><l>0</l><comment w="313.0769230769231" collapsed="true">At the start of the game, go to the correct starting position.</comment></block><block s="doForever"><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportMouseY"></block><l>123</l><comment w="352.6377704326922" collapsed="true">If the mouse is too high, stop the paddle at its highest possible value</comment></block><script><block s="setYPosition"><l>123</l></block></script><script><block s="doIfElse"><block s="reportLessThan"><block s="reportMouseY"></block><l>-123</l><comment w="345.3846153846153" collapsed="true">If the mouse is too low, stop the paddle at its lowest possible value</comment></block><script><block s="setYPosition"><l>-123</l></block></script><script><block s="setYPosition"><block s="reportMouseY"></block><comment w="576.9230769230769" collapsed="true">Otherwise the mouse is in the middle range, and forever have the paddle Y position follow the mouse Y position.</comment></block></script></block></script></block></script></block></script></scripts></sprite><sprite name="Ball" idx="1" x="-55.84850893648672" y="80.03920153684194" heading="131" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="88"><costumes><list id="89"><item><costume name="costume1" center-x="13" center-y="13" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAA8klEQVRIib3VsQ2CUBRG4UOvNpZqxwImDmBnrR1jGGsrKViBJUwsHMCGCQxrGHuDFt5rCPGhwLuc5G+I3C+hEf5vAiyBjWwpz7w0BQ5ADjwdy+U307bIvua4a/smwAg4t0B0Z7lR2wDIOiC6TG45O3lAdCcXsvOI6HZVZAjcDaC73P60NUB02zJ0MYQuigTAwxB6iEFoiOhCgEUP0AJg3gM0B5j1AM2QbobIjVJHQ+hYhiJDKKLS1QC5VhGAtQG0/gYBJB6RxIVoqQck/YVocQck/hfRVjT7W8/kndateH+KHChKhwt5lnYFvhUAY1nQ5MUXvZXT3o5gQdgAAAAASUVORK5CYII=" id="90"/></item></list></costumes><sounds><list struct="atomic" id="91"></list></sounds><blocks></blocks><variables></variables><scripts><script x="30" y="30"><block s="receiveGo"><comment w="435.16308593749994" collapsed="true">Forever loop without wait times that has the ball forever moving in its current direction</comment></block><block s="gotoXY"><l>0</l><l>0</l><comment w="226.15384615384613" collapsed="true">Go to the center at the start of the game</comment></block><block s="setHeading"><block s="reportRandom"><l>45</l><l>135</l><comment w="476.15384615384613" collapsed="true">Start the ball, pointing in a somewhat random direction but always towards the player paddle.</comment></block></block><block s="doSetVar"><l>Lives Remaining</l><l>3</l><comment w="267.6923076923076" collapsed="true">Set all three variables up at the start of the game</comment></block><block s="doSetVar"><l>Ball Speed</l><l>5</l></block><block s="doSetVar"><l>Score</l><l>0</l></block><block s="doForever"><script><block s="doSetVar"><l>Ball Y Position</l><block s="yPosition"></block><comment w="446.923076923077" collapsed="true">Forever, keep updating the variable &quot;Ball Y Position&quot; with this ball&apos;s current position</comment></block><block s="forward"><block var="Ball Speed"/><comment w="487.6923076923077" collapsed="true">Forever move in the direction the ball is facing. The number of steps to move is the ball&apos;s speed</comment></block><block s="doIf"><block s="reportGreaterThan"><block s="yPosition"></block><l>170</l></block><script><block s="setHeading"><block s="reportDifference"><l>180</l><block s="direction"></block></block></block></script><comment w="286.9230769230769" collapsed="true">If the ball hits the top of the screen, then bounce</comment></block><block s="doIf"><block s="reportLessThan"><block s="yPosition"></block><l>-170</l></block><script><block s="setHeading"><block s="reportDifference"><l>180</l><block s="direction"></block></block></block></script><comment w="269.2307692307692" collapsed="true">If the ball hits the bottom of the screen, then bounce</comment></block><block s="doIf"><block s="reportGreaterThan"><block s="xPosition"></block><l>300</l></block><script><block s="doBroadcastAndWait"><l>Lose a Life</l></block></script><comment w="342.30769230769226" collapsed="true">If the ball leaves the right side of the screen, lose a life and reset</comment></block></script></block></script><script x="30" y="437.6410256410258"><block s="receiveMessage"><l>Lose a Life</l><comment w="556.1538461538461" collapsed="true">Basic lose a life and reset. Next video we will improve upon this reset and deal with ending/losing the game.</comment></block><block s="doChangeVar"><l>Lives Remaining</l><l>-1</l></block><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="30" y="528.717948717949"><block s="receiveGo"><comment w="707.4010667067308" collapsed="true">Separate loop for paddle bouncing because there are wait times, and we always want the ball to be moving without any wait times</comment></block><block s="doForever"><script><block s="doIf"><block s="reportTouchingObject"><l>Comp_Paddle</l></block><script><block s="setHeading"><block s="reportDifference"><l>0</l><block s="direction"></block></block><comment w="169.23076923076923" collapsed="true">Make the correct bounce/turn</comment></block><block s="doWaitUntil"><block s="reportNot"><block s="reportTouchingObject"><l>Comp_Paddle</l></block></block><comment w="546.2853064903846" collapsed="true">... and wait until it is out of contact with the paddle, to avoid bouncing around over and over inside the paddle.</comment></block></script><comment w="231.79394531250006" collapsed="true">If the ball hits the computer paddle ...</comment></block><block s="doIf"><block s="reportTouchingObject"><l>Player_Paddle</l></block><script><block s="setHeading"><block s="reportDifference"><l>0</l><block s="direction"></block></block><comment w="150" collapsed="true">Make the correct bounce/turn</comment></block><block s="doChangeVar"><l>Score</l><l>100</l><comment w="649.837364783654" collapsed="true">When the player is able to return/hit the ball, increase the score and speed/challenge of the game. See how long they can last!</comment></block><block s="doChangeVar"><l>Ball Speed</l><l>1</l></block><block s="doWaitUntil"><block s="reportNot"><block s="reportTouchingObject"><l>Player_Paddle</l></block></block><comment w="546.2853064903846" collapsed="true">... and wait until it is out of contact with the paddle, to avoid bouncing around over and over inside the paddle.</comment></block></script><comment w="222.69463641826928" collapsed="true">If the ball hits the player paddle ...</comment></block></script></block></script></scripts></sprite><watcher var="Ball Y Position" style="normal" x="10" y="10" color="243,118,29" hidden="true"/><watcher scope="Ball" s="xPosition" style="normal" x="10" y="36.100002" color="74,108,212" hidden="true"/><watcher scope="Ball" s="yPosition" style="normal" x="10" y="62.20000400000001" color="74,108,212" hidden="true"/><watcher scope="Ball" s="direction" style="normal" x="10" y="88.30000599999998" color="74,108,212" hidden="true"/><watcher scope="Stage" s="reportMouseY" style="normal" x="10" y="114.40000800000001" color="4,148,220" hidden="true"/><watcher var="Ball Speed" style="normal" x="10" y="140.50000999999997" color="243,118,29"/><watcher var="Score" style="normal" x="10" y="166.600012" color="243,118,29"/><watcher var="Lives Remaining" style="normal" x="10" y="192.700014" color="243,118,29"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks></blocks><variables><variable name="Ball Y Position"><l>83.97555571078499</l></variable><variable name="Ball Speed"><l>6</l></variable><variable name="Score"><l>100</l></variable><variable name="Lives Remaining"><l>3</l></variable></variables></project><media name="chapter 2 project" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>