Ejemplo n.º 1
0
static void
benchmark(int num_games_per_point)
{
  int i, j;
  unsigned int random_seed = 1U;
  board_size = 9;
  komi = 0.5;

  init_brown(random_seed);

  for (i = 0; i < board_size; i++) {
    for (j = 0; j < board_size; j++) {
      int white_wins = 0;
      int black_wins = 0;
      int k;
      for (k = 0; k < num_games_per_point; k++) {
	int passes = 0;
	int num_moves = 1;
	int color = WHITE;
        clear_board();
	play_move(i, j, BLACK);
        while (passes < 3 && num_moves < 600) {
	  int m, n;
          generate_move(&m, &n, color);
          play_move(m, n, color);
          if (pass_move(m, n)) {
            passes++;
          }
          else {
            passes = 0;
          }
          num_moves++;
          color = OTHER_COLOR(color);
        }
	if (passes == 3) {
	  if (compute_score() > 0) {
	    white_wins++;
	  }
	  else {
	    black_wins++;
	  }
	}
      }
      /*
      printf("%d %d %f\n", i, j,
	     (float) black_wins / (float) (black_wins + white_wins));
      */
    }
  }
}
Ejemplo n.º 2
0
static int
gtp_boardsize(char *s)
{
  int boardsize;

  if (sscanf(s, "%d", &boardsize) < 1)
    return gtp_failure("boardsize not an integer");
  
  if (boardsize < MIN_BOARD || boardsize > MAX_BOARD)
    return gtp_failure("unacceptable size");

  board_size = boardsize;
  gtp_internal_set_boardsize(boardsize);
  init_brown();
  
  return gtp_success("");
}
Ejemplo n.º 3
0
int
main(int argc, char **argv)
{
  unsigned int random_seed = 1;

  /* Optionally a random seed can be passed as an argument to the program. */
  if (argc > 1)
    sscanf(argv[1], "%u", &random_seed);
  srand(random_seed);
  
  /* Make sure that stdout is not block buffered. */
  setbuf(stdout, NULL);
  
  /* Inform the GTP utility functions about the initial board size. */
  gtp_internal_set_boardsize(board_size);

  /* Initialize the board. */
  init_brown();

  /* Process GTP commands. */
  gtp_main_loop(commands, stdin, NULL);

  return 0;
}