Package edu.wisc.game.sql
Class Board
java.lang.Object
edu.wisc.game.sql.Board
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classCan 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 TypeMethodDescriptionvoidPiece[]Produces an array of pieces with N*N elements, with nulls for empty cells.voidChecking that a board description does not include any colors or shapes that cannot be displayedlonggetId()getName()getValue()longWe aren't actually using SQL server to store boards, even though we have support for thisstatic BoardReads a board description from a JSON filestatic Boardstatic BoardreadBoardFromString(String jsonText) voidremovePiece(Piece c) voidRemoves the "dropped" field from all game pieces.voidsetId(long _id) voidvoidPiece[]Creates an array with N*N+1 elements, where the element in position j represents the game piece, if any, in cell No.static intxynum(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.
-