タグ

2009年9月9日のブックマーク (3件)

  • 将棋プログラムの作り方

    将棋プログラムを作ってみましょう。 お断り:私はC++で書くのが一番速くコードが書けるので、コード例はC++で書いています。(しかも、いきあたりばったりに書いてます…読みづらくてごめんなさい。)内容はそんなに難しくない(…ということもないかも…)ので、他の言語で書くのもそう難しくないと思います。 将棋プログラムの基礎 駒と局面の内部表現を決める ここが実はとてもとてもとても重要なのですが、最初は試しに単純に作ってみましょう。 駒については、歩香桂銀金角飛王とそれぞれの成り駒、そして敵味方の区別が必要です。 敵味方の区別には、Cならビット演算が使えると高速でしょう。 で、ざっくりと駒の内部表現を考えると、 enum KOMAINF { OUT_OF_BOARD = 64, EMPTY = 0, FU = 1, KY = 2, KE = 3, GI = 4, KI = 5, KA = 6, H

    hidep22
    hidep22 2009/09/09
    将棋プログラムの作り方
  • Algorithms with Python / ミニマックス法とアルファベータ法

    hidep22
    hidep22 2009/09/09
    pythonでミニマックス法とαβ法
  • モンテカルロ法で囲碁、将棋

    2006/02/17 興味がわいて作成 囲碁の場合 1.モンテカルロ法とは? 2.モンテカルロ法を囲碁に適用すると? 3.5路盤での結果 4.9路盤と19路盤の結果 5.終局までの平均手数と平均目数、最大の手の目数 6.実際の囲碁プログラムでのモンテカルロ法 7.少し強く?したモンテカルロ法 8.実際にモンテカルロ法で対局させてみると? 将棋の場合はこちらを モンテカルロ法がコンピュータ囲碁ではちょっとしたブームらしいです 2005年9月のコンピュータオリンピックの囲碁の9路盤部門でモンテカルロ法を採用したフランスの囲碁プログラムが 好成績を収めました。(3位と5位、9チーム中) こんなお手軽でインチキくさい?方法がどこまで効果があるものか自分でも少し調べてみました。 1.モンテカルロ法とは? モンテカルロ法、で真っ先に思い浮かべるのは、正方形の中に乱数

    hidep22
    hidep22 2009/09/09
    もんてかるーろ