### Learning Math and Coding with Robots

 Grid: Tics Lines: Width px Hash Lines: Width px Labels: Font px Trace Lines: Robot 1: Width px Robot 2: Width px Robot 3: Width px Robot 4: Width px
 Axes: x-axis y-axis Show Grid Grid: 24x24 inches 36x36 inches 72x72 inches 96x96 inches 192x192 inches Quad: 4 quadrants 1 quadrant Hardware Units: US Customary Metric
 Background:

#### Robot 1

 Initial Position: ( in, in) Initial Angle: deg Current Position: (0 in, 0 in) Current Angle: 90 deg Wheel Radius: 1.75 in1.625 in2.0 in Track Width: in

#### Robot 2

 Initial Position: ( in, in) Initial Angle: deg Current Position: (6 in, 0 in) Current Angle: 90 deg Wheel Radius: 1.75 in1.625 in2.0 in Track Width: in

#### Robot 3

 Initial Position: ( in, in) Initial Angle: deg Current Position: (12 in, 0 in) Current Angle: 90 deg Wheel Radius: 1.75 in1.625 in2.0 in Track Width: in

#### Robot 4

 Initial Position: ( in, in) Initial Angle: deg Current Position: (18 in, 0 in) Current Angle: 90 deg Wheel Radius: 1.75 in1.625 in2.0 in Track Width: in

Animate a Complex Bouncing Ball
Problem Statement:

The pre-placed blocks show the initial motion of the ball. Add blocks to continue the bouncing, even off walls.

```/* Code generated by RoboBlockly v2.0 */
#include <chplot.h>
double i;
CPlot plot;

for(i = 0; i <= 10; i += 0.5) {
plot.backgroundColor("#006600");
plot.noStrokeColor();
plot.fillOpacity(1);
plot.fillColor("red");
plot.circle(i, -0.25 * (i * i) + 18, 1);
plot.fillColor("black");
plot.fillOpacity(0.5);
plot.rectangle(-12, -12, 36, 4);
delaySeconds(0.001);
}
for(i = 10; i <= 23; i += 0.5) {
plot.backgroundColor("#006600");
plot.noStrokeColor();
plot.fillOpacity(1);
plot.fillColor("red");
plot.circle(i, -0.25 * pow(i - 20, 2) + 18, 1);
plot.fillColor("black");
plot.fillOpacity(0.5);
plot.rectangle(-12, -12, 36, 4);
delaySeconds(0.001);
}
for(i = 23; i >= 17; i -= 0.5) {
plot.backgroundColor("#006600");
plot.noStrokeColor();
plot.fillOpacity(1);
plot.fillColor("red");
plot.circle(i, -0.25 * pow(i - 27, 2) + 18, 1);
plot.fillColor("black");
plot.fillOpacity(0.5);
plot.rectangle(-12, -12, 36, 4);
delaySeconds(0.001);
}
for(i = 17; i >= -3; i -= 0.5) {
plot.backgroundColor("#006600");
plot.noStrokeColor();
plot.fillOpacity(1);
plot.fillColor("red");
plot.circle(i, -0.25 * pow(i - 7, 2) + 18, 1);
plot.fillColor("black");
plot.fillOpacity(0.5);
plot.rectangle(-12, -12, 36, 4);
delaySeconds(0.001);
}

plot.axisRange(PLOT_AXIS_XY, -12, 24);
plot.ticsRange(PLOT_AXIS_XY, 6);
plot.sizeRatio(1);
plot.plotting();```
 Blocks Save Blocks Load Blocks Show Ch Save Ch Workspace
Problem Statement:

The pre-placed blocks show the initial motion of the ball. Add blocks to continue the bouncing, even off walls.

Time