Casio Basic の勧め

.
追記 2017年08月18日

Casio Basic は、最近の カシオ 製プログラム電卓(プログラム関数電卓やグラフ関数電卓)に搭載されているプログラミング言語で、意外に高機能なので実用的なプログラムが作れます。科学技術計算目的以外にも実用的なプログラムを作れます。私自身、技術計算以外のために作った自作プログラムをほぼ毎日使い、技術計算プログラムはたまに使う程度です。

カシオのプログラム電卓で新世代 Casio Basic を勧めたくなるには、幾つかの理由があります。

新世代 Casio Basic でのプログラミングは敷居が低いこと、初心者にも覚えやすいこと、プログラミング経験者はスグに使えること、Casio Basic が意外に使えることなどが、その理由に挙げられます。


目 次
  1. プログラミングは特殊技能なのか?
  2. 新世代 Casio Basic とは?
  3. Casio Basic 搭載機種の選定
  4. Casio Basic の習得は容易
  5. fx-5800P の勧め
  6. Casio Basic を勧める背景
  7. fx-5800P の利点と弱点
  8. Casio Basic の使いこなし


プログラミングは特殊技能なのか?

プログラミングは、理系や文系、男女差、年齢や経験などとは無関係に習得可能なことはよく知られており、IT企業ではごく普通に文系出身のSEやプログラマが活躍しています。特に Casio Basic は覚えることが少なく、簡単なので、誰でも電卓プログラミングが出来ると思います。

参考:
<トップへ戻る>

新世代 Casio Basic とは?

実際にCasio Basic を使いながら、取扱説明書には記載のない機能や仕様が分かってくると、以下に挙げる4機種に搭載されている Casio Basic が意外によくできていることが明かになってきました。

1) fx-CG50    (カラーグラフ関数電卓)
2) fx-CG20      (カラーグラフ関数電卓)
3) fx-FD10 pro   (プログラム関数電卓 - 土木測量向け)

4) fx-9860GII   (グラフ関数電卓)
5) fx-9860G   (OS 2.0 以降、グラフ関数電卓) 
6) fx-5800P      (プログラム関数電卓)


これらに搭載されている言語は、私は 新世代 Casio Basic と呼び、それ以前の言語と区別しています。

新世代 Casio Basic は、簡単に言えば、Getkey コマンドと 柔軟な Locate コマンドがあり、条件判定は基本的に 0 で偽、0 以外で真で、その上で構造化プログラミングの考え方でプログラミング出来きます。
  • Getkey[AC] キー以外の全てのキーに異なるキーコードが割り当てられ、押したキーをリアルタイムで判定できるコマンド。
  • Locate: パラメータに、即値以外に変数、式、コマンドを指定して位置を柔軟に指定して出力するコマンド。
  • 条件判定を 0 で偽、0 以外で真とできること
  • 構造化プログラミングGoto に頼らずにプログラムの制御を記述し、可読性の高いブロック構造作れるプログラミングの方法。
プログラミング経験者(特にPCでのプログラミング経験者)なら、新世代 Casio Basic は違和感なく使えます。

旧来の命令
新世代 Casio Basic には、以前のプログラム電卓に搭載されていた旧来の命令も搭載されています。カシオによれは従来のユーザーの利便性を考慮して旧来の命令を残しているとのことです。最近、この旧来の命令を使いこなして、どの程度のプログラムを作れるのか色々と試して、それを反映させたエントリーを Casio Basic入門38から連載を始めています。使いこなしを検討してみると、確かに一定レベルの実用プログラムを比較的楽に作れることが分かります。

旧来の命令は表記はシンプルでも、多彩な機能を持っています。プログラミング経験の少ない人でも簡単に使えて便利です。しかし、旧来の命令が機能が多彩であることが、逆にプログラミングの自由度を減らしているとも言えます。この旧来の命令では実現できないプログラムを作るには、Casio Basic の構造化Basic を積極的に使えばよいのです。旧来の多彩な命令と Basic コマンドを併せて使いこなすことで、自由度が高く、実用的なプログラミングが可能になります。

<トップへ戻る>

Casio Basic 搭載機種の選定

上記製品の中でも、特に fx-5800P は最も安価であり、さらにハードウェアとソフトウェアのバランスが良いため、実用に最も適していると思うので、私は愛用しています。fx-9860GII も Casio Basic プログラミングを楽しむために使っていますが、日常には実用性の高い fx-5800P を多用しています。fx-CG20 も入手してみると fx-9860GII の Casio Basicの移植性が高いことは確認済みです (グラフィックスの一部コマンドやカラー対応の部分に手を入れる必要があります)。

fx-CG50、fx-CG20、fx-9860GII、fx-5800P について簡単にまとめています;

- fx-CG50: fx-CG50 の概要

- fx-CG20: fx-CG20 の概要

- fx-9860GII: fx-9860GII USB POWER GRAPHIC 2

- fx-5800P: 本記事は主に fx-5800Pの勧め になっています

- Casio Basic - 機種間の互換性

- Casio プログラム電卓の価格動向


fx-CG50、fx-CG20 と fx-9860GII は、グラフィックス機能があり、高機能、高価格の製品(実売9千円台~2.5万円程度)で、これらの中で比較的安価な fx-9860GII は、処理速度が速い点が魅力です。さらに、fx-9860GII は Casio SDK (Casio 純正の開発環境)を使えば、パソコン上で C言語を使ってプログラムを作り、それを電卓に転送して Add-in プログラムとして利用できます。C言語で作った Add-in プログラムは、Casio Basicに比べてかなり高速動作し、Casio Basic では無理な処理も可能です。

fx-5800P
グラフィックス機能の無い fx-5800Pは、処理速度が相対的に低いものの、価格が圧倒的に安く(実売6~8千円程度)、関数電卓としてもプログラム電卓としてもバランスが取れた使いやすい機種です。

fx-5800P には プログラムリストを 通常の電卓モード (Comp モード) で呼び出して使えますが、fx-9860GII ではプログラムリストを表示するには一旦プログラムモードに入る必要があります。Casio Basicで作ったプログラムを日常的に使う場合は fx-5800P の方が利便性が高いことは、使ってみて分かります。fx-5800P と fx-9860GII を実際に使い比べてみると、日常使いには、バランスの良い fx-5800P が優れていると思います。

fx-9860GII
但し、プログラムの高速性やグラフィックス処理を重要と考えるなら、fx-9860GII も選択肢に入れるべきです。もし使いたい Add-in プログラムがあれば fx-9860GII が正しい選択肢となります。
例えば、当ブログで紹介している C.Basic (Casio Basic の上位互換、開発中) は fx-9860GII のアドインとして提供しているので、これが使いたいなら fx-9860GII がお勧めです。

fx-FD10 Pro
fx-FD10 Pro は、屋外使用を想定した堅牢な作りが特徴です。私自身が実機を持っていないので、取扱説明書から得られる内容から判断すると、上記の fx-5800P の使いやすさを備えていますが、実売1万6千円以上するが、Add-in プログラムが使えず Casio Basic のみが使えるので、fx-5800P と fx-9860GII の間にある機種だと感じます。従って、Casio Basic を使うのであれば、敢えて fx-FD10 Pro を選ぶよりも fx-5800P にするか、Casio Basic の上位互換の C.Basic が使える fx-9860GII を選択すべきだと思います。

fx-CG20 / CG10
fx-CG20 / CG10 は、カラー液晶が特徴で、内蔵の関数計算も高速化されています。但し、主に液晶への表示やメモリアクセス処理速度が fx-9860GII よりも遅く、Casio Basic プログラムの処理速度は fx-9860GII よりも遅くなります。さらに、オーバークロック・ツールを用いると fx-9860GII が fx-CG20 / CG10 の5倍以上高速になります。高精細カラー液晶の表示が必要だと考えるなら fx-CG20 / CG10 が良いのですが、それ以外の私なりの評価は、総合的に fx-9860GII の方が優れていると思います。

fx-CG50
fx-CG50 は、デザインや寸法が異なる以外は fx-CG20 / CG10 とほぼ同じ機能を持っていて、処理速度が向上しています。
 
 
<トップへ戻る>

Casio Basic の習得は容易

過去にPCでプログラミング経験があれば、Casio Basic はスグに使えると思います。私自身も過去にPCでのプログラミング経験があり、fx-5800P を買ってすぐにプログラミングができました。但し細かなところは取扱説明書に書かれていないので、自分で色々と調べました。その結果が当ブログです。

プログラミング経験があれは、当ブログの「Casio Basic コマンドリファレンス」、「Casio Basic入門」、「逆引き Casio Basic」を参考にすれば、すぐに使いこなせると思います。[2017/01/03 追記修正]

これからプログラミングをやってみようと思われる方の場合、新世代 Casio Basic を覚えることはPCで使う Basic 習得に有効だと思います。上で紹介した機種の中で特に fx-5800P は、ハードウェア的には最も非力ですが、最も安価で入手しやすく、さらに使いやすいので、学習用に向いています。僭越ながら、当ブログの Casio Basic 入門をほぼ理解できれば、Visual Basic の習得の敷居はかなり下がると思います。

Casio Basic のコマンドは、殆どが他のBasic と同じなので、覚えたことが将来無駄になりません。さらに必要最小限度の機能まで絞り込まれているので、覚えることが少いことが初心者向きの理由です。この点をもう少し説明してみます。

一般にプログラムを作る際、実現したい機能には無数の方法があります。無数の方法から適切な方法を選び出すことが、プログラミングの主な作業になるのですが、それは初級者には逆に習得の妨げとなります。Casio Basic は機能が少ないので、選択肢が限られます。従って、プログラミングの方法の選択で悩むことなく、必要なことを覚えやすいと言えます。色々なプログラムを作れば、効果的な反復学習になるわけです。

またコマンドが絞り込まれているので、アルゴリズムの工夫や計算式の応用で対応することになり、これも学習に向いていると考える理由の1つです。

機能が限定されていても、実用的なプログラムやゲームが作れることは、当ブログで紹介しています。実際にこれらのプログラムを作りながら、新世代 Casio Basic の良さに気付いたのです。実際に使ってみないと分からないものです。

<トップへ戻る>

fx-5800P の勧め

電卓でプログラミングを始めてみようと思う方には、私は fx-5800P を勧めます。

1.関数電卓としての fx-5800P
fx-5800Pは、関数電卓として見た場合、十分な機能を実現しています。プログラム機能の無い fx-995ES とほぼ同等の機能と操作性が有り、fx-5800P は高機能関数電卓と位置づけられます。カシオの関数電卓は電源を切ると、計算履歴もメモリの内容も全て消去されます。一方 fx-5800P は電源を切っても全てメモリに保存されたままです。これが関数電卓として fx-5800P を推奨する最大の理由です。

2.携帯型コンピュータとしての fx-5800P
携帯型コンピュータとして見た場合、手軽に実用プログラムを作れるので、パソコンでは真似のできない圧倒的な携帯性が最大の利点です。搭載されている Casio Basic は、ちょっとしたアクションゲームも作れます。実際に、fx-5800P のハードウェアの能力と Casio Basic の機能を確かめる目的で、「もぐら叩き」を作ってみました。結構遊べることが分ったので、冒頭で 『意外に良くできている』 と書きました。

3.Casio Basic
fx-5800Pに搭載されているCasio Basicは、グラフ関数電卓 fx-9860GII や fx-CG20 さらに 土木測量向けプログラム電卓 fx-FD10 pro に搭載されている Casio Basic と比べて、グラフィック機能や文字列処理、外部との通信機能を使うコマンドが省略されていますが、それ以外の機能は同じです。そして、fx-5800Pで作った Caso Basic プログラムは、上位機種への移植性が高いことは確認済みです。

<トップへ戻る>

Casio Basic を勧める背景

新世代 Casio Basic 搭載のプログラム電卓を勧めるには、いくつかの背景があります。

1. パソコンと同様な機能を求めない
パソコンでできることはパソコンでやれば良い。それをわざわざ電卓でプログラムを作る必要はありません。


2. サッと取り出し、パッと使える
必要な場所で、必要なタイミングで、上着やかばんのポケットからサッと出して、スグ使うのはパソコンでは絶対に出来ません。プログラムを作るだけで自分専用のオリジナル関数電卓が手に入ります。今や電卓は誰でも1台は持っている文房具です。プログラムを書くことで自分専用の機能にカスタマイズした文房具が手に入ります。


3. プログラムを簡単に作れる
ゲーム繰返し技術計算金融計算その他お金の計算単位や年月の換算時差計算 など作っておくと便利なプログラムが多くあります。自分に必要なプログラムを予め作っておくと、プログラム電卓のメリットは絶大です。

関数電卓の各種関数キーが[SHIFT]キーなどと併用しないと使えない(裏機能などと言われます)のは、2ステップキータッチが必要で効率が悪いとの評価基準があります(関数電卓マニアの部屋)。学生への関数電卓選びのガイダンスとしては、教育的配慮を斟酌すれば、私も100%同意するところです。しかし、この主張を金科玉条の如く受け売りする気になれないのも正直なところです。

実際に何度もキーを叩いて繰り返し計算を行う際には、プログラムを作ったり、数式記憶機能を使えば良いわけです。

道具は相応しい目的で正しく使えば良い。幸なことにfxー5800Pは、今や新品でも6000円程度で買えるので、2000円から3000円で関数電卓を買う変わりに、プログラム関数電卓を買うメリットを十分に感じる人は非常に多く居るはずです。ここでは、簡単なプログラミング・スキルがあれば良く、幸いなことにBasicを搭載しています。


4. 上位機へのプログラム互換性
高価で高機能なグラフ関数電卓や土木測量専業電卓への移植性が高いことは重要です。

fx-5800Pのハードウェア仕様に依存した部分を除けば、互換性、移植性が高いので、1からプログラムを作り直す手間はありません。上位機種を入手して、そこへfx-5800P のプログラムを容易に移植できるのは、Casio Basicの大きな利点です。

なお、カシオのグラフ電卓には、C、Lua、Python といった言語の開発環境(公式や非公式を含む)もあり、Casio Basic のプログラムを移植せずに別の言語でプログラミングする選択肢もあります。

fx-5800P の Casio Basicプログラムの fx-9860GII や fx-CG20 への移植をいくつか行いましたが、機種のハードウェアに依存するコマンド (GetkeyLocate)、旧来の命令 (出力命令 ◢ 、" "、入力命令 ? など) の動作の違いに適切に対処し、配列変数を行列やリストに置き換えれば、他の Basic コマンド類は互換性があります。


5. グラフ機能の優先度は低い
パソコンでできることはパソコンを利用する...と考えれば、プログラム電卓にグラフ機能は必ずしも必要ではないと思います。グラフィックスを利用したプログラムを電卓で使いたい場合は fx-9860GII のようなグラフ関数電卓を利用でき、Windows プログラミングよりは Casio Basic の方がプログラミングは遙かに楽です。

ゲームではなく、実用面からグラフ描画機能が欲しいと言う場合もあるでしょう。例えば、実験をしながらグラフを書くのは大変重要なことです。しかしそのために、プログラム電卓でわざわざプログラムを書く必要はあるでしょうか?
パソコンでエクセルを使えば、簡単にグラフを書けます。報告書、レポート、論文を書くのに最近ではエクセルのグラフが普通に使われているわけで、それなら最初からエクセルを使えば良いと思います。

私は、実用を強く意識して fx-5800P を使っていますが、グラフ機能がことさら必要だと思うことは殆どありません。本当に必要なら fx-9860GII などのグラフ関数電卓で、ブラフ表示をプログラミング可能です。しかし、正直に言えば グラフ機能の無い fx-5800P で十分に実用的なプログラムを作って、利用できます。

敢えて言えば、適材適所でしょう。そして Casio Basic 搭載機のなかでも fx-5800P は、プログラム利用の利便性が高く、小型軽量で、グラフ関数電卓よりもプログラム入力が格段に楽で、電池の持ちも長く、ハードウェアとソフトウェアのバランスが良いことは間違いありません。処理速度の遅い fx-5800P でも工夫次第で実用プログラムを作成できるので、プログラミング自体も楽しくなってきます。当ブログでは、その工夫について多く取り上げています。


6. 最も簡単にプログラミングできる携帯機器
Casio Basicを使うのなら、電卓本体のみでプログラミングできるので、いつでもどこでもプログラムを作れます。そして自分だけの付加機能を、恐らく最も簡単に追加できる携帯機器がプログラム電卓です。オリジナルプログラムを作りそれを使う楽しみと利便性があります。

<トップへ戻る>

fx-5800P の利点と弱点

fx-5800P は、新世代Casio Basic を搭載している点に最大の価値があり、同時に関数電卓としても使いやすい点が評価できます。関数電卓としてみた場合は、グラフ関数電卓 fx-9860GII よりも fx-5800P の方が必要な機能へのアクセスが速いので、使いやすいでしょう。しかしプログラミング時の使いやすさの点では fx-5800P が最も優れています。

fx-5800P のもう1つの利点は価格で、他の機種に比べて圧倒的に安価です。

要するに fx-5800P は、非常にバランスの良い製品と言えます。

fx-5800P に対する唯一にして最大の弱点は、プログラムコードのバックアップややりとりをパソコンとの間で行えるPCリンク機能が用意されていない点にあります。少なくとも fx-5800P 同志のプログラムデータのやりとりはできるので、外付けの3Pin - USB アダプタと対応ソフトウェアを発売して頂ければ実現するはずです。カシオ製でなく、サードパーティーでも良いのです。

PCとリンクしてプログラムを転送する機能の実現は、是非ともお願いしたい。

私の場合は仕事などで実用プログラムを作って、毎日のように使っていますので、電子データのバックアップ機能がどうしても欲しくなり、2台目の fx-5800p と専用通信ケーブル (SB-62)を購入しバックアップしています。なお、グラフ関数電卓を購入すれは、通信ケーブル(SB-62)は付属しているので、fx-5800P のために新たに購入する必要はありません。

[2017/08/18 追記] 最近はグラフ関数電卓に 3Pin ケーブルが付属していません。別途購入する必要があります。

<トップへ戻る>

Casio Basic の使いこなし

fx-5800P 搭載の Casio Basic は、使いこなしてみて初めてその価値が分かると思います。PCで一定以上のプログラミング経験があれば、この新世代 Casio Basicが構造化BASIC であることがすぐに分かると思います。カシオ自身がこの Casio Basic に関する情報発信を殆ど行っていないので、当ブログでは Casio Basic の使いこなしについて、異なる3つの切り口で紹介しています。

CasioBasic入門 / 目次
じっくりと読みながらプログラムを入力して Casio Basicの使いこなしやプログラムの作り方を修得する。題材のプログラムは、ある程度の完成度があり、実用的に使えるレベルになっている(と思う...)。

CasioBasic コマンドリファレンス 目次
Casio Basic のコマンドや命令を、出来るだけ詳しく調べた結果に基づいて解説している(抜けが無いことを祈るばかり...)。

逆引き Casio Basic 目次
Casio Basic で何か実現したいこと、やりたいことに対して、ピンポイントで実現方法、サンプルプログラム、考え方を紹介している(思いついたことから順次拡充中...)。

<トップへ戻る>



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



  

keywords: fx-5800PCasioBasicプログラム関数電卓

リンク集 | ブログ内マップ

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

Casio Basic入門49

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2015/04/17
修正 2017/08/16

 4. CasioBasicを使ってみる(続き)

Chapter 8 - 初級

前回: Casio Basic入門48 を見る


◆ Chapter 7 の目標: Basic コマンドを使ってみる

前回で、fx-9860GII 専用入力ボックスの準備が整いました。今回は、残りの移植作業を進めます。

移植前の fx-5800P 用プログラムを再掲載します。変更する部分を赤文字で示しています。

fx-5800P:温度換算プログラム TEMP CONV
0→A
While 1


Cls
"1:      °C" (スペース11個)
"2:      °F" (スペース11個)
"3:      K"  (スペース12個)
If A:Then
Locate 4,1,C
Locate 4,2,F
Locate 4,3,K
IfEnd
Locate 13,1,"°C"
Locate 13,2,"°F"
Locate 13,3," K"
Locate 1,4,"<EXIT>"
Locate 11,4,"<FMLA>"

-1→M
Do
Getkey→L
LpWhile L=0
L=35⇒1→M
L=36⇒2→M
L=37⇒3→M
L=74⇒4→M
K=73⇒Break

Locate 1,4,"        " (スペース16個)
If M=1:Then
4→X:1→Y:9→D:2→E
Prog "IN":Z→C
C(9÷5)+32→F
C+273.15→K
1→A
Else If M=2
Then
4→X:2→Y:9→D:2→E
Prog "IN":Z→F
5(F-32)÷9→C
C+273.15→K
1→A
Else If M=3
Then
4→X:3→Y:9→D:2→E
Prog "IN":Z→K
K-273.15→C
C(9÷5)+32→F
1→A
Else If M=4
Then
Cls
Locate 2,1,"C = 5(F-32)÷9"

Locate 2,2,"F = (9÷5)C+32"
Locate 2,3,"K = C+273.15"

Locate 11,4,"<EXIT>"
While Getkey≠73
WhileEnd
While Getkey
WileEnd
IfEnd:IfEnd
IfEnd:IfEnd

WhileEnd
Cls
Locate 7,2,"BYE!"



新世代 Casio Basic は fx-5800P だけでなく、他のグラフ関数電卓にも搭載されています。そこで、今回は fx-5800P 用に作った温度換算プログラムを fx-9860GII に移植することにします。

Chapter 8-8
fx-9860GII へプログラムを移植する


新世代 Casio Basic は、機種間の互換性は高いのですが、移植するにあたって、幾つかの制限があります。

fx-5800P から fx-9860GII への移植時に互換性の無いもの

出力" "(出力命令詳細動作がかなり異なる
(出力)命令fx-9860GII では -DISP- 表示にブロックされる
Cls コマンドfx-9860GII では ClrText コマンドに置き換える
入力(入力)命令fx-9860GII では ?A と言う記法が使えない
Getkey コマンドキーコードが全く異なる
変数配列変数fx-9860GII では 配列変数が無い
行列記法が異なる
その他キー同じキーが必ずしも無い
関数記法が異なることがある
プログラム名fx-9860GII では 8文字以下

" " (出力)命令は、表示行の全てを上書きします。同じ行に 先に Locate コマンドで表示してあると、それを上書き消去してしまいます。表示行を " " 命令だけで表示する場合のみ、互換性があります。

(出力)命令
-DISP- と言う表示で1行占有される。先にLocate コマンドで表示された1行が -DISP- で完全に上書きされ、画面設計が潰されます。

?(入力)命令
?A と言う記法が使えず、?→A のみが使えます。?A と書くと、変数 A に入っている値を表示した上で、そのままで良ければ[EXE] で確定できる付加機能が得られ、使いやすいプログラムが作れます。fx-9860GII ではこの機能を使えず、?→A を書くしかありません。

Cls
fx-9860GII では ClrText と書き換えます。機能は全く同じなので書き換えるだけで使えます。
[2017/08/16 修正] fx-9860GII の Cls は グラフィックス画面の消去のみを行います。というのも、グラフィックス画面の消去コマンドには ClrGraph もありますが、これは同時に座標系をデフォルトの論理座標系に変更します。Cls は座標系の変更は行わずにグラフィックス画面の消去のみを実行します。

Getkey
キーコードが全く異なるので、キーコードを変更します。Getkeyコマンド自体の動作は全く同じです。

配列変数
fx-9860GII には無いので、行列に置き換えれば使えます。

行列
扱う際の書式が一部異なるので、そこを修正すれば使えます。

キー
同じキーが無いことがあります。

関数
関数の記法が一部異なります。

ファイル名
fx-5800P は12文字以内、fx-9860GII は 8文字以内。


旧来の命令は、Basicコマンドほど互換性が高くなく、どうやっても同じ動作を実現できないことがあります。詳しくは、下記を参照してください。
 ⇒ fx-9860GIi への移植 - 厄介な旧来の命令
 ⇒ fx-9860GII への移植 - 素因数分解
 ⇒ fx-9860GII への移植 - ピタゴラス数

一方、Basic コマンドは、適切な変更を行えば、100%の移植が可能です。


温度換算プログラム TEMP CONV について言えば、

 ・ Getkey使用の際して、キーコードを変更する。
 ・ ClsClrText に変更する。
 ・[FMLA] キーが無いので、他のキーに変更する。
 ・ ファイル名 TEMP CONV を8文字以内に変更する。

先ずはこの程度の変更で、同じ動作を行うプログラムとして移植できます。上のプログラムコードで赤文字で示した部分が、移植に際して変更が必要です。

なお、Chapter 7 で作ったプログラムは、?命令の機能が異なるので、100%同じ動作をさせる移植は不可能です。fx-9860GII などのグラフ関数電卓への将来の移植を考える場合は、旧来の命令はできるだけ使うべきではありません。



キーコードの変更

TEMP CONV で使うキーコードについて、fx-5800P と fx-9860GII の違いをまとめます。

キーコード
キーfx-5800Pfx-9860GII
[1]3572
[2]3662
[3]3752
[EXIT]7347
[FMLA]74---
[VARS]---58

計算式を表示させるためにfx-5800P では [FMLA] キーを利用しましたが、fx-9860GII にはこのキーは無いので、変わりに [VARS] キーを使うことにします。

TC10-9860GII 

[VARS] キーは [EXIT] キーの左上にあって、互いに近いので、使いやすいと思います。


Cls → ClrText の変更

単に書き換えるだけでOK.。


ファイル名の変更

TEMP CONV は9文字なので、8文字以内にするためにスペースを取って TEMPCONV に変更する。



以上の変更を反映させると、以下のプログラムになります。

fx-9860GII:温度換算プログラム TEMPCONV
0→A
While 1


ClrText
"1:      °C" (スペース11個)
"2:      °F" (スペース11個)
"3:      K"  (スペース12個)
If A:Then
Locate 4,1,C
Locate 4,2,F
Locate 4,3,K
IfEnd
Locate 13,1,"°C"
Locate 13,2,"°F"
Locate 13,3," K"
Locate 1,4,"<EXIT>"
Locate 11,4,"<VARS>"

-1→M
Do
Getkey→L
LpWhile L=0
L=72⇒1→M
L=62⇒2→M
L=52⇒3→M
L=58⇒4→M
K=47⇒Break

Locate 1,4,"        " (スペース16個)
If M=1:Then
4→X:1→Y:9→D:2→E
Prog "IN":Z→C
C(9÷5)+32→F
C+273.15→K
1→A
Else If M=2
Then
4→X:2→Y:9→D:2→E
Prog "IN":Z→F
5(F-32)÷9→C
C+273.15→K
1→A
Else If M=3
Then
4→X:3→Y:9→D:2→E
Prog "IN":Z→K
K-273.15→C
C(9÷5)+32→F
1→A
Else If M=4
Then
ClrText
Locate 2,1,"C = 5(F-32)÷9"

Locate 2,2,"F = (9÷5)C+32"
Locate 2,3,"K = C+273.15"

Locate 11,4,"<EXIT>"
While Getkey≠47
WhileEnd
While Getkey
WileEnd
IfEnd:IfEnd
IfEnd:IfEnd

WhileEnd
Cls
Locate 7,2,"BYE!"




これを実行してみます。

fx-9860GII の電源を入れ、[MENU] キーで MAIN MENU 画面を表示;

TC10-MainManu_1 

矢印キーで PRGM アイコンを選択;

TC10-MainMenu_2 

そして [EXE] キーを押すと Program List が表示されます。

ProgramList 

矢印キーでカーソルを移動させ、TEMPCONV を選択

TC10-ProgramList 

[EXE] キーか [F1] (EXE) を押すと、プログラムが起動します。

TC10-Main 

なんだか間の抜けた感じですね。後で、それらしくなるように表示を変更することにします。先ずは動作確認をします。

[1] キーで、入力ボックス起動

TC10-[1] 

摂氏 -40 を入力し、

TC10-Input-40 

[EXE] で入力確定すると、換算結果が表示されます。

TC10-Converted 

換算は正常のようですね。では、[VARS] キーを押して計算式を表示させてみます。

TC10-Dormula_1 

では、[EXIT] キーでメイン画面へ戻ります。念のため、[EXIT] キーを押っ放しにしてみてください。

何も画面変化がなければ正常です。では [EXIT] キーを離してみると、

TC10-Converted 

メイン画面に戻りました。

プログラムを終了させるために、[EXIT] キーを押すと、

TC10-Quit_Bye 

正常終了の画面が現れます。ここで、[EXIT][AC][EXE] のいずれのキーを押しても、Program List 画面に戻ります。

TC10-ProgramList 


これで、機能面では正常であることが確認できました。



さて、間抜けな感じの表示をなんとかしたいと思います。

fx-9860GII 用の画面をどのようにするかは、それぞれ好みがあると思いますが、ここでは以下のような画面にしようと思います。

TC10-Main_2 

TC10-Formula\2 

TC10-Quit_Bye_2 

先ずは、画面表示変更に挑戦してみてください。次回は、この画面に変更する方法を紹介します。







つづく...

Casio Basic入門50 / 目次




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ



 



keywords: fx-5800PCasioBasic、入力ボックス, プログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ




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

Casio Basic入門48

Casio Basic入門
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2015/04/10
修正 2017/08/16

 4. CasioBasicを使ってみる(続き)

Chapter 8 - 初級

前回: Casio Basic入門47 を見る


◆ Chapter 8 の目標: Basic コマンドを使ってみる

fx-5800P 用に 温度換算プログラムを作りました。

fx-5800P:温度換算プログラム TEMP CONV
0→A
While 1


Cls
"1:      °C" (スペース11個)
"2:      °F" (スペース11個)
"3:      K"  (スペース12個)
If A:Then
Locate 4,1,C
Locate 4,2,F
Locate 4,3,K
IfEnd
Locate 13,1,"°C"
Locate 13,2,"°F"
Locate 13,3," K"
Locate 1,4,"<EXIT>"
Locate 11,4,"<FMLA>"

-1→M
Do
Getkey→L
LpWhile L=0
L=35⇒1→M
L=36⇒2→M
L=37⇒3→M
L=74⇒4→M
K=73⇒Break

Locate 1,4,"        " (スペース16個)
If M=1:Then
4→X:1→Y:9→D:2→E
Prog "IN":Z→C
C(9÷5)+32→F
C+273.15→K
1→A
Else If M=2
Then
4→X:2→Y:9→D:2→E
Prog "IN":Z→F
5(F-32)÷9→C
C+273.15→K
1→A
Else If M=3
Then
4→X:3→Y:9→D:2→E
Prog "IN":Z→K
K-273.15→C
C(9÷5)+32→F
1→A
Else If M=4
Then
Cls
Locate 2,1,"C = 5(F-32)÷9"

Locate 2,2,"F = (9÷5)C+32"
Locate 2,3,"K = C+273.15"

Locate 11,4,"<EXIT>"
While Getkey≠73
WhileEnd
While Getkey
WileEnd
IfEnd:IfEnd
IfEnd:IfEnd

WhileEnd
Cls
Locate 7,2,"BYE!"


fx-9860GII への移植で変更するところを赤文字で示しています。



Chapter 8-7
fx-9860GII 用入力ボックスを準備する

新世代 Casio Basic は fx-5800P だけでなく、他のグラフ関数電卓にも搭載されています。そこで、fx-5800P 用に作った温度換算プログラムを fx-9860GII に移植してみます。

新世代 Casio Basic は、機種間の互換性は高いのですが、移植するにあたって、幾つかの制限があります。

fx-5800P から fx-9860GII への移植時に互換性の無いもの

出力" "(出力命令詳細動作がかなり異なる
(出力)命令fx-9860GII では -DISP- 表示にブロックされる
Cls コマンドfx-9860GII では ClrText コマンドに置き換える
入力(入力)命令fx-9860GII では ?A と言う記法が使えない
Getkey コマンドキーコードが全く異なる
変数配列変数fx-9860GII では 配列変数が無い
行列記法が異なる
その他キー同じキーが必ずしも無い
関数記法が異なることがある
プログラム名fx-9860GII では 8文字以下

" " (出力)命令は、表示行の全てを上書きします。同じ行に 先に Locate コマンドで表示してあると、それを上書き消去してしまいます。表示行を " " 命令だけで表示する場合のみ、互換性があります。

(出力)命令
-DISPー と言う表示で1行占有れ、Locate コマンドによる画面設計を潰されます。

?(入力)命令
?A と言う記法が使えず、?→A のみが使えます。

Cls
fx-9860GII では ClrText と書き換えます。機能は全く同じなので書き換えるだけで使えます。
[2017/08/16 修正] fx-9860GII での Cls はグラフィックス画面の消去のみを行います。ちなみに ClrGraph もグラフィック画面の消去ですが、画面消去と同時に座標系を デフォルトに論理座標系に戻します。これに対して Cls は座標系は変更せずグラフィックス画面の消去のみを実行します。

Getkey
キーコードが全く異なるので、キーコードを変更します。Getkeyコマンド自体の動作は全く同じです。

配列変数
fx-9860GII には無いので、行列に置き換えれば使えます。

行列
扱う際の書式が一部異なるので、そこを修正すれば使えます。

キー
同じキーが無いことがあります。

関数
関数の記法が一部異なります。

ファイル名
fx-5800P は12文字以内、fx-9860GII は 8文字以内。


旧来の命令は、互換性が低く、移植時に思わぬ仕様違いから混乱するかも知れません。旧来の命令を使う限り、どうしても fx-5800P と同じ動作を実現できないこともあります。詳しくは、下記を参照してください。
 ⇒ fx-9860GIi への移植 - 厄介な旧来の命令
 ⇒ fx-9860GII への移植 - 素因数分解
 ⇒ fx-9860GII への移植 - ピタゴラス数

一方、Basic コマンドは、適切な変更を行えば、100%の移植が可能です。

さて、温度換算プログラム TEMP CONV では、e-Gadget オリジナルの入力ボックスを利用しています。先ずは、fx-5800P 用の入力ボックスではなくて、fx-9860GII を利用する必要がありまず。

今回は、その準備をします。



fx-5800P から fx-9860GII への入力ボックスの移植は、以下で紹介しています。
 ⇒ Casio Basic入門37

また、プログラムライブラリにも収録しています。
 ⇒ fx-9860GII プログラムライブラリ - 入力ボックス
 
fx-9860GII は、パソコンとのリンクができる点が、fx-5800P よりも便利な利点です。fx-9860GII をパソコンと繋ぎ、Casio Basic プログラムを 拡張子 g1m のファイルとして、パソコンに転送できますし、その逆もできます。

上記のプログラムライブラリから、入力ボックスをパソコンにダウンロードしてから、fx-9860GII へ転送できるので、自分で入力する必要はなく、入力間違いの危険性もありません。

今回の温度換算プログラムでは、IN 2.1G for fx-9860GII を使います。これをダウンロードしてください。プログラム名 IN です。

プログラム名は、fx-5800P と同じなので、入力ボックスが fx-9860GII に有れば、温度変換プログラムで 入力ボックスを使う部分は、変更なしで動作します。

念のために、以下のテストプログラムを入力して、転送した入力ボックス IN 2.1G for fx-9860GII の動作確認をしてみてください。

プログラム TEST
0→Z
"1:"
"2:"

While 1

-1→M
Do
Getkey→K
LpWhile K=0
L=72⇒1→M
L=62⇒2→M

Locate 1,4,"           " 
(スペース21個)

If M=1:Then
3→X:1→Y:10→D:2→E
Prog "IN"
Else If M=2
Then
3→X:2→Y:9→D:1→E
IfEnd:IfEnd

Locate 1,4,"Z="
Locate 3,4,Z

WhileEnd


==========

正しく動作しますか?

fx-9860GII はCPUが速いので、より快適に入力ボックスを使えます。



さて、冒頭に記載したプログラムで、赤文字で示した部分が、fx-9860GII への移植の際に変更が必要なところです。

 ・ Getkey使用に際して、キーコードを変更する。
 ・ ClsClrText に変更する。
 ・[FMLA] キーが無いので、他のキーに変更する。
 ・ ファイル名 TEMP CONV を8文字以内に変更する。

これだけで、同じ動作を行うプログラムとして移植できます。

次回までに、移植を試してみてください。それほど難しくないと思います。




つづく...

Casio Basic入門49 / 目次




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ



 



keywords: fx-5800PCasioBasic、入力ボックス, プログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ




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

Casio Basic で圧力換算プログラム

 
2017/08/15


Casio Basic で圧力換算プログラム - fx-58ooP, fx-9860GII, fx-CG20/50

画像と文章が重なっている場合は、ページの再読込を行ってください(最近この問題が発生しています)。

圧力の概念圧力は、単位面積あたりの力だと定義されていて、具体的には力を面積で割って圧力の値が得られる。


左図はネットで見つけた画像 (F_Master's Eye)を使わせて貰っているが、国際単位系の Pa (パスカル) で圧力を説明したものだ。

ところが、実際の圧力の単位は、地域や技術分野に応じて、今でも異なった単位が普通に使われているて、私にとっては暗算で換算するのがとても厄介だ。

というのも、アメリカでは psi (ポンド/平方インチ)、イギリスなどヨーロッパでは bar (バール)、日本やアジアでは国際単位として推奨されている Pa (パスカル)が使われることが多い。また分野が変われば、atm (気圧)、mmHgmmH2O など、国際単位系ではなくて昔からの単位が未だに使われている。圧力単位ほど混乱しているものは無いと思う。

国内外の様々な分野の人達と技術的な話をしている時、好き勝手な圧力単位で話をするものだから、チョット待った!と言いたくなることが有る。パソコンを使う余裕がないことが多く、このような時こそプログラム電卓の本領発揮だと思う。

そこで、Casio Basic で自作して常用している圧力換算プログラムを紹介する。



各種圧力の換算式

最初に fx-5800P 用プログラムを作った。このプログラム電卓の画面は4行表示なので、換算する圧力を psiKPabaratm の4種類を選んだ。換算方法は人によって様々だが、ここでは Kgf/m2 を基準の単位として、上記4つの単位間の換算式を作った。

1. psi (変数 P)
1 psi = 1 ポンド/インチ2 = 453.59237 (gf) / (2.54cm)2 = 70.30695796 (gf/cm2) = 703.0695796 (Kgf/m2)
変数 S =703.695796Kgf/m2P (psi) としたときG =PSKgf/m2
変数 T = S/U =6.894757293KPa
N =PS/UKPa
=0.068947573bar
B =PT/Vbar
=0.068045964atm
A =PT/Watm

2. KPa (変数 N)
1 KPa = 1000 (N/m2) = 1000/980665 (Kgf/m2)
変数 U =101.9716213Kgf/m2N (KPa) としたときG =NUKgf/m2
=0.145037738psi
P =N/Tpsi
変数 R =0.01bar
B =NRbar
=0.009869233atm
A =N/Watm

3. bar (変数 B)
1 (bar) = 100 (KPa)
1 Bar = 変数 V =100KPaB (bar) としたときN =BVKPa
=0.980665Kgf/m2
G =BV/UKgf/m2
=14.50377377psi
P =BV/Tpsi
=0.98692367atm
A =BV/Watm

4. atm (変数 A)
1 atm = 101.325 KPa
1 atm = 変数 W =101.325KPaA (atm) としたときN =AWKPa
=0.144118026Kgf/m2
G =AW/SKgf/m2
=14.69594878psi
P =AW/Tpsi
=1.01325bar
B =AW/Vbar

4つの単位で換算した値を P (psi)、N (KPa)、B (bar)、A (atm) とし、計算を分かり易くするために 変数 STUVW を用いる。変数 GKgf/m2 単位を基準に考えるためのもので、プログラムでは使わない。

fx-5800P で作ったプログラムを fx-980GII や fx-CG20 / CG50 にも移植し、どのプログラム電卓でも圧力換算ができるようにしている。


プログラムの概略

表 示
画面表示を以下のようにする。
1.psi:
2.KPa:
3.bar:
4.atm:

構 造
プログラムの構造は以下のようにする。

[初期設定]

[変数の初期化]

[初期の画面表示]
 (fx-5800P と グラフ関数電卓では記述が異なる)


While 1

 [キー入力取得] (fx-5800P とグラフ関数電卓ではキーコードが異なる)

 [換算計算]


 [画面表示の更新]
 (fx-5800P とグラフ関数電卓では記述が異なる)


WhileEnd


[プログラム終了時の画面表示]
 (fx-5800P とグラフ関数電卓では記述が異なる)


なお、当ブログオリジナルの汎用サブルーチン:入力ボックス INP を利用する。
fx-5800P 用入力ボックス
fx-9860GII / fx-CG20/50 用入力ボックス


機種別のプログラム詳細

fx-5800P 用プログラム
fx-5800P では小文字のアルファベットが使えないので、関数や定数をうまく利用して小文字を表現する。

Locate 1,1,"1.psin("
Locate 6,1,": "
Locate 1,2,"2.KPao"
Locate 6,2,":"
Locate 1,3,"3"
Locate 2,3,"Abs("
Locate 2,3,"."
Locate 4,3,"ao"
Locate 5,3,"re"
Locate 6,3,":"
Locate 1,4,"4:atm:"


1.psi: の入力方法
- "1." ⇒ [1] [.] 
- "" ⇒ [FUNCTION] [1] (1:MATH) [▼] [▼] [▼] [4] (4:p)
- "sin(" ⇒ [sin]
- "" ⇒ [SHIFT] [√□] (:) 

2.psi: の入力方法
- "2.KP" ⇒ [2] [.] [K] [P]
- "ao" ⇒ [FUNCTION] [4] (CONST) [5] (5:ao)
- ":" ⇒ [SHIFT] [√□] (:)

3.bar: の入力方法
- "" ⇒ [3]
- "Abs(" ⇒ [FUNCTION] [1] (MATH) [▼] [1] (1:Abs)
- "" ⇒ [.]
- "ao" ⇒ [FUNCTION] [4] (CONST) [5] (5:ao)
- "re" ⇒ [FUNCTION] [4] (4:CONST) [▼] [3] (3:re)
- "" ⇒ [SHIFT] [√□] (:)

4.atm: の入力方法
- "4." ⇒ [4] [.]
- "atm" ⇒ [FUNCTION] [4] (CONST) [▼] [▼] [ ▼] [▼] [8] (8:atm)

具体的なプログラムは、以下を参照;
プログラムライブラリ - 圧力換算 (fx-5800P)


fx-9860GII、fx-CG20/50 用プログラム
これらのグラフ関数電卓では、小文字、大文字の両方のアルファベットが使えるので、fx-5800P のような画面表示での工夫は不要で、簡単に記述できる。また、キーコードが fx-5800P と異なるので、それに合わせて変える。グラフ関数電卓 fx-9860GII、fx-9860GII SD、fx-CG10、fx-CG20、fx-CG50 などのキーコードは完全に同じなので完全互換のプログラムになる。

なお、fx-5800P のテキスト画面は4行16桁であるが、これらのグラフ関数電卓では7行21桁と広いことを活かして、見やすく使いやすくするために画面表示を変える価値はあると思う。

具体的なプログラムは、以下を参照;
プログラムライブラリ - 圧力換算 (fx-9860GII、fx-CG20 / CG50)






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


 

keywords: CasioBasicプログラム電卓、fx-5800P、fx-9860GII、fx-CG20、fx-CG50
リンク集 | ブログ内マップ

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

プログラムライブラリ - 圧力換算 (fx-9860GII、fx-CG20 / CG50)

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/08/15

PConvert (圧力換算プログラム) - fx-9860GII、fx-CG20 / fx-CG50


対応機種

Casio fx-9860GII、fx-CG20 / fx-CG50 (fx-FD10 Pro でも使えると思われます)

Casio fx-5800P用は こちら



プログラムの使い方

圧力単位 psi、KPa、bar、atm の間での換算を行う。

例えば、以下の画面表示の時、

=Pressure Coverter=
1.psi:15
2.KPa:103.3213
3.Bar
:1.034213
4.A
tm:1.020689

<EXIT>:Quit


同じ圧力を4つの異なる単位で表示している。

ここで、10 bar の他の単位での換算値を知るには、[3] キーを押して

=Pressure Converter=
1.psi:15
2.KPa:103.3213
3.Bar:>>>>>>>>
4.Atm:1.020689

<EXIT>:Quit

bar 単位に 10 を入力すると、以下のように各単位での換算値が表示される。

=Pressure Converter=
1.psi:145.0377
2.KPa:1000
3.Bar:10
4.Atm:9.869232

<EXIT>:Quit

プログラムを終了するために [EXIT] キーを押すと、Bye! と表示してプログラムが終了する。



プログラムの説明

Casio Basic で圧力換算プログラム を参照



プログラムファイル

※ プログラムファイル: g1m ファイル (fx-9860GII) のダウンロード
※ プログラムファイル: g3m ファイル (fx-CG20_CG50) のダウンロード




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


 

keywords: CasioBasicプログラム電卓、圧力換算、fx-5800P、fx-9860GII、fx-CG20、fx-CG50

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

プログラムライブラリ - 圧力換算 (fx-5800P)

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/07/28

PConverter (圧力換算プログラム) - fx-5800P


対応機種

Casio fx-5800P

Casio fx-9860GII、fx-CG20 / fx-CG50 用は こちら



プログラムの使い方

圧力単位 psi、KPa、bar、atm の間での換算を行う。

例えば、以下の画面表示の時、

1.psi:15
2.KPa:103.3213
3.bar:1.034213
4.atm:1.020689


同じ圧力を4つの異なる単位で表示している。

ここで、10 bar の他の単位での換算値を知るには、[3] キーを押して

1.psi:15
2.KPa:103.3213
3.bar:>>>>>>>>
4.atm:1.020689

bar 単位に 10 を入力すると、以下のように各単位での換算値が表示される。

1.psi:145.0377
2.KPa:1000
3.bar:10
4.atm:9.869232


プログラムを終了するために [EXIT] キーを押すと、BYE! と表示してプログラムが終了する。



プログラムの説明

Casio Basic で圧力換算プログラム を参照



ソースファイル

PDFファイル、EXCELファイルのダウンロード

PConverterソース 



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


 

keywords: CasioBasicプログラム電卓、圧力換算、fx-5800P、fx-9860GII、fx-CG20、fx-CG50

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

プログラムライブラリ - もぐら叩き (fx-5800P)

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

更新 2017/08/15

WACK-A-Mole (もぐら叩き) - fx5800P


対応機種

Casio fx-5800P

Casio fx-CG20 / fx-CG50 用は こちら
Casop fx-9860GII 用は こちら


プログラムの説明

Wack-A-Mole は、非力な fx-5800P でアクションゲームを作れるかどうか試しに作った "もぐら叩き" です。プログラム作成の詳細は fx-5800P【ゲーム】:もぐら叩き を参考にしてください (この記事のプログラムにおいて。Lbl 0 の下に2行追加したものをプログラムライブラリに収録しています。

3×3 の配置の孔から モグラが顔を出した時に [1] ~ [9] の対応するテンキーで叩く、お馴染みのモグラ叩き。

一定ポイントを超えると、偽モグラが顔を出したり、偽モグラと本物が一緒に顔を出すようになり、偽モグラを叩くとペナルティとなります。各種設定を変更する機能があり、難易度を自由に変えられます。


プログラムの使い方

もぐら退治の賞金稼ぎがゲームコンセプト:
  • ゲーム開始時に、LIFE ポイント (初期値 7) をもらう。
  • モグラ退治が遅い場合や間違って退治するとLIFE が減り、LIFE ゼロでゲーム終了!
  • モグラ1匹あたり、定額の資金 (FUND、初期値 20) をもらう。
  • モグラ退治に時間がかかるほど、退治費用 (COST) がかさむ。
  • モグラ退治が速ければ、FUND - COST が儲けとなり、賞金 PRIZE に加算される、
  • モグラが顔を出してから所定の時間がかかり COST が BURSTポイント (初期値 6) までかさむと、BURST となり LIFE が 1 減る、
  • モグラが顔を出してから時間がかかり過ぎて COST が TIME-OUTポイント (初期値 8) までかさむと、時間切れ (Time-Out) になって  LIFE が 1 減るだけでなく、賞金 PRIZE が BUST LOSS (初期値 25) だけごっそり減る 。
  • 賞金 PRIZE が INVOKE FAKE ポイント (初期値 200) に達すると、FAKE モードが発動する。
  • FAKE ONE モードは、偽モグラが出現する。放置しなければならない。手を出すと LIFE が 1 減る。
  • FAKE TWO モードは、偽モグラと本物モグラが同時に出現。本物を退治すると儲けがあるが、偽モグラを退治すると LIFE が 1 減る。
限られたLIFEで、どこまで賞金(PRIZE) を稼げるか、がんばろう!!

wam-fake1 wam-fake2 
左は 偽モグラが現れている。右は偽モグラと本物モグラが同時に現れている。

なお、設定値 LIFE、BURST、TIME-OUT、FUND、BURST LOSS、INVOKE FAKE は SETTINGS で変更できます。

wam-menu 


プログラムの構成

メインプログラム: WACK-A-MOLE (これを起動する)
ゲーム本体: WAM


ソースコード

PDFファイルのダウンロード

 Wack-A-Mole_fx-5800P Src 


 


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



  

keywords: fx-5800PCasioBasic、プログラムライブラリもぐら叩き、プログラム関数電卓

リンク集 | ブログ内マップ


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

プログラムライブラリ - もぐら叩き (fx-9860GII)

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

2017/08/04
追加・修正 2017/08/15

WACK-A-Mole (もぐら叩き) - fx-9860GII


対応機種

Casio fx-9860GII (fx-FD10 Pro でも動作すると思われます)

Casio fx-5800P 用は こちら
Casop fx-CG10 / fx-CG20 / fx-CG50 用は こちら


プログラムの説明

Wack-A-Mole (もぐら叩き) のオリジナルは、非力な fx-5800P でアクションゲームを作れるかどうか試しに作ったものです。

それを fx-9860GII に移植しました。

設定を変更する画面では、fx-5800P に搭載されている便利な ? 命令が fx-9860GII には無いので、e-Gadget 特製入力ボックス 2.1G を使ってプログラム全体を見直して、使い易くしました。

ゲーム機能は、fx-5800P 用と同じ。3×3 の配置の孔から モグラが顔を出した時に [1] ~ [9] の対応するテンキーで叩く、お馴染みのモグラ叩きです。

一定ポイントを超えると、偽モグラが顔を出したり、偽モグラと本物が一緒に顔を出すようになり、偽モグラを叩くとペナルティとなります。各種設定を変更する機能があり、難易度を自由に変えられます。

今回の移植にあたり、ゲーム進行を遅くするための ウェイト 設定を新設し、他のパラメータの初期値も変更しています。デフォルトで fx-5800P と同じ感じで遊べるようになっていると思います (若干易しめ)。


プログラムの使い方

もぐら退治の賞金稼ぎがゲームコンセプト:
  • ゲーム開始時に、LIFE ポイント (初期値 7) をもらう。
  • モグラ退治が遅い場合や間違って退治するとLIFE が減り、LIFE ゼロでゲーム終了!
  • モグラ1匹あたり、定額の資金 (FUND、初期値 20) をもらう。
  • モグラ退治に時間がかかるほど、退治費用 (COST) がかさむ。
  • モグラ退治が速ければ、FUND - COST が儲けとなり、賞金 PRIZE に加算される、
  • モグラが顔を出してから所定の時間がかかり COST が BURSTポイント (初期値 6) までかさむと、BURST となり LIFE が 1 減る、
  • モグラが顔を出してから時間がかかり過ぎて COST が TIME-OUTポイント (初期値 8) までかさむと、時間切れ (Time-Out) になって  LIFE が 1 減るだけでなく、賞金 PRIZE が BUST LOSS (初期値 25) だけごっそり減る 。
  • 賞金 PRIZE が INVOKE FAKE ポイント (初期値 200) に達すると、FAKE モードが発動する。
  • FAKE ONE モードは、偽モグラが出現する。放置しなければならない。手を出すと LIFE が 1 減る。
  • FAKE TWO モードは、偽モグラと本物モグラが同時に出現。本物を退治すると儲けがあるが、偽モグラを退治すると LIFE が 1 減る。
限られたLIFEで、どこまで賞金(PRIZE) を稼げるか、がんばろう!!

Life、Burst、Time-Out、Fund、Burst Loss、Invoke Fake、Wait の設定値は Settings で変更できます。


チューンアップした時の設定について

fx-9860GII で Casio Basicプログラムの動作を高速化する方法が1つあります;
  • チューンアップツール Ftune2 を使ってオーバークロックする方法 ⇒ こちらを参照
  • アドイン版Casio Basic: C.Basic でプログラムを走らせる方法 ⇒ こちらを参照
Ftune2C.Basic を併せて使えば、Casio Basic プログラムを大幅に高速化できます。

これらの環境で もぐら叩きを楽しむには、設定画面で Wait を 大きな数値に設定する必要があります。例えば、280MHz にチューンアップして C.Basic で走らせる場合は、Wait=3000 くらいにすれば fx-5800P と同じ感じで遊べます。これは極端としても 2桁~3桁の値を試してみてください。


プログラムの構成

メインプログラム: WACKAMO (これを起動する)
ゲーム本体: WAM

WAM1shWAM2shWAM3sh.jpg
WAM3sh.jpgWAM4sh.jpgWAM6sh.jpg
WAM7sh.jpgWAM8sh.jpgWAM9sh.jpg


ダウンロード

プログラムファイルのダウンロード: Whack-a-Mole.zjp


ソースコード

PDF と ECELファイルのダウンロード
 [2017/08/16 追加・修正] Excel ファイルもダウンロードできるように追加、ソースリストを訂正。

fx-9860GII Whack-a-Mole src 



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



  

keywords: fx-5800PCasioBasic、プログラムライブラリもぐら叩き、プログラム関数電卓

リンク集 | ブログ内マップ


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

プログラムライブラリ - もぐら叩き (fx-CG20 / fx-CG50)

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

更新 2017/08/04
追加・修正 2017/08/15

WACK-A-Mole (もぐら叩き) - fx-CG20 / fx-CG50


対応機種

Casio fx-CG10 / fx-CG20 / fx-CG50

Casio fx-5800P 用は こちら
Casop fx-9860GII 用は こちら


プログラムの説明

Wack-A-Mole (もぐら叩き) のオリジナルは、非力な fx-5800P でアクションゲームを作れるかどうか試しに作ったものです。

そこで、カラー高精細液晶を搭載した fx-CG20 と fx-CG50 に移植しました。 fx-CG20 と fx-CG50 の Casio Basic プログラムは完全互換なので、どちらでも遊べます。

画面に色を付けています。また、設定を変更する画面では、fx-5800P に搭載されている便利な ? 命令が fx-CG20 / CG50 には無いので、e-Gadget 特製入力ボックス 2.1G を使ってプログラム全体を見直して、使い易くしました。

ゲーム機能は、fx-5800P 用と同じ。3×3 の配置の孔から モグラが顔を出した時に [1] ~ [9] の対応するテンキーで叩く、お馴染みのモグラ叩きです。

一定ポイントを超えると、偽モグラが顔を出したり、偽モグラと本物が一緒に顔を出すようになり、偽モグラを叩くとペナルティとなります。各種設定を変更する機能があり、難易度を自由に変えられます。

今回の移植にあたり、ゲーム進行を遅くするための ウェイト 設定を新設し、他のパラメータの初期値も変更しています。デフォルトで fx-5800P と同じ感じで遊べるようになっていると思います (若干易しめ)。


プログラムの使い方

もぐら退治の賞金稼ぎがゲームコンセプト:
  • ゲーム開始時に、LIFE ポイント (初期値 7) をもらう。
  • モグラ退治が遅い場合や間違って退治するとLIFE が減り、LIFE ゼロでゲーム終了!
  • モグラ1匹あたり、定額の資金 (FUND、初期値 20) をもらう。
  • モグラ退治に時間がかかるほど、退治費用 (COST) がかさむ。
  • モグラ退治が速ければ、FUND - COST が儲けとなり、賞金 PRIZE に加算される、
  • モグラが顔を出してから所定の時間がかかり COST が BURSTポイント (初期値 6) までかさむと、BURST となり LIFE が 1 減る、
  • モグラが顔を出してから時間がかかり過ぎて COST が TIME-OUTポイント (初期値 8) までかさむと、時間切れ (Time-Out) になって  LIFE が 1 減るだけでなく、賞金 PRIZE が BUST LOSS (初期値 25) だけごっそり減る 。
  • 賞金 PRIZE が INVOKE FAKE ポイント (初期値 200) に達すると、FAKE モードが発動する。
  • FAKE ONE モードは、偽モグラが出現する。放置しなければならない。手を出すと LIFE が 1 減る。
  • FAKE TWO モードは、偽モグラと本物モグラが同時に出現。本物を退治すると儲けがあるが、偽モグラを退治すると LIFE が 1 減る。
限られたLIFEで、どこまで賞金(PRIZE) を稼げるか、がんばろう!!

Life、Burst、Time-Out、Fund、Burst Loss、Invoke Fake、Wait の設定値は Settings で変更できます。


チューンアップした時の設定について

fx-CG20 や fx-CG50 で Casio Basicプログラムの動作を高速化する方法があります;
  • fx-CG20 のチューンアップツール Ptune2 を使ってオーバークロックする方法 ⇒ こちらを参照
  • fx-CG50 のチューンアップツール Ptune3 を使ってオーバークロックする方法 ⇒ こちらを参照
これらの環境で もぐら叩きを楽しむには、設定画面で Wait を 大きな数値に設定する必要があります。チューンアップの程度によりますが、Wait=50 など2桁にすれば fx-5800P と同じ感じで遊べると思います。試してみてください。


プログラムの構成

メインプログラム: WACKAMO (これを起動する)
ゲーム本体: WAM

 Select Program First Screen Start Game
 Fake One Mode Fake Two Mode Keep Going
 Game Over Try Again Set Parameters


ダウンロード

プログラムファイルのダウンロード:Wack-A-Mole_Color.zip


ソースリスト

PDF と EXCELファイルのダウンロード
 [2017/08/16 変更] ソースリストにExcel ファイルを追加、ソースリストを訂正。

fx-CG20 Whack-a-Mole ソースリスト


 

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



  


keywords: fx-5800PCasioBasic、プログラムライブラリもぐら叩き、プログラム関数電卓

リンク集 | ブログ内マップ


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

fx-5800P プログラムライブラリ - Time Zone

プログラムライブラリ
<目次>

誤字脱字・記載ミスや分かりにくい表現は随時追記・修正します

最終更新:
2017/08/14

Time Zone (2017年版)

※ 2017年のヨーロッパ・北米夏時間に対応 [2016/12/03]
※※ プログラム改善: >>>> 表示で何も入力せず確定時、値が 0 に変更されたのを変更しないように改善した [2017/08/14] 

対応機種

Casio fx-5800P 専用
Casio fx-9860GII、fx-CG20、fx-CG50 用は こちら


プログラムの説明

Time Zone は、日本、ヨーロッパ、北米での同じ時間を表示します。その際、タイムゾーンや夏時間を考慮した時間を計算します。

具体的には、3カ所のうち、どこか一カ所の時間を入力すると、時差を計算して他の二カ所の時間を表示するプログラムです。

例えば、日本、ドイツ、モントリオールの3カ所から接続して電話会議を行う時に、それぞれが夜中にならないように時間を決める時などに役立ちます。

以下のタイムゾーンや夏時間の設定が行えます。

- 日本
 JST: 日本標準時間

- ヨーロッパ
 WET: 西ヨーロッパ標準時間
 CET: 中央ヨーロッパ標準時間
 EET: 東ヨーロッパ標準時間
 FET: 極東ヨーロッパ時間

 WEST: 西ヨーロッパ夏時間
 CEST: 中央ヨーロッパ夏時間
 EEST: 東ヨーロッパ夏時間
 FEST: 極東ヨーロッパ夏時間
EU-TZ 

- 北米(アメリカ、カナダ)
 PST: 太平洋標準時間
 MST: 山岳部標準時間
 CST: 中部標準時間
 EST: 東部標準時間

 PDT: 太平洋夏時間
 MDT: 山岳部夏時間
 CDT: 中部夏時間
 EDT: 東部夏時間

US-TZ 



プログラムの使い方

0:JST - 日本時間 の入力と表示
       [0] キー: 日本時間入力

1:CET - ヨーロッパ時間の入力と表示
       [1] キー:    ヨーロッパ時間入力
       [1] キー長押し: ヨーロッパ内のタイムゾーン設定
       [3] キー:    ヨーロッパの夏時間ON/OFF
       [3] キー長押し: 夏時間の期間を表示
     
2:EDT
- 北米時間の入力と表示
       [2] キー:    北米時間入力
       [2] キー長押し: 北米内のタイムゾーン設定
       [4] キー:    北米の夏時間ON/OFF 
       [4] キー長押し: 夏時間の時間を表示

[3] キー、[4] キー長押しで表示される夏時間について:
ヨーロッパ北米とも、夏時間の開始と終了は、午前2時とされています。本プログラムでは、夏時間終了日を実際の設定日の前日を表示するようにしています。終了設定日の午前0時から午前2時までの時間帯は、本来まだ夏時間のままですが、寝静まっている時間帯なので無視しています。現実的には問題ないと思いますが、留意してください。



プログラムの構成

メインプログラム: TIMEZONE
サブルーチン: TZCTZDTZMTZS
入力ボックス: INPI



ソースコード - TIMEZONE

※ fx-5800P で動作します。
fx-5800P 用入力ボックス INPI が必要です。

ソースコード(pdfファイル)のダウンロード

jpegファイル(1453 x 1523 ピクセル) を縮小表示しています 
TimeZone_SrcCode2017




応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ


 


keywords: fx-5800PCasioBasic、プログラムライブラリプログラム関数電卓

リンク集 | ブログ内マップ


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

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

やす (Krtyski)

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


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

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

おもしろい・役に立つならクリックしてください。励みになります。
にほんブログ村 IT技術ブログ 開発言語へ
にほんブログ村


人気ブログランキングへ


FC2ブログランキングへ


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR