Yes, I also had this problem, and figured it out. I had a two dimensional array of Space objects called "spaces" in MyBoard. Keep in mind, that the variable spaces points to the array object (it's not primitive). When I created a new MyBoard, say [MyBoard clone = new MyBoard()], I had [clone.spaces = this.spaces]. The problem with that is that now the MyBoard object called "clone" had a direct pointer to the spaces in the cloned board (the one that got copied), so whenever spaces was modified in the "clone" object, it also modified the old (cloned) object. Hope this helps, feel free to contact me if you need to.
-Giancarlo Dozzi |