/* id/9 == pot (id/3) % 3 == cluster id%3 == plant within cluster */ public class MyPlantBehavior implements PlantBehavior { // PUBLIC INTERFACE // SERVER CONTROL PROG. CALLS ME TO TELL ME WHO I AM AND MY ENVIRONMENT public void setId(int value) { id = value; } public void setTime(double time) { this.time = time; } public void setProximity(int value) { proximity = value; } public void setNoiseLevel(int value) { noiseLevel = value; } // SERVER CONTROL PROG. ASKS ME WHAT MY BEHAVIOR IS public int getRed() { return pot() == 0 ? 255 : 0; } public int getGreen() { return pot() == 1 ? 255 : 0; } public int getBlue() { return pot() == 2 ? 255 : 0; } public int getAngle() { return cluster() == 0 ? proximity : 128; } public int getHeight() { return cluster() == 1 ? noiseLevel : 128; } // PRIVATE STUFF private int cluster() { return (id / 3) % 3; } private int pot () { return (id / 9); } private int plant () { return id % 3 ; } private int id = 0, proximity = 0, noiseLevel = 0; private double time = 0; }