/* @ pure */ public Coordinate recursiveCheck(int x, int y, Mark mark, int xOffset,
			int yOffset, boolean seenSomething) {
		if (x < 0 || y < 0 || x > DIM - 1 || y > DIM - 1) {
			return null;
		} else if (fields[index(x, y)] == Mark.EMPTY) {
			return null;
		} else if (fields[index(x, y)] == mark && seenSomething) {
			return coordinates[index(x, y)];
		} else if (fields[index(x, y)] == mark && !seenSomething) {
			return null;
		} else {
			return recursiveCheck(x + xOffset, y + yOffset, mark, xOffset,
					yOffset, true);
		}
	}