1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

コンピュータ将棋製作記 その4

Last updated at Posted at 2015-01-23

コンピュータ将棋製作記 その4(2015年1月23日)

進捗どうですか?

昨日の課題

  • floodgateでランダムプログラムを走らせる

今日進んだ所

  • floodgateでランダムプログラムを走らせた

TCPクライアントとランダムプログラムの連結

TCPクライアントで、サーバから送られてくる文字列をパースして、それをランダムプログラムとつなげてやればいい。

サーバから送られてくるデータのプロトコルは次のページに定義されている。

CSAサーバ プロトコル ver.1.1.2: http://www.computer-shogi.org/protocol/tcp_ip_server_112.html

色々と詳細に送られてくるが、今回は馬鹿正直にそれらに対応する必要はない。今回対応したのは次の2つのコマンドのみ

  • Your_Turn:+
  • END Game_Summary

自分のターンが先手か後手かを判断するのと、サーバがデータを送り終わったことを判定するのが必要だったのでそれだけを実装した。

END Game_Summaryを受信したら、とにかくAGREEを返して試合開始待ちにし、STARTを受信したら先手だったらとにかく指す。相手の手を見て指す。それだけ

とにかく動作チェックが30分に1回しか出来ないので、バグを出して動かないと30分待ちというつらい状況だった。4回失敗したので2時間無為に過ごした。自分で簡易サーバを作って、そこでテストすればよかったかもしれない。

C言語の開発効率の悪さ

昨日も書いたけれど、C言語で書くのが間違いという思いをさらに強くしている。恐らく何らかのスクリプト言語で1から書き直すつもりでいる。

雑感

  • CSAに対応させる必要はあまりなかった

    • USI等に対応させて、何らかのソフトでCSAに変換してもらえばよかったと考えている
  • ランダムで動かす最弱ソフトをfloodgateに入れていいのだろうか

  • 全くのランダムにせよ、自分の書いた将棋プログラムが動いているのは嬉しいものだ

次回予定

TODO

  • CSA、USIの状況について調べてみる。Windowsでの開発が必須か?
  • (気合が乗れば)Pythonもしくはnode.jsを使って書き直しはじめる
    • どのような設計で作るかについても考えておきたい

短期目標

  • 金曜夜(30日夜)までに、minimaxなりα-βなりで何らかの思考ルーチンを組む
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?