68 lines
1.2 KiB
Java
68 lines
1.2 KiB
Java
package tp_codecheck.tp03;
|
|
|
|
/**
|
|
A simulated traffic light.
|
|
*/
|
|
public class TrafficLight2
|
|
{
|
|
private int steps;
|
|
|
|
/**
|
|
Constructs a green traffic light.
|
|
*/
|
|
public TrafficLight2()
|
|
{
|
|
this.steps = 0;
|
|
}
|
|
|
|
/**
|
|
Constructs a traffic light.
|
|
@param initialColor the initial color "green", "yellow", or "red"
|
|
*/
|
|
public TrafficLight2(String initialColor)
|
|
{
|
|
switch (initialColor) {
|
|
case "green":
|
|
this.steps = 0;
|
|
break;
|
|
case "yellow":
|
|
this.steps = 1;
|
|
break;
|
|
case "red":
|
|
this.steps = 2;
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
Moves this traffic light to the next color.
|
|
*/
|
|
public void next()
|
|
{
|
|
steps++;
|
|
}
|
|
|
|
/**
|
|
Returns the current color of this traffic light.
|
|
@return the current color
|
|
*/
|
|
public String getColor()
|
|
{
|
|
int rem = (this.steps + 1) % 3;
|
|
if (rem == 0)
|
|
return "red";
|
|
else if (rem == 1)
|
|
return "green";
|
|
else
|
|
return "yellow";
|
|
}
|
|
|
|
/**
|
|
Counts how often this traffic light has been red.
|
|
@return the number of times this traffic light has been red
|
|
*/
|
|
public int getReds()
|
|
{
|
|
return (this.steps + 1) / 3;
|
|
}
|
|
} |