Package edu.wisc.game.sql
Class Board
java.lang.Object
edu.wisc.game.sql.Board
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Can be used to describe the position of a piece on the [1:N]x[1:N] grid, or that of a bucket (at (0,0), ... -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBoard()
Creates an empty boardCreates a board object to be sent out (as JSON) to the player's client, based on the current state of the episode.The simple constructor, creates a random board with a given number of pieces, using the 4 legacy colors.Board
(RandomRG random, int randomCnt, int nShapes, int nColors, Piece.Shape[] allShapes, Piece.Color[] allColors) The main constructor for a random initial board in GS 2.*.Board
(RandomRG random, int randomCnt, ImageObject.Generator imageGenerator) The main constructor for a random image-and-property-based initial board in GS 3.*. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Piece[]
Produces an array of pieces with N*N elements, with nulls for empty cells.void
Checking that a board description does not include any colors or shapes that cannot be displayedlong
getId()
getName()
getValue()
long
We aren't actually using SQL server to store boards, even though we have support for thisstatic Board
Reads a board description from a JSON filestatic Board
static Board
readBoardFromString
(String jsonText) void
removePiece
(Piece c) void
Removes the "dropped" field from all game pieces.void
setId
(long _id) void
void
Piece[]
Creates an array with N*N+1 elements, where the element in position j represents the game piece, if any, in cell No.static int
xynum
(int x, int y) The position number for the point at (x,y)
-
Field Details
-
N
public static final int N- See Also:
-
buckets
The positions of the 4 buckets
-
-
Constructor Details
-
Board
public Board()Creates an empty board -
Board
The simple constructor, creates a random board with a given number of pieces, using the 4 legacy colors. -
Board
public Board(RandomRG random, int randomCnt, int nShapes, int nColors, Piece.Shape[] allShapes, Piece.Color[] allColors) The main constructor for a random initial board in GS 2.*.- Parameters:
random
- The random number generator to userandomCnt
- required number of pieces.nShapes
- required number of shapes. If 0 is passed, there is no restriction (independent decision is made for each piece)nColors
- required number of colors. If 0 is passed, there is no restriction (independent decision is made for each piece)allShapes
- the set from which shapes are drawnallColors
- the set from which colors are drawn
-
Board
The main constructor for a random image-and-property-based initial board in GS 3.*.- Parameters:
randomCnt
- required number of pieces.allImages
- the set from which images are drawn
-
Board
Creates a board object to be sent out (as JSON) to the player's client, based on the current state of the episode.- Parameters:
pieces
- The pieces still on the board. (An array of N^2 elements, with nulls)removedPieces
- If not null, these pieces will also be included into the generated Board object, with the flag dropped=true. This is what the GUI client wants.moveableTo
- Specifies to which buckets each piece can be moved to.
-
-
Method Details
-
xynum
public static int xynum(int x, int y) The position number for the point at (x,y) -
addPiece
-
removePiece
-
getId
public long getId() -
setId
public void setId(long _id) -
getName
-
setName
-
getValue
-
setValue
-
asBoardPieces
Produces an array of pieces with N*N elements, with nulls for empty cells. Used in BoardDisplayService only. -
persistNewBoard
public long persistNewBoard()We aren't actually using SQL server to store boards, even though we have support for this -
readBoard
Reads a board description from a JSON file -
readBoardFromString
public static Board readBoardFromString(String jsonText) throws IOException, ReflectiveOperationException -
readBoard
-
checkShapesAndColors
Checking that a board description does not include any colors or shapes that cannot be displayed- Throws:
IOException
-
scrubDropped
public void scrubDropped()Removes the "dropped" field from all game pieces. This method can be used when an already-played board is to be reused (e.g. in a PredefinedBoardGameGenerator) -
toPieceList
Creates an array with N*N+1 elements, where the element in position j represents the game piece, if any, in cell No. j.
-