Package edu.wisc.game.rest
Class ParaSet
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<String,
Object>
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Various incentive schemes available to experiment designers.Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,
V>, AbstractMap.SimpleImmutableEntry<K, V> -
Field Summary
FieldsModifier and TypeFieldDescriptionWill be set as appropriate if the CSV file has an "images" column.static final ParaSet
A dummy ParaSet object that contains legacy colors and shapes.Will be set as appropriate if specified in the CSV file "colors" column -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
checkColors
(ColorMap cm) Makes sure that this parameter set's color list (used for generating random boards) only contains valid colors (present in the color map)void
void
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).void
Makes sure that this parameter set's shape list (used for generating random boards) only contains valid shapes (for which SVG files exist)boolean
getBoolean
(String key, Boolean defVal) double
For JSONboolean
getCont()
double
double
Returns the name of the incentive scheme in use in this para set, or null if none is apparenly is in effect.int
int
int
double
The cost of a pick attempt, in terms of the cost of a move.boolean
True if the player is not told which pieces are movable.int
kantorLupyanReward
(double errors) Returns the reward for an episode with a given number of errors, computed by the Kantor-Lupyan formula.double
kantorLupyanReward0
(double errors) int[]
kantorLupyanRewardRange
(double errors) static Piece.Color[]
parseColors
(String val) static Piece.Shape[]
parseShapes
(String val) Parses a semicolon-separated list of shapes.boolean
Is the cost of a pick attempt an integer?static ParaSet
Processes ParaSet data that have been already read into string.toString()
Methods inherited from class java.util.HashMap
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, newHashMap, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
Methods inherited from class java.util.AbstractMap
equals, hashCode
-
Field Details
-
shapes
Will be set as appropriate if specified in the CSV file "colors" column -
colors
-
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
A dummy ParaSet object that contains legacy colors and shapes. This is used e.g. as a default context in the automatic rule generation.
-
-
Constructor Details
-
ParaSet
- Throws:
IOException
IllegalInputException
-
ParaSet
- Parameters:
csv
- One param per line- Throws:
IOException
-
-
Method Details
-
getColors
For JSON -
getShapes
-
getImages
-
parseShapes
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)
-
parseColors
- Throws:
IOException
-
textToParaSet
Processes ParaSet data that have been already read into string.- Parameters:
s
- A multi-line string, which looks like the content of a traditional ParaSet CSV file. This can come over HTTP, for example.- Throws:
IOException
IllegalInputException
-
getInt
-
getDouble
-
getBoolean
-
getDouble
- Parameters:
optional
- If true, this method will not throw an exception, and will return defaultValue, if the parameter is absent in the setdefaultValue
- Only used if optional==true
-
getInt
-
getMaxBoards
public int getMaxBoards() -
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
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
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
-
checkImages
- 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.) -
toString
- Overrides:
toString
in classAbstractMap<String,
Object>
-
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
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)
-