/* +------------------+ | Rat | +------------------+ | int lifespan | | Posn loc | +------------------+ | Rat starve() | | Rat eat() | | bool isDead() | +------------------+ */ // to represent a Rat public class Rat{ private int lifespan; private Posn loc; public Rat(Posn loc){ this(loc,10); } private Rat(Posn loc, int lifespan){ this.loc = loc; this.lifespan = lifespan; } // produce a hungrier rat. public Rat starve(){ return new Rat(this.loc,this.lifespan-1); } // produce a less hungrier rat. public Rat eat(int foodsize){ return new Rat(this.loc, this.lifespan + foodsize); } // the rat is dead when lifespan is 0 public boolean isDead(){ return lifespan == 0; } public String toString(){ return new String( "Rat: " + "\n" + "\t" + " loc: " + this.loc.toString() + "\n" + "\t" + " lifespan: " + this.lifespan + "\n" ); } }