Class ParaSet

    • Field Detail

      • shapes

        public Piece.Shape[] shapes
        Will be set as appropriate if specified in the CSV file "colors" column
      • imageGenerator

        public ImageObject.Generator imageGenerator
        Will be set as appropriate if the CSV file has an "images" column. The array elements are keys used for the image lookup. Otherwise, null
      • legacy

        public static final ParaSet legacy
        A dummy ParaSet object that contains legacy colors and shapes. This is used e.g. as a default context in the automatic rule generation.
    • Method Detail

      • getColors

        public String getColors()
        For JSON
      • getShapes

        public String getShapes()
      • getImages

        public String getImages()
      • parseShapes

        public static Piece.Shape[] parseShapes​(String val)
                                         throws IOException
        Parses a semicolon-separated list of shapes.
        Returns:
        An array of Shape values, or null if val is null or empty.
        Throws:
        IOException - On a parsing problem (invalid shape names)
      • getInt

        public int getInt​(String key)
      • getDouble

        public double getDouble​(String key)
      • getBoolean

        public boolean getBoolean​(String key,
                                  Boolean defVal)
      • getDouble

        public double getDouble​(String key,
                                boolean optional,
                                double defaultValue)
        Parameters:
        optional - If true, this method will not throw an exception, and will return defaultValue, if the parameter is absent in the set
        defaultValue - Only used if optional==true
      • getInt

        public int getInt​(String key,
                          boolean optional,
                          int defaultValue)
      • getMaxBoards

        public int getMaxBoards()
      • getRuleSetName

        public String getRuleSetName()
      • getClearingThreshold

        public double getClearingThreshold()
      • getPickCost

        public double getPickCost()
        The cost of a pick attempt, in terms of the cost of a move. The default is 1.0. An early proposal called this param "pick_cost", but then I realized that Paul had planned for it all along, under a different name.
      • pickCostIsInt

        public boolean pickCostIsInt()
        Is the cost of a pick attempt an integer?
      • getCont

        public boolean getCont()
      • checkColors

        public void checkColors​(ColorMap cm)
                         throws IOException
        Makes sure that this parameter set's color list (used for generating random boards) only contains valid colors (present in the color map)
        Throws:
        IOException
      • checkShapes

        public void checkShapes()
                         throws IOException
        Makes sure that this parameter set's shape list (used for generating random boards) only contains valid shapes (for which SVG files exist)
        Throws:
        IOException
      • isFeedbackSwitchesFree

        public boolean isFeedbackSwitchesFree()
        True if the player is not told which pieces are movable. (free = no objects are marked with X. Seeking to move an object is counted as some fraction of a move.)
      • getIncentive

        public ParaSet.Incentive getIncentive()
        Returns the name of the incentive scheme in use in this para set, or null if none is apparenly is in effect. This is determined by the presence or absence of necessary parameters.
      • checkIncentive

        public void checkIncentive()
                            throws IllegalInputException
        Checks whether the parameters related to incentive schemes are consistent (that is, you don't have a parameter from one scheme and another parameter from a different scheme).
        Throws:
        IllegalInputException
      • kantorLupyanReward

        public int kantorLupyanReward​(double errors)
        Returns the reward for an episode with a given number of errors, computed by the Kantor-Lupyan formula. The Kantor-Lupyan formula for the reward computation is at https://www.desmos.com/calculator/9nyuxjy7ri . The actual min (asymptotic) is smin; the actual max (atd=0) is smin + (smax-smin)/(1+exp(-2*b)), which is a bit smaller than smax
        Parameters:
        errors - The number of errors the player has made in the episode. This can be a fractional number, if failed pick attempts are counted with a weight less than 1.0. The value Double.POSITIVE_INFINITY if allowed, in order to compute the lower bound of possible reward.
      • kantorLupyanReward0

        public double kantorLupyanReward0​(double errors)
      • kantorLupyanRewardRange

        public int[] kantorLupyanRewardRange​(double errors)
        Returns:
        (lowerBound, upperBound)