public boolean isSolution01() {
        for (int robo = 0;  robo < this.robots.length;  ++robo) {
            final int oldRoboPos = this.robots[robo];
            if ((this.goal.position == oldRoboPos) && ((this.goal.robotNumber == robo) || (this.goal.robotNumber == -1))) {
                return true; // already on goal
            }
            int dir = -1;
            for (final int dirIncr : this.directionIncrement) {
                ++dir;
                int newRoboPos = oldRoboPos;
                // move the robot until it reaches a wall. (_NOT_ another robot!)
                // NOTE: we rely on the fact that all boards are surrounded
                // by outer walls. without the outer walls we would need
                // some additional boundary checking here.
                while (false == this.walls[dir][newRoboPos]) {
                    newRoboPos += dirIncr;
                    if ((this.goal.position == newRoboPos) && ((this.goal.robotNumber == robo) || (this.goal.robotNumber == -1))) {
                        return true; // one move to goal
                    }
                }
            }
        }
        return false;
    }