Random Go Move Selection

   

Since there has been some discussion elsewhere on the randomness of "random" players, here is the algorithm that randomGo is using:

Move genMove(Color color) {

  Move m;
  int n;
  m.color = color;
  for (n = 0; n < 100; n++) {
    m.row = randomNext() % boardSize;
    m.col = randomNext() % boardSize;
    if (playMove(m)) {
      return m;
    }
  }
  /* no legal move found */
  MK_PASS(m);
  return m;

}

randomNext() produces a pseudo-random number using a linear congruential generator

playMove() determines if a move is legal (taking into account the rules for superko and suicide), and if so, executes it and returns true - otherwise returns false


This is a copy of the living page "Random Go Move Selection" at Sensei's Library.
(OC) 2014 the Authors, published under the OpenContent License V1.0.
[Welcome to Sensei's Library!]
StartingPoints
ReferenceSection
About