see below methods:
- public void plantFlowers( int n )
- public void spinFlowers( )
* with old style loop
- public void spinFlowers( )
* with new style loop
|| ||
|| ||
VV VV
|
package cs1.ParkApp;
import cs1.app.*;
import java.util.ArrayList;
public class Park
{
// the features (data members)
private ArrayList<Balloon> balloonsList;
private ArrayList<Flower> flowersList;
// the constructor(s)
public Park()
{
// create empty collections of balloons and flowers
balloonsList = new ArrayList<Balloon>();
flowersList = new ArrayList<Flower>();
}
// the behaviors (methods)
public void plantFlowers( int n )
{
for (int count = 1; count <= n; count = count + 1)
{
String color = canvas.getRandomColor( );
Flower flower = new Flower( color ); // make a flower
flowersList.add( flower ); // put the flower in the list
}
}
public void add( Balloon balloon )
{
balloonsList.add( balloon );
}
public void animate( int frames )
{
for (int count = 1; count <= steps; count = count + 1)
{
canvas.clear();
driftBalloons(); // make all ballons drift a bit
spinFlowers(); // make all flowers spin a bit
canvas.sleep( 0.1 );
}
}
public void driftBalloons( )
{
// go through all balloons one index at a time
for (int index = 0; index < balloonsList.size(); index = index + 1)
{
Balloon balloon = balloonsList.get(index); // get current balloon
double dx = canvas.getRandomDouble(-3, 3); // pick 2 random values
double dy = -1;
balloon.drift( dx, dy ); // ask balloon to drift a bit
balloon.draw(); // ask balloon to draw itself
}
}
// version with enhanced for-loop
public void driftBalloons( )
{
// go through all balloons directly, without index
for ( Balloon balloon : balloonsList ) // get current balloon automatically
{
double dx = canvas.getRandomDouble(-3, 3); // pick 2 random values
double dy = -1;
balloon.drift( dx, dy ); // ask balloon to drift a bit
balloon.draw(); // ask balloon to draw itself
}
}
// version with regular (index-based) for-loop
public void spinFlowers( )
{
// go through all flowers one index at a time
for ( int i = 0 ; i < flowersList.size() ; i++ )
{
Flower flower = flowersList.get( i ); // get current flower
flower.spin( ); // ask flower to spin
flower.draw(); // ask flower to draw itself
}
}
// version with enhanced for-loop
public void spinFlowers( )
{
// go through all flowers directly, without index
for ( Flower flower : flowersList ) // get current flower automatically
{
flower.spin( ); // ask flower to spin
flower.draw(); // ask flower to draw itself
}
}
}
|