Package edu.wisc.game.sql
Class Board
java.lang.Object
edu.wisc.game.sql.Board
@Entity public class Board extends Object
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Board.Pos
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
-
Constructor Summary
Constructors Constructor Description Board()
Creates an empty boardBoard(Piece[] pieces, Piece[] removedPieces, BitSet[] moveableTo)
Creates a board object to be sent out (as JSON) to the player's client, based on the current state of the episode.Board(RandomRG random, int randomCnt)
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 Type Method Description void
addPiece(Piece c)
Piece[]
asBoardPieces()
Produces an array of pieces with N*N elements, with nulls for empty cells.void
checkShapesAndColors(ColorMap cm)
Checking that a board description does not include any colors or shapes that cannot be displayedlong
getId()
String
getName()
Vector<Piece>
getValue()
long
persistNewBoard()
We aren't actually using SQL server to store boards, even though we have support for thisstatic Board
readBoard(File f)
Reads a board description from a JSON filestatic Board
readBoard(Reader r)
static Board
readBoardFromString(String jsonText)
void
removePiece(Piece c)
void
scrubDropped()
Removes the "dropped" field from all game pieces.void
setId(long _id)
void
setName(String _name)
void
setValue(Vector<Piece> _value)
Piece[]
toPieceList()
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:
- Constant Field Values
-
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.
-