
Christian.Schuhegger wrote @ Sat, 10 Sep 2005 08:58:48 +0200: You seem to have forgotten to show the actual Lisp code.
class Triangle implements Shape { public boolean collidesWith(Shape other) { other.collidesWithTriangle(this); } ...; public boolean collidesWithCircle(Circle s) {...;} public boolean collidesWithSquare(Square s) {...;} ...; }
While having methods with the same name but different signatures is certainly something i like, maybe in this case you just have problems with the objects you designed. I guess, we all know Java is limited, but let's not forget, they call it a feature. class Triangle implements Shape { public 2Dspace space() { 2DSpace my_space = xy[screen.x_dim][screen.y_dim]; // fill the matrix with pixels the Triangle occuppies return my_space; } public boolean collidesWith(Shape other) { return overlap(other.space, this.space); } } So first, generalize the properties of your objects and then let them interact. I would also say that colliding and especially overlap() is something that the Object World should do. Andy