Clamini library

ミニマックス(手軽に連珠用)ライブラリ

 ミニマックス法を用いたCPUルーチンを実装し、ルールの簡略化がなされた連珠用ライブラリを作ってみました。


ライブラリの仕様

 基本的に15×15の盤面なので、処理速度を考慮して探索の深さは4にしています。 CPUは、評価関数に基づいた最善手を打ち続けます。

 アルゴリズムは攻撃重視なので、少しわきが甘いところがあるかもしれません。


ライブラリの使い方

 CPUが評価に基づく手を打つ関数と、勝利判定を行う関数が実装されています。

  get_best_move(board, n, tx, ty, total_turn, player)    
引数盤面, サイズ, 最後に打ったX, 最後に打ったY, 総ターン数, 手番(1or2)
戻り値初手先手時は中央値, その他の場合は打つ手の値

 check_game_end(board, n, tx, ty, total_turn, player)    
引数盤面, サイズ, 最後に打ったX, 最後に打ったY, 総ターン数, 手番(1or2)
戻り値-1: 満局, 0:継続, 1:黒勝利, 2:白勝利
3:黒の長連, 4:黒の三三, 5:黒の四四

 元々、盤面のサイズは可変にしようと思っていたため、サイズという引数が残っています。 現在の仕様では、サイズは15でしか動作しないので、実質的に固定値となっています。

ダウンロード

 下のリンクからファイルをダウンロードできます。

 minimax1.zip ※ZIP形式で圧縮されてるので、使う前に解凍してね!

 使用ライブラリについて
 本DLLは GNU Compiler Collection (gfortran) を使用してビルドされています。
 これに含まれるランタイムライブラリには、GCC Runtime Library Exception が適用されています。