private void fill() {
            while (true) {
                if (!_pieces.hasNext() && directionCount == 7) {
                    _move = null;
                    return;
                } else {
                    _move = Move.create(_piece, NEIGHBORS[directionCount], _b.
                            numInDir(_piece, directionCount));
                    if (directionCount == 7 && _pieces.hasNext()) {
                        _piece = _pieces.next();
                    }
                    directionCount = (directionCount + 1) % 8;
                    if (_b.isLegal(_move)) {
                        return;
                    }
                }
            }
        }