Class MasterBoard

java.lang.Object
net.sf.colossus.variant.MasterBoard

public class MasterBoard extends Object
The master board as part of a variant. Instances of this class are immutable.
  • Field Details

    • LOGGER

      private static final Logger LOGGER
    • horizSize

      private final int horizSize
      The number of hexes in the widest section.
    • vertSize

      private final int vertSize
      The number of hexes in the tallest section.
    • boardParity

      private final int boardParity
      "parity" of the board, so that hexes are displayed the proper way
    • plainHexArray

      private final MasterHex[][] plainHexArray
      TODO do something more OO, don't use arrays, fold show into it somehow (even using null seems better than the split).
    • show

      private final boolean[][] show
      The hexes in the horizSize*vertSize array that actually exist are represented by true.
    • towerSet

      private final Set<MasterHex> towerSet
      A Set of all Tower hexes.
    • hexByLabelCache

      private final Map<String,MasterHex> hexByLabelCache
      A cache for faster lookup of hexes using their labels.
  • Constructor Details

    • MasterBoard

      public MasterBoard(int horizSize, int vertSize, boolean[][] show, MasterHex[][] plainHexArray)
  • Method Details

    • getBoardParity

      public int getBoardParity()
    • getPlainHexArray

      public MasterHex[][] getPlainHexArray()
    • getShow

      public boolean[][] getShow()
    • getHorizSize

      public int getHorizSize()
    • getVertSize

      public int getVertSize()
    • computeBoardParity

      private int computeBoardParity()
    • setupExits

      private void setupExits(MasterHex[][] h)
    • setupOneExit

      private void setupOneExit(MasterHex[][] h, int i, int j, int k)
    • setupEntrances

      private void setupEntrances(MasterHex[][] h)
    • setupHexLabelSides

      private void setupHexLabelSides(MasterHex[][] h)
      If the shortest hexside closest to the center of the board is a short hexside, set the label side to it. Else set the label side to the opposite hexside.
    • isHexInverted

      public boolean isHexInverted(int i, int j)
    • setupNeighbors

      private void setupNeighbors(MasterHex[][] h)
    • initHexByLabelCache

      private void initHexByLabelCache()
    • getHexByLabel

      public MasterHex getHexByLabel(String label)
      Retrieve a hex by its label.
      Parameters:
      label - The label to find the hex for. Valid label, not null.
      Returns:
      The label found.
    • getTowerSet

      public Set<MasterHex> getTowerSet()
    • setupTowerSet

      private void setupTowerSet()
    • getAllHexLabels

      public Set<String> getAllHexLabels()
      Return a set of all hex labels.
    • getAllHexes

      public Collection<MasterHex> getAllHexes()
      Return a set of all hex labels.