« プログラミング講座(46) 棋譜のスクロール | トップページ | プログラミング講座(48) 電卓プログラムの設計 »

2011/03/05

プログラミング講座(47) どうぶつしょうぎ(棋譜再生機能も)完成

気がついたバグは一通り改修しました。棋譜の再生機能も完成しました。プログラムID FVD421-5 で「発行」しました。以下の課題が残っているのですが、「発行」できるサイズが限界なので、Small Basicでの「どうぶつしょうぎ」はこれでひとまず完了とします。

残った課題:
・ 引き分け(千日手)の判定ができない
・ 持ち駒の並びが順不同
・ 棋譜の表記が不十分★
・ フキダシの位置が不適切なときがある

3番目の課題は、例えばA3とB4にきりんがいて「B3 きりん」と打つ場合、A3のきりんが寄ったのか、B4のきりんが上がったのか表記する必要がありますが、「B3 きりん寄」と書くのか「B3 きりん(A3から)」と書くのかその辺の仕様を決める必要があります。いずれにせよ、プログラムサイズをこれ以上大きくしたくないので、今回は断念することにしました。

Doubutsushogi08
【図45 終局の画面】

上記の画面の黒三角の(再生)ボタンで棋譜の再生ができます。

「どうぶつしょうぎ」のデバッグ(バグ=不具合の改修)を通して、Small Basic v0.9のバグも発見し、Small Basic Forumに報告しました。GraphicsWindow.FontBoldやGraphicsWindow.FontSizeを変数にセーブし、他の値を設定し、その後セーブした値を元に戻す、という操作を繰り返していると値が破壊されることがあります。今回はセーブしないで固定値を設定しなおすようにしました。

また、今回「発行」にあたり、1485行でもサイズが大きすぎるというエラーを経験しました。ファイルサイズも確認してみましたが、47KB(キロバイト)でエラーを経験しました。過去のプログラムでもっと大きなサイズのものもあったと思うので、これらの境界値は参考程度にしてください。

なお、このプログラムはどうぶつの絵をインターネット上から持ってくるために、下記のようなセキュリティの警告が出ることがあります。[常に許可する]などを選んで実行してください。

Security
【図46 セキュリティの警告】

さて、囲碁、三目並べ、どうぶつしょうぎと3本続けてボードゲームを作ってみましたが、Small Basicの限界を知ることにもなりました。さらなるゲームの追及はJavaなどの他のプログラミング言語で行うこととし、Small Basicでのプログラミングは、大きくても1000行程度のコンパクトな題材で、基礎を学びながら進めて行く予定です。

次回は電卓プログラムに挑戦しつつ、構文解析、字句解析について学びたいと思います。

(つづく)

|

« プログラミング講座(46) 棋譜のスクロール | トップページ | プログラミング講座(48) 電卓プログラムの設計 »

Small Basic」カテゴリの記事

コメント

光次さん、いつもコメントありがとうございます。

投稿: たかはしのんき | 2013/10/29 22:33

まあ、千日手の判定はしていないゲームが多いはずなので、課題は3・4番目のみですね。

投稿: 光次 | 2013/10/28 14:56

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: プログラミング講座(47) どうぶつしょうぎ(棋譜再生機能も)完成:

« プログラミング講座(46) 棋譜のスクロール | トップページ | プログラミング講座(48) 電卓プログラムの設計 »