Class Board

java.lang.Object
edu.wisc.game.sql.Board

@Entity public class Board extends Object
  • Field Details

  • Constructor Details

    • Board

      public Board()
      Creates an empty board
    • Board

      public Board(RandomRG random, int randomCnt)
      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 use
      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 drawn
      allColors - the set from which colors are drawn
    • Board

      public Board(RandomRG random, int randomCnt, ImageObject.Generator imageGenerator)
      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 Details

    • 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)
    • getValue

      public Vector<Piece> getValue()
    • setValue

      public void setValue(Vector<Piece> _value)
    • asBoardPieces

      public Piece[] 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

      public static Board readBoard(File f) throws IOException, ReflectiveOperationException
      Reads a board description from a JSON file
      Throws:
      IOException
      ReflectiveOperationException
    • readBoardFromString

      public static Board readBoardFromString(String jsonText) throws IOException, ReflectiveOperationException
      Throws:
      IOException
      ReflectiveOperationException
    • readBoard

      public static Board readBoard(Reader r) throws IOException, ReflectiveOperationException
      Throws:
      IOException
      ReflectiveOperationException
    • 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
    • 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

      public 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. j.