fx-CG50 への移植 - もぐら叩き
2017/07/28
ソースリスト差し替え 2017/08/29
表現を一部変更 2017/10/05
ソースリスト差し替え 2017/08/29
表現を一部変更 2017/10/05
fx-CG50 を入手したので、fx-5800P プログラム - もぐら叩きを 移植してみました。Casio Basic の機能は fx-CG50 と fx-CG20 とで完全互換なので、どちらでも遊べます。
▋目 次
1. ファイル構成
2. 主な変更点
3. プログラムのダウンロード
4. おわりに
▍ファイル構成
移植後も2つのファイルで構成されるのは、fx-5800P バージョンと同じ。
- 最初に起動するメインルーチンのファイル名 WHACK-A-MOLE は12文字。fx-5800P はファイル名最大12文字だが、fx-CG50 (fx-CG20 や fx-9860GII も) は最大8文字。そこでファイル名を短くして WHACKAMO に変更。
- WHACKAMO から呼び出されるサブルーチン (ゲーム本体) WAM は同じファイル名でOK。
▍主な変更点
fx-5800P からの移植での主な変更ポイント;
- キーコードの変更
- Locate の位置を指定するパラメータを画面サイズに合わせて変更 (画面デザインの変更)
- カラー表示
- 配列変数を行列に変更
- 処理速度が格段に速いので、もぐらの動作を遅くしないと、速すぎて遊べない。そこで、ゲーム進行の中心に使っているカウンタ C (カウントダウンループの実行回数) に係数 (重み係数) をかけて、Cと大小比較してチェックする各種イベントの発生を遅らせた。この係数 Wait を新たなパラメータとして新設した。
- fx-5800P に対する fx-CG50 処理速度向上は、内部計算とテキスト表示で異なる。つまり内部計算とテキスト表示の重み付けは Wait 係数で一律に対処できない。そこで各処理のバランスをとるために各種パラメータのデフォルト値を見直して対応。
- 設定画面は大幅に書き直し。fx-5800P の便利な旧来の命令 ? が、fx-CG20 / CG50 のCasio Basicには実装されておらず、代わりに ?→ 命令を使うと、設定値入力の際に現在の設定値が表示されない。ゲーム設定を変更する微妙なところは現在の設定値は必ず表示させたいので、それを実現するために e-Gadget 特製 入力ボックス 2.1G を使い、さらに全設定パラメータを、画面スクロールなしで、1画面で表示・変更できるようにした。
WAM について、追加や変更した部分を赤文字で示し、fx-5800P 版と fx-CG50 版のプログラムを並べると、同じプログラム構造で必要なところだけ追加や変更していることが分かると思います。
[2017/10/05 修正]

メインルーチンの WHACKAMO は、各種パラメータの変更の機能を入力ボックスを利用する方針にしたので、プログラムの構造を大幅に変更しました。fx-CG50 用のプログラムコードを以下に示します。

▍プログラムのダウンロード
fx-CG50 / 20 だけでなく、fx-9860G シリーズ用にも移植しました。各機種ごとのプログラムは、以下からダウンロード;
▍おわりに
fx-CG50 の概要 に書いたように、この電卓はキーの構造に問題があって、テンキーまわりの大きなキーは右端を軽く叩く程度だと接点が導通しなくてキーの取りこぼしが発生します。全体的にとても良くまとめられているのに、こんな設計 or 製造不良は本当に勿体ないと思います。改善品との無償交換 (リコール) してもよいくらいの不具合だと思います (先ずあり得ないとは思いますが...)。
fx-CG50 の概要 で、キーを頻繁に叩くゲームでは致命的だろう...と書いたので、それを実際に試すために、もぐら叩き ゲームを fx-CG50 に移植しました。
実際にテンキー入力の取りこぼしのために関数電卓として使っている際には頻繁に支障がでます。ところが、このゲームに限っては思ったよりも影響が少なかったと正直に言っておきます。というのも、比較的強くキーを叩くことが多いためです。しなしながらこのキーの不具合に関しては、慣れの問題で片付けられるものではないと思います。
応援クリックをお願いします。励みになるので...