I'm trying to write a chess program with the netbeans GUI creator. So far I've got the visual part of the program down; I've created a chess board that will set up on command, and with pieces that you can move anywhere on the board by clicking them twcie (once to select, once to move), and now I'm trying to add restrictions to only allow legal moves. In order to do this, I created a separate class, which I'm calling Referee, with several methods, all of which build on each other to finally determine whether or not a given move is legal (for example, one method checks if a move is legal only in terms of how different pieces are allowed to move, another determines, given a certain position, and using the first method, if either player is in check, and then a final method uses both the surface review based on move capabilites and the position review based on check to decide once and for all if a move is legal).
Anyway, the details aren't super important, but the main point is that there are several methods within this class, all of which build on each other, and thus need to be called within the class itself. However, the class also has one method that I need to call from the main class (the full review, to determine if a move is legal). In order to be able to call methods from the Referee class within the main class, and the Referee class, I created a separate object in each class (ref1 inside Referee class, and ref2 inside the main class). However, I'm now having trouble with a stack overflow error. The error comes up on the object creation in the main class; I guess what's happening is that when I create the ref2 object, it has to have its own ref1 object, which in turn has to have its own ref1 object, etc. etc., on to infinity.
public static void main(
String args[])
{
Referee ref2 = new Referee(); //the stack overflow error is happening here
}
public class Referee
{
Referee ref1 = new Referee();
}
Does anyone know how to redesign my class set up such that I don't run into this error? I can't figure out a way to call the referee methods from within the referee class without causing this error, although I guess that it is possible since I have seen recursion sucessfully done before.
Help would be much appreciated.