Class OnTheFlyLegionMove.OnTheFlyLegionMoveIterator

java.lang.Object
net.sf.colossus.ai.helper.OnTheFlyLegionMove.OnTheFlyLegionMoveIterator
All Implemented Interfaces:
Iterator<LegionMove>
Enclosing class:
OnTheFlyLegionMove

class OnTheFlyLegionMove.OnTheFlyLegionMoveIterator extends Object implements Iterator<LegionMove>
  • Field Details

    • alreadydone

      private final SortedMap<int[],LegionMove> alreadydone
      map from indexes to LegionMove, what we have already sent to the AI
    • byValues

      private final List<int[]> byValues
      already done & evaluated, sorted by legion value
    • byValuesComparator

    • lastone

      private int[] lastone
      the previously returned object
    • beingdone

      private final SortedMap<int[],LegionMove> beingdone
      map from indexes to LegionMove, the next batch to send to the AI
    • daddy

      private final OnTheFlyLegionMove daddy
    • rand

      private final Random rand
    • dim

      private final int dim
    • abort

      private boolean abort
    • failoverOnly

      private boolean failoverOnly
    • incomps

      private final Set<Integer>[][][] incomps
      The 'incompatibility map'. first index is which position in the source int[] is checked. second index is which position in the destination source int[] is checked. third index is value in the source int[]. The Set is all the incompatible values in the dest int[].
    • lastDense

      private int[] lastDense
      deterministically make up a on-used combination
  • Constructor Details

  • Method Details

    • intArrayToString

      String intArrayToString(int[] t)
    • buildIncompMap

      private void buildIncompMap()
    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<LegionMove>
    • higherRankIncomp

      private int higherRankIncomp(int[] indexes)
    • isBad

      private boolean isBad(int[] indexes)
    • recurseGenerate

      private int recurseGenerate(int index, int[] counts, int[] actual)
      full recursive generation
    • firstfill

      private int firstfill()
      fill beingdone with the first, supposedly most interesting combinatione.
      Returns:
      The number of combinations generated.
    • failoverGeneration

      private int[] failoverGeneration()
    • spontaneousGeneration

      private int[] spontaneousGeneration()
      create a fully random combination
    • geneticGeneration

      private int[] geneticGeneration()
      create a genetic combination
    • getParent

      private int[] getParent(int percentRandom, int percentTop)
      pick a parent
    • breed

      private int[] breed(int[] mom, int[] dad, int percentRandom)
      breed a combination from parents
    • refill

      private int refill(int n)
      fill beingdone with up to n genetically generated, not-yet-done combinations.
      Parameters:
      n - The number of requeste combinations.
      Returns:
      The number of combinations generated.
    • next

      public LegionMove next()
      Specified by:
      next in interface Iterator<LegionMove>
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<LegionMove>
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable