« (Mac)Win2000+JDK6のインストール@VirtualBox | メイン | MVCパターンの適用限界を考える(1) »

 将棋の棋譜再生iアプリを作ってみた

昨年はまあまあ満足できた将棋大会に、今年も参加したら、全く思い通りに指せなかった。
将棋では、相手に押さえ込まれて何もできなくなるというのはよくあることだが、そういう感じではなく、筆者の指し手に相当な自由度、選択肢があったのに、さっぱり頭が回らなかったのである。
何も思い付かないまま、何もできないまま、持ち時間が無くなって、2敗して予選落ちしてしまった。大会規程により、今年はA級で参加せざるを得なかったのだが、あの調子だとB級でも散々だっただろう。
そんなことあり、もうちょっと将棋を勉強しようという気になった。

図書館から定跡本を借りて時々読んでいると、ちょっと気が向いた時に見れないことが多いことに気付いた。筆者は割と外出先にでも本を持ち歩く習慣があるのだが、確実な待ち時間が予想できないと持ち歩かないようであるのと、本は携帯電話と違って片手では開けないことが要因としてあるようである。
それでなくても、携帯電話でアプリを動かしていると、将棋盤を再現できるアプリがあればいいのにな、と思うのは自然なことであろう。

筆者が持っている携帯電話は、昨年の将棋大会の日に買った、ドコモのP-01Cである。iモードアプリしか動かない「ガラパゴス携帯」である。スマホは保有していない。
これで動く棋譜再生アプリが見つかれば良かったのだが、毎月費用が105円とか315円とかかかるものを除くと、適当なアプリが見つからなかった。1つ、棋譜管理に特化した、丁度いいアプリがあった(今はもう見つからない)のだが、大抵のiモード機種に対応してるのに、なぜかP-01Cは対応しておらず、ダウンロードもできなかった。

それに対して、スマホ用の棋譜管理ができる将棋アプリはごろごろ転がっているようである。この機会にスマホを購入しようかと思ったが、それだけの為にスマホを買うのはどうかと思った。

棋譜再生アプリを自分で作ろうか、と、ちょっと思い始めた。しかし、筆者はiアプリの作り方をほとんど覚えていなかった。というより、5年ほど前に簡単なものを1回か2回作って実機で動かすのを試しただけなので、覚えたことがある程でもない。もしやるとすれば、アプリの一挙手一投足に至るまで、DoJaのAPI仕様書を検索しまくることになる。

今や世界シェアの50%以上がスマホというこのご時世に、今更DoJaアプリの開発に挑戦すべきだろうか。今から覚えるならAndroidかiPhoneのアプリの作り方であろう。この機会にスマホを1台買おう、とも思ったのだが、スマホを買うと、上述の通り、自分で棋譜再生アプリを作る必要性が無くなってしまう。

それに、スマホを買うと、きっともうP-01Cを使わなくなってしまうだろう。Javaに思い入れがある者としては、このまま自作のJavaアプリを1つも作らずにP-01Cを使い終わることは、ケーキを半分残して腐らせてしまうくらいに勿体ないことなのである。そうなれば、将来必ず後悔するであろう。その前に、このままでは必ず、廃棄する直前に、供養の為にもiアプリを1つは作って動かさなければならないという強迫観念に襲われるに違いない。もはやあと1回iアプリを作ることは筆者の宿命なのである。

・スクリーンショット
screen shot
※この画面はiDKDoJaのエミュレーターで作成したもので、実機の画面とは異なる。
 実際には、盤面の駒も含めて、文字は機種毎のシステムフォントが使用される。
i-mode用ダウンロードページへのリンク
・ボタン操作
 1-9: 1手進める
 *: 1手戻す
 #: 次の分岐点まで進める、または前の分岐点まで戻す
 0: 初期状態に戻す
・ソースコード(iDKDoJaプロジェクトのsrc/に配置)
 iKifuPlayer.java
 Board.java
 KifTree.java
・作成者
 maruinen(筆者のネット将棋でのハンドル)
・棋譜データの例(iDKDoJaプロジェクトのres/に配置)
 Kifs.txt
 空行は1つの棋譜の終わりとして扱われる。ファイル名は固定。
・棋譜データの入れ替え方法
 iDKDoJaと上のソースコードを使って、アプリ自体を作り直すしか無い。

DoJaアプリがAndroidでも動作するようになるという噂を読んだような気もするし、もしAndroidを入手したらたぶんまあまあ簡単に移植できるような気もするので、きっと無駄にはなるまい。

今の所、棋譜データを入れ替えるには、データファイルを書き換えてアプリ自体を作り直すしかない。主に自分用に作ったアプリであり、筆者は当面それで困らないのである。気が向いたらZIP圧縮した棋譜データをダウンロードできるようにしようと思っていないことはないが、そもそもひょっとして、iアプリってそのダウンロード元のサイトとしかデータ通信できないのではなかったか。

トラックバック

このエントリーのトラックバックURL:
http://ynomura.dip.jp/cgi-bin/mt/mt-tb.cgi/194

コメント投稿フォーム

※投稿されたコメントはオーナーが承認するまで表示されません。


Powered by Movable Type 3.35