Class 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

      Fields 
      Modifier and Type Field Description
      static Board.Pos[] buckets
      The positions of the 4 buckets
      static int N  
      static RandomRG random  
    • Constructor Summary

      Constructors 
      Constructor Description
      Board()
      Creates an empty board
      Board​(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.
    • 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 drawn
        allColors - 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)
      • setValue

        public void setValue​(Vector<Piece> _value)
      • 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
      • 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