SpaceList getForkSpaces(Piece piece) {
		SpaceList list = new SpaceList();
		Space[] oppSpaceArray = getSpacesWithPiece(piece);
		Space[][] openSetsLast = getOpenSets(lastSpaceMoved);
		for (Space oppSpace : oppSpaceArray) {
			if (oppSpace != lastSpaceMoved) {
				Space[][] openOppSets = getOpenSets(oppSpace);
				for (Space[] oppSet : openOppSets) {
					for (Space[] setLast : openSetsLast) {
						Space space = getCommonSpace(setLast, oppSet);
						if (space != null && space.piece == N)
							list.add(space);
					}
				}
			}
		}
		return list;
	}