文通将棋ならぬ文鳥将棋を作ろう!①
卒論に追われていると他のことしたくなるよね!
部屋の片付けもそこそこに、面白そうなPythonで作れるサービスを考えたから、現実逃避に作ってみようって思いつきました。
研究室の先輩とか、身の回りの人が今ハマってるし、藤井四段とかで何かと知名度は高いしね。 (余談ですが自身も初段くらいは・・・いや、今はミス多いし下がってるかも・・・?)
そもそも文通将棋とは・・?
昔、インターネットも普及していなかった時の頃。
将棋を指すには2人将棋盤を挟んで指さないといけなかったけど、どうしても会えない遠い友人や、将棋好きの知り合いには手紙を送りあって将棋をしていました。
というのも、手紙の文面に自分が指す一手を書いてポストに投函。
届いた相手がそれを見て、指す一手を書いて手紙を返信。
また返信されて帰ってきた手紙の一手を見て、次の手が書かれた手紙を返信。
この繰り返し。一手に数日もかかることもあるので、非常にゆっくりとした将棋になるためじっくり考えることができるし、
何より手紙なので「こっちの地域は雪が降るようになりました」みたいなことも書けます。季節を感じながらゆったり将棋をするなんていうスローライフを過ごすことができます。素晴らしい昔の楽しみ方で将棋を指せるから、・・・・・・!
脱線しました
これをTwitterのリプライを使って再現できたらな!と思いました。ん?これtweetbot的な感じかな??んん?まぁいいや。
文鳥将棋!!
Twitterだから鳥をプロダクト名に入れました。手紙を届ける鳥を文鳥っていうし。
ルール
Twitterはいくらでもメッセージを送りあえたりするので、ルールを設けましょう。
- リプライに対戦相手と文鳥将棋のTwitterアカウントを指定して送信
- 【@[相手] @[文鳥将棋] 七六歩】みたいな感じかな?
- 1日に一手だけ送れる、それ以上送っても無効
ルールはもっと設けるかもしれないけど最低限。
仕様
自分が作るだけだから要件定義とかしないで「こんなの作りたいなー」を作ますかね。
- 言語:Python(一番自分が、楽に実現したいアルゴリズムを書ける言語、他は知らん、必要になったら頑張って読むさ)
- 棋譜付きのリプライが飛んだら解析して変換(KI2形式?)してpythonインスタンス作ったpythonサーバー上で指し手を実行する
- 指した後の盤面を画像に出力して、文鳥将棋アカウントから対戦相手に画像付きツイート
- 動かせないところに動かそうとしたらエラー吐かせる
- 王手や詰みを一手ごとに確認してその時は専用メッセージを送る
- そこそこ便利そうなライブラリがあるみたいなので、使っていきます (Twitter API、python-shogi、pyogiとか)。ドキュメント無いものもあるのでそこはコード読みながら・・・
進捗だしたら、記事として書きます
途中で挫折するかもだけど、超超スローペースかもだけどちまちま作ってきます。 宣言したことに意味があるのかな?と思ってたり。その他の記事も上げたり上げなかったりします。
では次回の記事で!