Package edu.wisc.game.rest
Class ParaSet
- All Implemented Interfaces:
Serializable
,Cloneable
,Map<String,Object>
public class ParaSet extends HashMap<String,Object>
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ParaSet.Incentive
Various incentive schemes available to experiment designers.Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>
-
Field Summary
Fields Modifier and Type Field Description Piece.Color[]
colors
ImageObject.Generator
imageGenerator
Will be set as appropriate if specified in the CSV file "images" column.static ParaSet
legacy
A dummy ParaSet object that contains legacy colors and shapes.Piece.Shape[]
shapes
Will be set as appropriate if specified in the CSV file "colors" column -
Constructor Summary
-
Method Summary
Modifier and Type Method Description void
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
checkImages()
void
checkIncentive()
Checks whether the parameters related to incentive schemes are consistent (that is, you don't have a parameter from one scheme and and another parameter from a different scheme).void
checkShapes()
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
getClearingThreshold()
String
getColors()
For JSONboolean
getCont()
double
getDouble(String key)
double
getDouble(String key, boolean optional, double defaultValue)
String
getImages()
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.int
getInt(String key)
int
getInt(String key, boolean optional, int defaultValue)
int
getMaxBoards()
double
getPickCost()
The cost of a pick attempt, in terms of the cost of a move.String
getRuleSetName()
String
getShapes()
boolean
isFeedbackSwitchesFree()
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.int[]
kantorLupyanRewardRange(double errors)
static Piece.Color[]
parseColors(String val)
static ImageObject.Generator
parseImages(String val)
Parses the content of the "images" column.static Piece.Shape[]
parseShapes(String val)
Parses a semicolon-separated list of shapes.boolean
pickCostIsInt()
Is the cost of a pick attempt an integer?static ParaSet
textToParaSet(String s)
Processes ParaSet data that have been already read into string.String
toString()
Methods inherited from class java.util.HashMap
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Field Details
-
shapes
Will be set as appropriate if specified in the CSV file "colors" column -
colors
-
imageGenerator
Will be set as appropriate if specified in the CSV file "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
Reads a ParaSet from a CSV file with key-val columns. This method is mostly obsolete now, since we read parameters from trial list files instead. It can, however, be "revived" for other applications, e.g. providing parameters for an automatic rule generator.- Throws:
IOException
IllegalInputException
-
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
-
parseImages
Parses the content of the "images" column. It may contain a semicolon-separated list of wildcard expressions. Together, they determine the set of ImageObjects from which random boards can be constructed for the episodes played pursuant to this ParaSet.- 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 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.
-
kantorLupyanRewardRange
public int[] kantorLupyanRewardRange(double errors)- Returns:
- (lowerBound, upperBound)
-