Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

ビットボードによるオセロシステム&minimax法による探索

pythonのビットボードによる低負荷なオセロシステムを実装しました。関数の説明をします。

また、minmax法に用いている評価関数を改良するなどしてみてください。pythonとオセロを組み合わせて使う場合には是非ご活用ください。

  • get_legal_square

    盤面とプレイヤーの色を入力すると、そのプレイヤーが石を置ける場所が返ってきます。

  • identify_flip_stone

    盤面とプレイヤーの色、プレイヤーが石を置く場所を入力すると、ひっくり返る石のリストや、それを反映させた盤面がかえってくる。

  • get_confirmed_stones

    盤面を入力すると、確定石の場所がそれぞれの色について返ってきます。

  • evaluate_board

    盤面を入力すると、その盤面の(白目線の)評価値が返ってきます。minimax法の実装に使います。

  • minimax

    minimax法により最も評価の高い手が返ってきます。

  • board_to_bitboard

    8*8のオセロの盤面を模したnumpy配列と、playerの色を与えると、bitboard用に変換されて返ってきます。

  • bitboard_to_numpy

    ビットボードのオセロ盤面を入力すると、8*8のnumpy配列に変換されます。

評価関数について

現在の評価関数は、着手可能手数の差、確定石の数の差、1マスごとに与えられた得点をもとに決める盤面評価値、枚数の差、辺の埋まり具合などの割合を調節して点数をつけています。詳しくはコードを参照(読みにくいけど)

外部のオセロサイトからの盤面取得について

外部のオセロサイトの盤面を取得するソースコード、盤面の画像を入力したらその盤面をnumpy配列に変換するソースコードについては、それらも一緒に公開すると近日一部有料で発売予定のソフトのシステムが完成してしまう恐れがあるため、公開は見送ります。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages