ゲーム ~ マスターマインド (fx-CG20 / fx-CG50)

2017/10/09
追記1 2017/10/09
追記2 2017/10/09
校正 2017/10/10
追記3 2017/11/04



グラフ関数電卓で遊べるゲーム:マスターマインド を fx-CG20 / fx-CG50 用に移植する。

[2017/11/04] アップデート版の入手 ⇒ こちら


ツル様が作成した fx-9860GII 用のマスターマインドを紹介した。

ゲーム ~ マスターマインド (fx-9860GII)


これを カラー化してカラーグラフ電卓 fx-CG20 / fx-CG50 に移植したので紹介する。特定のテキスト出力に色を付ける変更のみを行い、当初は基本的な部分には手を付けなかった。その後 追記したような改造を行っている。


プログラムのダウンロード

ダウンロード1
ツル様作成 マスターマインドの fx-CG20 / CG50 移植版 MASTMIN4
 
ダウンロードしたファイル MASTMIN4.g3m を fx-CG20 / CG50 の <PROGRAM> フォルダに転送後、Program List から実行する。これは、カラー表示化の変更だけを行ったもの。


ダウンロード2
マスターマインド - [EXIT] で正常終了 & アニメ中の [EXE] 反応の改善を行ったバージョン MASTMIN5

[2017/10/09 追記1]
このマスターマインドがとても面白いので、私個人の"お気に入りプログラムリスト"に入れることにした。
Casio Basic で作る "お気に入りプログラムリスト" 参照

さて、このお気に入りに入れるプログラムは、できるだけ [AC] キーによる強制終了をしたくない。強制終了するとプログラム編集画面になり、うっかりプログラムを触ってしまう危険性を避けたいからだ(私はウッカリ者なのだ)。そこで、ゲーム中いつでも [EXIT]キーで正常終了できるように2カ所にコードを追加して改変した。
⇒ 具体的には、(改変箇所1)(改変箇所2) 参照

[2017/10/09 追記2]
正解してアニメ表示している時、新しい問題が表示するための [EXE]キーの反応が悪い。これはアニメ処理を行う Do ループの中に、For 文によるウェイト処理が8カ所あり、さらに表示に時間のかかる Locate コマンドを多く使っているため、この Do ループが回るのが遅くなっている。この重いループの一カ所で [EXE] のキースキャンを行っている。これが [EXE] キーの反応が悪い原因。そこで [EXE] キー判定処理を複数箇所に増やして、この問題を改善する。
⇒ 具体的には、(改変箇所3) 参照 


(改変箇所1) 操作案内として <EXIT> の表示を追加
'======(input)======
Lbl 1:For 1→D To 4
Blue Locate 1,7,"?⇒input 1~9  Ans⇒(-)":0→E:0→I

を以下のように変更 (input を削除して <EXIT> を追加)

'======(input)======
Lbl 1:For 1→D To 4
Blue Locate 1,7,"?⇒1~9 <EXIT> Ans⇒(-)":0→E:0→I


(改変箇所2)
[EXIT]を押した時の処理を追加
キー入力のループ
Do:Getkey→I
 :
 (かなり長いコード)
 :
LpWhile I=0
While Getkey
WhileEnd

を以下のように変更
Do:Getkey→I
I=47⇒Break
 :
 (かなり長いコード)
 :
LpWhile I=0
If I=47:Then ClrText
Locate 9,4,"bye!"
Return:IfEnd
While Getkey
WhileEnd


(赤文字が追加部分)

以上で、[EXIT]キーで正常終了するようになった。

[2017/1-/09 追記]
次に、[EXE]のキースキャンの高速化を行う。

(改変箇所3) 重い Do ループ内で、[EXE]キー判定処理を複数箇所に設置
'======(ending)======
Lbl 2
 :
 :
Do:Getkey→I
Locate 1,6," "
Locate 2,6,"〇"
Locate F,G," "
For 1→S To U:Next
Locate F,G,""
Locate F+1,G," "
For 1→S To U:Next
 :
For 1→S To U:Next
 :
For 1→S To U:Next
 :
For 1→S To U:Next
 :
For 1→S To U:Next
 :
For 1→S To U:Next
 :
For 1→S To U:Next
Locate F+3.G,""
Locate 1,6," "
LpWhile I≠31
Goto 0

オレンジ色の For 1→S To U:Next とそれに続く 表示に時間がかかる Locate コマンドが繰り返しある。 そこで、For 文の直前に このループから脱出するコードを置く。

'======(ending)======
Lbl 2
 :
 :
Do:Getkey→I
Locate 1,6," "
Locate 2,6,"〇"
Locate F,G," "
Getkey=31⇒Break
For 1→S To U:Next
Locate F,G,""
Locate F+1,G," "
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
 :
Getkey=31⇒Break
For 1→S To U:Next
Locate F+3.G,""
Locate 1,6," "
LpWhile I≠31
Goto 0

(赤文字が追加処理を示す)

これにより、[EXE] の反応が軽くなる。

以上の改変は、fx-9860GII 用 MASTMIND にもそのまま適用できる。


遊び方の概要

MASTMIND を起動すると、
MasterMind_1st image CG 
スプラッシュ画面が表示され、1~9を使って4桁の数を当てるゲームだと分かる。

ここで、[ー] キーを押して次へ進むと、
MasterMind_2nd image CG 
ゲームの説明画面が現れる。
プログラムが自動作成する4桁の数の答えを当てる。但し4桁とも全て異なる数字になる。
数と桁が一致すれば Hit で、数は一致しても桁が異なれば 〇Blow と教えてくれる。但し HitBlow の数だけを教えてくれ、どの桁が HitBlow かは分からない。

ここで、[EXE] キーを押せばゲームスタート。
MasterMind_Start CG 
右上からスタートして、左下までの最大10回のトライで4桁を当てる。

少し待つと4桁の入力待ち画面になる (改変前の画面)。
MasterMind_Input1 CD MasterMind_Input CG 

途中で正解を表示させたところ (改変前の画面);
MasterMind_Input3 CG 

正解を見ずに7トライで正解した時 (改変前の画面);
MasterMind_Done CG 
4Hitを示す4つのがアニメ表示されるので、写真を撮ったときたまたま1個欠けて写っている。
HB 表示の下の黒丸と白丸も交互にブリンクしている。


(改変前の動画)

こういう拘りのギミックは楽しいものだ。

なお、カラー化に際しては、ゲーム名と正解は Red、入力した数字と案内を Blue、途中で[(ー)] を押して表示させる正解は Green、正解した時の言葉は Magenta にした。
 
※ 実際はもっとキレイな画面なので、撮影画像を良くしたい。チョット検討しなければ...


対応機種

◆ fx-CG20 / fx-CG50

fx-9860GII 用の g1m ファイルを fx-CG20 や fx-CG50 に転送すると、自動的に g3m ファイルに変換され、そのまま遊べるので、fx-CG20 / fx-CG50 にも対応する。管理人はカラー化して fx-CG50 で遊んでいる。


アップデート

[2017/11/04 追記3]
ツル様から最新版を頂いた。Casio機で走る Master Mind Ver.4 カラー版 ⇒ MASIOV4C

⇒ プログラムライブラリ - マスターマインド Ver. 4 カラー版 から入手してください。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、Casio Basic、ゲーム、マスターマインド、fx-9860GII、fx-CG20、fx-CG50

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR