?? healthcrocodile.java
字號:
import java.util.Vector;
/*
Christopher Chappel
Java Certification Exam Practical
March 11, 2009
SSD1
*/
public class HealthCrocodile extends Crocodile {
private static final String SPECIES = "HealthCrocodile";
private static final int LIFE_SPAN_OF_DISEASE = 5;
private static final int ENERGY_LOST_TO_DISEASE = 35;
private boolean isHealthy = true;
private boolean isImmune = false;
private int sickTimeBlocks = 0;
private static boolean shouldNextBeDiseased = true;
private static int nHealthCrocodilesCreated = 0;
public HealthCrocodile(int initialRow, int initialColumn, Simulation initialSimulation)
{
super(initialRow,
initialColumn,
initialSimulation);
isHealthy = true;
isImmune = false;
sickTimeBlocks = 0;
if(shouldNextBeDiseased)
{
infect();
shouldNextBeDiseased = false;
}
nHealthCrocodilesCreated++;
}
public String getSpecies()
{
return SPECIES;
}
private boolean isHealthy()
{
return isHealthy;
}
public String getImage()
{
String s = "/Crocodile-";
if(!isHealthy())
s = "/SickCrocodile-";
if(getDirection().equals(RIGHT))
return s + "right.gif";
if(getDirection().equals(LEFT))
return s + "left.gif";
if(getDirection().equals(UP))
return s + "up.gif";
if(getDirection().equals(DOWN))
return s + "down.gif";
else
return s + "right.gif";
}
private void infect()
{
isHealthy = isImmune;
}
private void immunize()
{
isImmune = true;
}
private void cure()
{
isHealthy = true;
}
private void infectIfPossible()
{
Vector vector = simulation.getNeighbors(getRow(), getColumn(), 0);
for(int i = 0; i < vector.size(); i++)
if(vector.get(i) instanceof HealthCrocodile)
{
HealthCrocodile healthcrocodile = (HealthCrocodile)vector.get(i);
healthcrocodile.infect();
}
}
private boolean recoverIfPossible()
{
if(sickTimeBlocks > LIFE_SPAN_OF_DISEASE)
{
cure();
immunize();
return true;
}
else
{
return false;
}
}
private void progressDisease()
{
sickTimeBlocks++;
infectIfPossible();
setEnergy(getEnergy() - ENERGY_LOST_TO_DISEASE);
recoverIfPossible();
}
public void liveALittle()
{
super.liveALittle();
if(!isHealthy())
progressDisease();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -