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), ...
-
Constructor Summary
Constructors Constructor Description Board()
Creates an empty boardBoard(int randomCnt)
The simple constructor, creates a random board with a given number of pieces, using the 4 legacy colors.Board(int randomCnt, int nShapes, int nColors, Piece.Shape[] allShapes, Piece.Color[] allColors)
The main constructor for a random initial board in GS 2.*.Board(int randomCnt, String[] allImages)
The main constructor for a random image-and-property-based initial board in GS 3.*.Board(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.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPiece(Piece c)
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()
static void
initRandom(long seed)
This can be called on startup (from main()) if we want to initialize the random number generator with a specific seedlong
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 filevoid
removePiece(Piece c)
void
setId(long _id)
void
setName(String _name)
void
setValue(Vector<Piece> _value)
static int
xynum(int x, int y)
The position number for the point at (x,y)
-
-
-
Field Detail
-
N
public static final int N
- See Also:
- Constant Field Values
-
buckets
public static final Board.Pos[] buckets
The positions of the 4 buckets
-
random
public static RandomRG random
-
-
Constructor Detail
-
Board
public Board()
Creates an empty board
-
Board
public Board(int randomCnt)
The simple constructor, creates a random board with a given number of pieces, using the 4 legacy colors.
-
Board
public Board(int randomCnt, int nShapes, int nColors, Piece.Shape[] allShapes, Piece.Color[] allColors)
The main constructor for a random initial board in GS 2.*.- Parameters:
randomCnt
- 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
public Board(int randomCnt, String[] allImages)
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
public Board(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.- 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 Detail
-
xynum
public static int xynum(int x, int y)
The position number for the point at (x,y)
-
addPiece
public void addPiece(Piece c)
-
removePiece
public void removePiece(Piece c)
-
getId
public long getId()
-
setId
public void setId(long _id)
-
getName
public String getName()
-
setName
public void setName(String _name)
-
initRandom
public static void initRandom(long seed)
This can be called on startup (from main()) if we want to initialize the random number generator with a specific seed
-
persistNewBoard
public long persistNewBoard()
We aren't actually using SQL server to store boards, even though we have support for this
-
readBoard
public static Board readBoard(File f) throws IOException, ReflectiveOperationException
Reads a board description from a JSON file
-
checkShapesAndColors
public void checkShapesAndColors(ColorMap cm) throws IOException
Checking that a board description does not include any colors or shapes that cannot be displayed- Throws:
IOException
-
-