C.Basic 英語版Webマニュアル

アドイン版 Casio Basic - 英語版Webマニュアル
<トップページ>


追記修正 2017/08/21

C.Basic の使い方は、配布ファイルに同梱されている readme_J.txt Manual_J.txt に記載されているので、これが参考になります。

2015年10月12日に作成された最初のテスト版以来、C.Basic は改良が進み、1年以上を経て安定性も増してきました。そこで、そろそろ海外デビューしても良いだろうと思い、英語版のマニュアルの準備を進めています。

C.Basic は 純正Casio Basic 互換のコマンドの実装から始まっていて、使い方の基本は 純正Casio Basic にあるので、上記の readme_J.txtManual_J.txt は、純正Casio Basic の機能以外を説明しているものです。

[2017/08/2- 追記・修正]
現在は、C.Basic の配布パッケージ (zipファイル) には、英語版の readme.E.txt と Manual_E.txt も同梱されるようになっています。

そこで、先ずはこれら2つのファイルの内容の英語化から始めています。テキストファイルだと表現に制限があるので、Webマニュアルとしました。

今後は、この英文マニュアルを元に、情報を探しやすいような英語版Webマニュアルを作ってこうと考えています。

C.Basic - 英語版Webマニュアル

所定のWebフォーマットに、上記2つのテキストファイルから日本語を流し込み、順に英語化しています。
まだ多くが日本語のままですが、あと1月程度で取りあえず完成の予定です。
[2017/08/20 追記]
私の作業が遅遅として進まないうちに、sentaro様が英文を準備なさっています。海外のユーザーさんが 英語版Webマニュアルに書いた私の英語を添削してくださったり大変有り難い状況になっています。そこで、上に書いたように 英文Webマニュアルでは検索性を考えて使いやすいマニュアルにしたいと思います。


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


 



keywords: fx-9860GIICasioBasic、C.Basic英語版Webマニュアル

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


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

ライフゲーム

アドイン版 Casio Basic 用サンプルプログラム
<トップページ>

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

動画・説明追加 2015/11/15
更新 2016/05/02

[2015/11/16] プリセットした初期パターンを選べるようにバージョンアップ
[2015/11/17] 記事を大幅に追加して更新
[2015/11/20] C.Basic Ver 0.73 へのバージョンアップを反映した更新
[2016/02/11] C.Basic 最新版は アドイン Casio Basic - トップページ の最新バージョンから
[2016/05/02] ライフゲーム Ver 0.74 へバージョンアップ (C.Basic Ver 0.99m への対応) 



カシオ fx-9860GII の Casio Basic でライフゲームができました。

...とは言っても、純正 Casio Basic では無理なので、アドイン版 Casio Basic : C.Basic で作りました。

最初に作ったもので遊んでみると意外に面白いので、色々とネット検索してライフゲームについて調べたり、プリセットパターンを選べるように機能追加したりして、ハマってしまいました。

実際の動作画面の動画は、下に掲載していますので、その動作速度を見ていただき、C.Basic の能力の高さを実感していただけると思います。

 
ライフゲームのルール

ライフゲームは人工生命シミュレーションと言えるもので、1970年に Conway が発表したのが始まりです。そこで、Conway's Game of Life と呼ばれます。

画面の1ピクセルを1個の生命体(細胞、Cell)と見立てて、誕生、生存、死滅を繰り返す生命体の集団の変化(世代変化)を画面上で再現して、眺めて楽しみます。
ピクセル1個は細胞1個で、 (On:生きている) (Off:死んでいる) のどちらかの状態になります。そして以下の単純な3つの条件だけで次の世代の細胞の生死、つまりピクセルの On / Off  が決定されます。

<誕生>
周りに生きている細胞が3個あれば、次の世代でその場所に新たな細胞が生まれます。
つまり、 あるピクセルが Off の時、周りの8 個のピクセルのうち3個が On の場合、
Birth 
そのピクセルは次の世代で On になります。

<生存>
生きている細胞の周りに生きている細胞が2個あるいは3個あれは、その細胞は次の世代でも生き残ります。
つまり、あるピクセルが On の時、周りの8個のピクセルのうち2個か3個が On の場合、
Live1 LIVE_2 
そのピクセルは次の世代では On のままになります。

<死滅>
上以外の場合、細胞は次の世代で死にます。
つまり、あるピクセルが On の時、周りの8 個のピクセルが1個以下(過疎)、
Death6  Death7 
あるいは4個以上(過密)の場合、
Death1  Death2  Death3  Death4  Death5 
そのピクセルは次の世代で Off になります。

これを画面全てのピクセルについて計算して結果を表示すると、1世代進みます。次々に世代が進むと複雑なパターンに変化してゆきます。


ピクセル一個が極めて単純なルールに従うだけなのに、実際に動かしてみると予想もしない複雑なパターンが次々に現れるのが、ライフゲームの面白いところです。

ライフゲームを知らなかった方や知っていた方も、以下のサイトにある動画を是非ご覧ください。私が探した範囲で最高に分かり易く、面白いと思います;

 ライフゲームの世界, 人口知能に関する断創録

これをプログラム電卓で作るのは無理だと思っていましたが、C.Basic を使えば十分楽しめるスピードで実現できたのはチョット驚きです。

上の動画で紹介されている簡単なパターンは、以下で紹介するプログラム電卓用ライフゲーム LIFE074 で実際に試すことができます。また有名なパターンはプリセットパターンとして選択して使えるようにしています。

ソースコードを公開しているので、プリセットパターンを追加したり、改造したり自由にお使いください。




プログラム電卓でライフゲーム

fx-9860GII の 純正Casio Basic で、液晶全体をピクセル単位でグラフィックス描画するには非常に時間がかかります。一瞬でグラフィックス画面全体を更新・表示することは無理、という仕様になっています。それでも作ってみようとして、最も安易なアプローチとして、画面全体のビットマップ処理を2次元配列(行列)を使って行うのが、楽で分かりやすいのですが 画面全体のピクセルを扱うには行列の要素数が足らない仕様でもあります。そんなわけで、fx-9860GII の Casio Basic ではライフゲームは作れないと思っていました。

アドイン版 Casio Basic インタープリタ : C.Basic の開発が動き出し、テスト版を触っていると、動作は速いし、画面全体のピットマップを2次元配列で高速に処理できるようになり、C.Basic のベンチマークの目的も含めて、面白そうなので作ってみました。純正Casio Basic にはない C.Basic で独自拡張したビットマップ処理コマンドも使ってみました(これを使わないと無理です)。

多くのライフゲームは十分に広い世界を用意していて、無限大の広さが前提になることが殆どです。今回のプログラムは、127×63 ピクセルに限定された狭い世界でのライフゲームです。この狭い世界は、ライフゲームのルールと、高速化のロジックのため、2ピクセルの見えない壁で囲まれていることになり、123×59 ピクセルの領域から外へ出ようとすると、通常のライフゲームとは異なる結果が起こり得ます。

今回作ったライフゲームは、アドイン版 Casio Basic: C.Basic の能力を調べることも大きな目的で、C.Basic Ver 0.66 で作り始め、C.Basic Ver 0.73 で仕上げて、それ以降の最新バージョンで動作確認しています。C.Basic 最新版 (Ver 0.99m) 以降に合わせて ライフゲームを Ver 0.74 にバージョンアップしました。 

このライフゲーム・プログラムを含めて、以下の3セットのプログラムをダウンロードして fx-9860GII に導入すれば、快適にライフゲームが楽しめます。


 アドイン版 Casio Basic: C.Basic

※ 最新バージョンのダウンロード: アドイン Casio Basic - トップページ
  • ZIPファイルで提供
  • ソースファイル(C言語)を公開
  • ZIPファイル内にある CBASIC.G1A がアドインプログラム
C.Basic は、まだテスト版で、バグフィックスとバージョンアップが頻繁に行われています。


◆ オーバークロックツール(アドイン): Ftune2

より高速でスムーズな動きを楽しむには、オーバークロックツールの使用を勧めます。

※ 使い方とダウンロード: fx-9860GII の高速化 - Ftune2 の導入



 サンプルプログラム: ライフゲーム

  ダウンロード
   ライフゲーム Ver 0.74 (C.Basic Ver 0.63 以降に対応) [2016/05/02 バージョンアップ]
  • Ftune2 でオーバークロック (236MHz 以上) を推奨
  • Ver 0.74 での初期パターンは、手入力だけでなくプリセットした15個の初期パターンから選択可能になった
電卓表示のの狭い世界でも、パターンが変化する様子は面白くて飽きません。作ってみるまでは fx-9860GII でライフゲーム遊びが出来るとは、思いもしませんでした。

  遊び方
C.Basic で LIFE074 起動
初期パターンは、[F1] (手入力) か [F6] (15個のプリセットから選択) かを選ぶ
プリセットパターンの確定は [F1] キー
プリセットから確定したのち [EXE] を押して手入力でチョイ足しもできます
・[DEL] で1世代へ進む
・[(-)] を押すたび1世代進む、[EXE] を押すと連続して世代が進む
世代が連続して進んでいる時 [(-)] を押せば一旦停止
・[EXIT]キーでゲーム終了し、その時の世代と最初からの実行時間を表示する


   プリセット初期パターン

   <パターン1>
   pt1 
   174世代目で安定状態になる。

   <パターン2>
   pt2 
   こんなに小さい5ピクセルから、大きく広がりながらグライダーを5機発射する。
   6機目のグライダーは途中で消滅。一般にはかなり長寿命だが、 電卓の狭い世界では
   652世代目で安定状態になる。

   <パターン3>
   pt3 
   たまたま見つけた面白いパターン。
   大きく広がらないのに、安定状態になるまで517世代と長寿命なのが特徴。
   
   このように、十分な実用的な速度で実行できる(オーバークロック236MHz)。

変化がなくなる517世代までの時間: [時間(相対速度)]

C.Basic Ver0.74C.Basic Ver 0.99m
ノーマルクロック (29MHz)796秒 (0.4)330 (1.0)
オーバークロック (236MHz)115秒 (3.0)52秒 (6.4)
オーバークロック (280MHz)95秒 (3.5)44秒 (7.6)
C.Basic の Ver 0.74 に比べて、最近のバージョンでは機能追加しているにもかかわらず、ほぼ倍の速度を維持している!

   <パターン4>
   pt4 
   たまたま見つけたパターン。横に広がり218世代目で安定状態になる。

   <パターン5>
   pt5 
   たまたま見つけた面白いパターン。
   途中から、画面全体のピクセルで計算と描画を行い負荷が最大になるので、
   プログラムのスピード評価に使える。
   グライダーを6機発射し、そのうち2機は途中で消滅。
   飛び去るグライダーを別にすれば、495世代目で安定状態になる。

   <パターン6>
   pt6 
   たまたま見つけた寿命の長いパターン(658世代)。
   但し、狭い画面よりも広がろうとするので、境界での特異現象あり。

   <パターン7>
   pt7 
   固定パターン(ブリンカー)の1つ。床屋さんのサインのようだ。

   <パターン8>
   pt8
   グライダーが反射を続けて往復移動する様子が面白い。

   <パターン9>
   pt9 
   グライダー: 回転しながら斜めに移動してゆく。

   <パターン10>
   pt10 
   小さい宇宙船と大きい宇宙船: 横に直進する。
   小さい宇宙船は壁に当たるとグライダーに変身する(画面端での特異ケース)。

   <パターン11>
   pt11 
   左右に往復運動するパターン(シャトル)。

   <パターン12>
   pt12 
   往復移動するパターン(シャトル)の1つ。
   壊れて消えそうで、消えずに往復運動するのが面白い。

   <パターン13>
   pt13 
   グライダー銃: MITのゴスペラーが最初に見つけた無限増殖するパターン。
   次々にグライダーが発射される。
   
   <パターン14>
   pt14 
   シュッシュポッポ列車 (Puffer Train): 煙(スパイク)を残しながら移動する。

   <パターン15>
   pt15 
   移動するパターン。ゴミ(スパイク)を残さないのが面白い。




ライフゲームに関するサイト

実際に作ってみると興味が出てきたので、色々と調べてみました。

ライフゲームの説明
人口知能に関する断創録 - ライフゲームの世界  一押し!ライフゲーム歴史と面白さが分かる
人口知能に関する断創録 - ライフゲーム
文系の人にこそ伝えたい!ハッカーを魅了してきたライフゲームの魅力
数字の難民 - ライフゲームを知っていますか?《機械仕掛けの生物》
・ ウィキペディア - ライフゲーム


ライフゲームを見てみる
ライフゲーム入門 (Introduction The Game of Life)
続・ライフゲーム入門 (Game of Life Demo)


fx-5800P でライフゲームを作った人が居た!
nimu.akhの日記: 関数電卓でライフゲーム


ライフゲームの数学的側面

ウィキペディア - ライフゲームの物体一覧
ウィキペディア - セル・オートマトン
ウィキペディア - チューリングマシン


ライフゲームの奥深さ [2016/02/11 追記]

C.Basic でライフゲームを作り始めた時は、ゲームのルールくらいしか知らず、今回 fx-9860GII + C.Basic で作ったのが初めてでした。その動きの複雑さや面白さは、実際に動かしてみないと分からないものです。ルールは単純なのでプログラム自体はそれほど難しくなく、ポイントは処理速度と画面の広さです。

fx-9860GII + C.Basic では、処理速度と画面の広さはスグに限界にきてしまいますが、ライフゲームの面白さを知るには十分です。上で紹介した色々なサイト、特に「一押し」と紹介したサイトにある動画を見て、その奥深さ知りました。

チューリングマシンについてちょっと調べてみると、コンピュータを作るための基本的な概念なんだと知りました。そしてチューリングマシンでチューリングマシンを作ることができる、完全チューリングマシンがあるというのも驚きです。ライフゲームで完全チューリングマシンを作れる、つまりライフゲームでライフゲームが作れることも、上の一押しの動画で紹介されています。

また、0と1だけの世界が、生命の成り立ちに迫ることをフォンノイマンが第二次世界大戦直後、今ほどライフサイエンスが進んでいなかった時代に既に考えていて、原理を証明していたことを知って、その先進性に驚きました。

生命は最初は1個の受精卵から始まり、そこからヒトのような複雑な生命システムができあがるわけですが、それが単に4つの塩基の並び方だけで記録されていて、細胞の分裂と分化に伴ってヒトの生命体としての機能を実現するという事実に迫るために、コンピュータ上の複雑系の研究が進んでいるのも、興味深いところです。

DNAに乗っている情報は、体の設計図だけでなく、タンパクや酵素の製造装置の設計図までも含んでいて、分子レベルでの全ての制御・調節機構を支配しています。生命を単に複製するのに必要な設計図を全てDNAに記録しているだけでなく、細胞分化に多様性を与えるための設計図まで含んでいる凄さも、ライフゲームで遊んでみて改めて実感します。

ライフゲームを実際に作って遊んでみると、複雑なパターンや機能が発現できる初期の単純なセルパターンを探すと、それなりに出てくるのを経験すると、一見単純なものを階層化して組み立てることで、自己複製までできてしまうことに納得します。プログラム電卓で作るライフゲームは、最も単純なウィルスレベルにも及ばないかも知れませんが、想像力をかきたててくれるには十分ですね。




ソースリスト

見やすくなると思ってソースを載せたら、意外に長かった...

ライフゲームの肝心な部分は、下のソースで;
 ・ '== Calc Next Map ==
 ・ '== Update Map ===
の部分で、大した量ではありません。
初期パターンを描いたり、使いやすくしたり、操作説明を入れたりで増えてしまっています(^^;

このプログラムでは1つだけ工夫しています。結構な量の配列計算を出来るだけ少なくするために、パターンの周りの最低限必要なビットマップ領域だけの配列計算をするようにしています。ビットマップ領域の拡大に伴ってフレキシブルに計算領域を拡大しているので、領域が広がるにつれて処理時間がかかるようになります。

fx-9860GII で C.Basic 内蔵のエディタを使ってゼロから作ったプログラムなので、実はこうやってプログラムソースを眺めるのは初めてです。このエディタは 純正Casio Basic の上位互換で、なかなか使いやすくなっていて、特に以下のようにソースを眺めなくてもプログラムが書けてしまいます。Casio Basic が構造化言語なのでブロック構造の分かりやすいプログラムが作れること、そしてエディタが使いやすいことは大きいと思います。


C.Basic 内蔵エディタの宣伝(^^;

そうか! C.Basic 内蔵エディタの使いやすさをアピールする良い機会かも知れません。
純正Casio Basic と同等の文字列検索機能だけでなく、このエディタには、変数や配列/行列の参照・編集機能があって、なかなか使えます。C.Basic Ver 0.99 以降は、ACBreak コマンドで強制終了させたり、ステップデバッグが可能で、コードや変数チェック後、動作復帰するなど、便利なデバッグ機能も搭載していて、とても便利です。


ファイル名: LIFE074.g1m (2472 byte)
'== LIFE Ver 0.74 ==
'        (c)Krtyski
'         e-Gadget
'
'Sample Program
'for CBasic Ver0.99m
'
'Flexible area
' Expanding model
'+Step Mode Option
'+Capture Enabled
'+Int Mode
'+Time Measurement
'+Support New DotP
'+Preset Pattern
'==

'== Execute Mode
'#CBint

'== Graphics Setting
ClrGraph
GridOff
AxesOff
LabelOff
ViewWindow 1,127,0,63,1,0

'== Initial Setting
'= Initialze Matrix
ClrMat B:ClrMat C
{127,63}→Dim Mat B.b
{127,63}→Dim Mat C.b
'Initial Area
'setting temporaly
'as a center dot 
64→L:64→R:32→T:32→B
'= Initialze Gen
0→G
'Step mode flag
1→f:0→s:0→S

0→Z:Prog "LMAP1"

'== Disp Instruction
'Skip Instruction
Z≠0⇒Goto 0

Cls
Text 1,1,"== INSTRUCTION - LIFE Ver0.74"
Text 7,1,"▶DRAW BY REPEAT 2 And 3"
Text 13,15,"1-[EXE]"
Text 13,60,":Start Drawing"
Text 19,15,"2-→/↑/←/↓"
Text 19,60,":Move Cursor"
Text 25,15,"3-[EXE]"
Text 25,60,":Put Dot"Text 31,1,"#E69BRUN"
Text 31,28,"4-[DEL]"
Text 31,60,":Start Running!"
Text 37,28," [(-)]"
Text 37,60,":Step by Step Run"
Text 43,28," [EXE]"
Text 43,60,":Continuous Run"
Text 49,1,"▶Stop"
Text 49,28,"5-[EXIT]"
Text 49,60,":Stop Running"
Text 55,28,"6-[SHIFT][7] :Capture"
Text 59,1,"[F1]"
While Getkey
WhileEnd
Do
LpWhile Getkey≠79
Cls

Lbl 0

'== Draw Pattern ==
CoordOn
Text 2,3,"EXE/→/↑/←/↓: Make Pattern"
Text 8,3,"DEL: Go!"
If Z=0:Then 
64→X:32→Y:IfEnd

0→C
While 1
While Getkey
WhileEnd
Do
Getkey→K
Text 8,3,"DEL: Go!"
LpWhile K=0
K=44⇒Break
If K=31:Then 
Text 8,3,"    "
Plot X,Y◢
'= Flexible Map Area
' Initialze Area,
' starting w/ a dot
If C=0:Then 
If Z=0:Then 
X→L:X→R:Y→T:Y→B
IfEnd
Isz C:IfEnd
1→Mat B[X,Y]
1→Mat C[X,Y]
X≦L⇒X-1→L
X≧R⇒X+1→R
Y≦T⇒Y-1→T
Y≧B⇒Y+1→B
IfEnd
WhileEnd
CoordOff
'Expand Map Area
L→l:R→r:T→t:B→b
'Disp Operation Note
Text 2,3,"[EXIT]:Stop         "
Text 8,3,"[(-)]/[EXE]"

'== Timer Start
%s

'1st Loop
While 1

'== Calc Next Map ==
For T→Y To B
For L→X To R
0→C
CellSum(Mat B[X,Y])→C
If Mat B[X,Y]:Then 
If C≦1 Or C≧4:Then 
0→Mat C[X,Y]
IfEnd
Else 
If C=3:Then 
1→Mat C[X,Y]
IfEnd
IfEnd
'Expand Map Area
If C:Then 
If l≦2:Then 2→l
Else X≦l⇒Dsz l:IfEnd
If r≧126:Then 126→r
Else X≧r⇒Isz r:IfEnd
If t≦2:Then 2→t
Else Y≦t⇒Dsz t:IfEnd
If b≧62:Then 62→b
Else Y≧b⇒Isz b:IfEnd
IfEnd
Next:Next
l→L:r→R:t→T:b→B

'== Update Map ==
Mat C→Mat B
DotPut(Mat C[L,T],L,T,R,B)
'Update Generation
Isz G
Text 2,105,G

'== Key Operation ==
f⇒Goto K
Getkey→K
K=0⇒Goto Z:Goto K

Lbl K
'[(-)]→Pause
If K=41 Or f:Then 
(%-s)+S→S
While Getkey
WhileEnd
Do
Getkey→K
'[EXIT]→Finish up
K=47⇒Break
'[EXE]→Continue
If K=31:Then 0→f
%s:Break:IfEnd
If K=41:Then 1→f
%s:Break:IfEnd
LpWhile 1
IfEnd

'[EXIT]→Finish up
K=47⇒Break

Lbl Z
'[EXIT]→Finish up
K=47⇒Break
WhileEnd
'1st Loop end

'== Finish up ==
(%-s)+S→S
ClrMat B
ClrMat C
ClrText

'#CBasic
Locate 1,1,"Generation"
Locate 12,1,G%
S%÷128→S
Locate 1,3,"Time(s)"
Locate 13,3,S
Int (S÷60)→M
If M:Then 
S-60M→S
Int (log M)→D
Locate 1,4,"Time(m:s)"
Locate 11,4,M
Locate 12+D,4,":"
Locate 13+D,4,S
IfEnd
Locate 1,6,"[SHIFT][F6]"
Locate 8,7,"⇒Graphic Disp"

=====

赤文字は、C.Baisc 独自拡張機能である、ビットマップ関数配列小文字変数変数の型指定タイマーに関するもので、高速化を目指しました。C.Basic は 純正Casio Basic の上位互換なので、このような独自機能を使うと純正Casio Basic では動作しません。

C.Basic の独自拡張機能や簡単な使い方については、ダウンロードした C.Basic の圧縮ファイル内にある readme_J.txt に書かれているので、そこで確認してください。


あっ、サブルーチンの LMAP1.g1m も有った...これは 6520 byte もあります。ここでやっていることは極めて単純で、プリセットパターンを配列データとして作り、それをビットマップとして表示し、矢印キーを押すと別のパターンで同じことを行う...これを15パターン分似たような記述を繰り返しているだけで、その分長くなっています。

コーディングにはメインルーチンと同様にゼロから C.Basic のエディタを使い、コピー&ペーストを使ったので、実際の入力はかなり省略でき、気がついたら長くなっていました。

上と同様に、C.Basic の独自拡張機能を赤文字で示しておきます。

ファイル名: LMAP1.g1m (6524 byte)
'== LMAP Ver0.7x ==
'Bitmap I/O Function
' for LIFE Ver0.7
'==

Cls
While Getkey
WhileEnd

'== Menu
Text 1,1,"===== Set Initial Pattern ====="
Text 9,30,"For LIFE Ver0.7x"
Text 15,30,"-----------------"
Text 25,18,"[F1] Draw New Pattern"
Text 37,18,"[F6] Select Pattern"
Text 59,1,"[F1]"
Text 59,114,"[F6]"

Do
0→K:Getkey1→K
64→X:32→Y

If K=79:Then
'= Manual Draw
0→Z:Cls:Return

Else If K=29:Then
'= Select Pattern
'Preset Pattern#
15→Z
'Crrent Pattern#
1→z

Do
Cls
Text 1,1,"[↓]/[↑]:Select"
Text 1,110,"[ ]"
Text 1,113,z
Text 59,1,"[F1] Enter"

If z=1:Then
64→X:32→Y:0→Mat B
X-2→L:X+2→R
Y-2→T:Y+2→B
0→Mat B[X-1,Y-1]
1→Mat B[X,Y-1]
1→Mat B[X-1,Y]
1→Mat B[X,Y]
1→Mat B[X+1,Y]
1→Mat B[X-1,Y+1]
1→Mat B[X+1,Y+1]
X→X:Y-1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=2:Then
64→X:32→Y:0→Mat B
X-2→L:X+2→R
Y-2→T:Y+2→B
1→Mat B[X,Y-1]
1→Mat B[X+1,Y-1]
1→Mat B[X-1,Y]
1→Mat B[X,Y]
1→Mat B[X,Y+1]
X→X:Y-1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=3:Then
64→X:32→Y:0→Mat B
X-1→L:X+11→R
Y-2→T:Y+2→B
1→Mat B[X,Y-1]
1→Mat B[X+9,Y-1]
1→Mat B[X,Y]
1→Mat B[X+1,Y]
1→Mat B[X+2,Y]
1→Mat B[X+3,Y]
1→Mat B[X+4,Y]
1→Mat B[X+5,Y]
1→Mat B[X+6,Y]
1→Mat B[X+7,Y]
1→Mat B[X+8,Y]
1→Mat B[X+9,Y]
1→Mat B[X,Y+1]
1→Mat B[X+9,Y+1]
X→X:Y→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=4:Then
64→X:32→Y:0→Mat B
X-2→L:X+2→R
Y-7→T:Y+7→B
1→Mat B[X-1,Y-6]
1→Mat B[X,Y-6]
1→Mat B[X+1,Y-6]
1→Mat B[X,Y-5]
1→Mat B[X,Y-4]
1→Mat B[X,Y-3]
1→Mat B[X,Y-2]
1→Mat B[X-1,Y-1]
1→Mat B[X,Y-1]
1→Mat B[X+1,Y-1]
1→Mat B[X-1,Y+6]
1→Mat B[X,Y+6]
1→Mat B[X+1,Y+6]
1→Mat B[X,Y+5]
1→Mat B[X,Y+4]
1→Mat B[X,Y+3]
1→Mat B[X,Y+2]
1→Mat B[X-1,Y+1]
1→Mat B[X,Y+1]
1→Mat B[X+1,Y+1]
X→X:Y+1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=5:Then
64→X:32→Y:0→Mat B
X-9→L:X+9→R
Y-11→T:Y+11→B
1→Mat B[X,Y-10]
1→Mat B[X-1,Y-9]
1→Mat B[X,Y-9]
1→Mat B[X+1,Y-9]
1→Mat B[X-1,Y-8]
1→Mat B[X+1,Y-8]
1→Mat B[X-7,Y+8]
1→Mat B[X-8,Y+9]
1→Mat B[X-7,Y+9]
1→Mat B[X-6,Y+9]
1→Mat B[X-8,Y+10]
1→Mat B[X-6,Y+10]
1→Mat B[X+7,Y+8]
1→Mat B[X+6,Y+9]
1→Mat B[X+7,Y+9]
1→Mat B[X+8,Y+9]
1→Mat B[X+6,Y+10]
1→Mat B[X+8,Y+10]
X+8→X:Y+10→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=6:Then
64→X:40→Y:0→Mat B
X-4→L:X+5→R
Y-2→T:Y+2→B
1→Mat B[X-3,Y-1]
1→Mat B[X-3,Y]
1→Mat B[X-2,Y]
1→Mat B[X-1,Y]
1→Mat B[X,Y-1]
1→Mat B[X,Y]
1→Mat B[X,Y+1]
1→Mat B[X+1,Y]
1→Mat B[X+2,Y]
1→Mat B[X+3,Y]
1→Mat B[X+4,Y]
1→Mat B[X+4,Y+1]
X→X:Y+1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=7:Then
64→X:32→Y:0→Mat B
X-7→L:X+7→R
Y-7→T:Y+7→B
1→Mat B[X+5,Y-6]
1→Mat B[X+6,Y-6]
1→Mat B[X+6,Y-5]
1→Mat B[X+3,Y-4]
1→Mat B[X+5,Y-4]
1→Mat B[X+1,Y-2]
1→Mat B[X+3,Y-2]
1→Mat B[X-1,Y]
1→Mat B[X+1,Y]
1→Mat B[X-1,Y+2]
1→Mat B[X-3,Y+2]
1→Mat B[X-3,Y+4]
1→Mat B[X-3,Y+4]
1→Mat B[X-5,Y+4]
1→Mat B[X-6,Y+5]
1→Mat B[X-6,Y+6]
1→Mat B[X-5,Y+6]
X+1→X:Y→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=8:Then
64→X:32→Y:0→Mat B
X-22→L:X+20→R
Y-5→T:Y+5→B
1→Mat B[X-21,Y+2]
1→Mat B[X-20,Y+2]
1→Mat B[X-19,Y+3]
1→Mat B[X-19,Y+2]
1→Mat B[X-19,Y+1]
1→Mat B[X-16,Y+3]
1→Mat B[X-16,Y+2]
1→Mat B[X-16,Y+1]
1→Mat B[X-15,Y+2]
1→Mat B[X-14,Y+2]
1→Mat B[X-13,Y+2]
1→Mat B[X-12,Y+2]
1→Mat B[X-11,Y+3]
1→Mat B[X-11,Y+2]
1→Mat B[X-11,Y+1]
1→Mat B[X-8,Y+3]
1→Mat B[X-8,Y+2]
1→Mat B[X-8,Y+1]
1→Mat B[X-7,Y+2]
1→Mat B[X-6,Y+2]
1→Mat B[X-4,Y+4]
1→Mat B[X-4,Y+3]
1→Mat B[X-3,Y+4]
1→Mat B[X-3,Y+2]
1→Mat B[X-2,Y+4]
1→Mat B[X+4,Y-2]
1→Mat B[X+5,Y-2]
1→Mat B[X+6,Y-1]
1→Mat B[X+6,Y-2]
1→Mat B[X+6,Y-3]
1→Mat B[X+9,Y-1]
1→Mat B[X+9,Y-2]
1→Mat B[X+9,Y-3]
1→Mat B[X+10,Y-2]
1→Mat B[X+11,Y-2]
1→Mat B[X+9,Y-2]
1→Mat B[X+12,Y-2]
1→Mat B[X+13,Y-2]
1→Mat B[X+14,Y-1]
1→Mat B[X+14,Y-2]
1→Mat B[X+14,Y-3]
1→Mat B[X+17,Y-1]
1→Mat B[X+17,Y-2]
1→Mat B[X+17,Y-3]
1→Mat B[X+18,Y-2]
1→Mat B[X+19,Y-2]
X-8→X:Y+3→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=9:Then
64→X:10→Y:0→Mat B
X-2→L:X+2→R
Y-2→T:Y+2→B
1→Mat B[X-1,Y+1]
1→Mat B[X,Y-1]
1→Mat B[X,Y+1]
1→Mat B[X+1,Y]
1→Mat B[X+1,Y+1]
X+1→X:Y+1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=10:Then
5→X:32→Y:0→Mat B
X-3→L:X+5→R
Y-7→T:Y+7→B
1→Mat B[X-2,Y-4]
1→Mat B[X-2,Y+5]
1→Mat B[X-1,Y-3]
1→Mat B[X-1,Y+6]
1→Mat B[X,Y-3]
1→Mat B[X,Y+6]
1→Mat B[X+1,Y-3]
1→Mat B[X+1,Y-6]
1→Mat B[X+1,Y+6]
1→Mat B[X+2,Y-3]
1→Mat B[X+2,Y-4]
1→Mat B[X+2,Y-5]
1→Mat B[X+2,Y+6]
1→Mat B[X+3,Y+3]
1→Mat B[X+3,Y+6]
1→Mat B[X+4,Y+4]
1→Mat B[X+4,Y+5]
1→Mat B[X+4,Y+6]
X+4→X:Y+6→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=11:Then
64→X:32→Y:0→Mat B
X-7→L:X+17→R
Y-4→T:Y+4→B
1→Mat B[X-6,Y]
1→Mat B[X-6,Y+1]
1→Mat B[X-5,Y]
1→Mat B[X-5,Y+1]
1→Mat B[X-2,Y-1]
1→Mat B[X-2,Y]
1→Mat B[X-2,Y+1]
1→Mat B[X-1,Y-1]
1→Mat B[X-1,Y]
1→Mat B[X-1,Y+1]
1→Mat B[X+3,Y-3]
1→Mat B[X+3,Y-2]
1→Mat B[X+3,Y+2]
1→Mat B[X+3,Y+3]
1→Mat B[X+4,Y-2]
1→Mat B[X+4,Y-1]
1→Mat B[X+4,Y]
1→Mat B[X+4,Y+1]
1→Mat B[X+4,Y+2]
1→Mat B[X+5,Y-1]
1→Mat B[X+5,Y]
1→Mat B[X+5,Y+1]
1→Mat B[X+6,Y]
1→Mat B[X+14,Y]
1→Mat B[X+14,Y+1]
1→Mat B[X+15,Y]
1→Mat B[X+15,Y+1]
X+6→X:Y→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=12:Then
64→X:32→Y:0→Mat B
X-15→L:X+15→R
Y-6→T:Y+6→B
1→Mat B[X-14,Y-4]
1→Mat B[X-14,Y-3]
1→Mat B[X-14,Y+3]
1→Mat B[X-14,Y+4]
1→Mat B[X-13,Y-4]
1→Mat B[X-13,Y-3]
1→Mat B[X-13,Y+3]
1→Mat B[X-13,Y+4]
1→Mat B[X-1,Y-2]
1→Mat B[X-1,Y+2]
1→Mat B[X,Y-2]
1→Mat B[X,Y+2]
1→Mat B[X+3,Y-5]
1→Mat B[X+3,Y-4]
1→Mat B[X+3,Y-2]
1→Mat B[X+3,Y+2]
1→Mat B[X+3,Y+4]
1→Mat B[X+3,Y+5]
1→Mat B[X+4,Y-4]
1→Mat B[X+4,Y-3]
1→Mat B[X+4,Y-2]
1→Mat B[X+4,Y+2]
1→Mat B[X+4,Y+3]
1→Mat B[X+4,Y+4]
1→Mat B[X+5,Y-3]
1→Mat B[X+5,Y+3]
1→Mat B[X+13,Y-4]
1→Mat B[X+13,Y-3]
1→Mat B[X+13,Y+3]
1→Mat B[X+13,Y+4]
1→Mat B[X+14,Y-4]
1→Mat B[X+14,Y-3]
1→Mat B[X+14,Y+3]
1→Mat B[X+14,Y+4]
X→X:Y-2→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=13:Then
64→X:32→Y:0→Mat B
X-19→L:X+18→R
Y-5→T:Y+5→B
1→Mat B[X-18,Y]
1→Mat B[X-18,Y+1]
1→Mat B[X-17,Y]
1→Mat B[X-17,Y+1]
1→Mat B[X-7,Y]
1→Mat B[X-7,Y+1]
1→Mat B[X-7,Y+2]
1→Mat B[X-6,Y-1]
1→Mat B[X-6,Y+3]
1→Mat B[X-5,Y-2]
1→Mat B[X-5,Y+4]
1→Mat B[X-4,Y-1]
1→Mat B[X-4,Y+3]
1→Mat B[X-3,Y]
1→Mat B[X-3,Y+1]
1→Mat B[X-3,Y+2]
1→Mat B[X-2,Y]
1→Mat B[X-2,Y+1]
1→Mat B[X-2,Y+2]
1→Mat B[X+3,Y-2]
1→Mat B[X+3,Y-1]
1→Mat B[X+3,Y]
1→Mat B[X+4,Y-3]
1→Mat B[X+4,Y-2]
1→Mat B[X+4,Y]
1→Mat B[X+4,Y+1]
1→Mat B[X+5,Y-3]
1→Mat B[X+5,Y-2]
1→Mat B[X+5,Y]
1→Mat B[X+5,Y+1]
1→Mat B[X+6,Y-3]
1→Mat B[X+6,Y-2]
1→Mat B[X+6,Y-1]
1→Mat B[X+6,Y]
1→Mat B[X+6,Y+1]
1→Mat B[X+7,Y-4]
1→Mat B[X+7,Y-3]
1→Mat B[X+7,Y+1]
1→Mat B[X+7,Y+2]
1→Mat B[X+12,Y]
1→Mat B[X+12,Y+1]
1→Mat B[X+16,Y-2]
1→Mat B[X+16,Y-1]
1→Mat B[X+17,Y-2]
1→Mat B[X+17,Y-1]
X+17→X:Y-1→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=14:Then
40→X:38→Y:0→Mat B
X-4→L:X+3→R
Y-9→T:Y+10→B
1→Mat B[X-3,Y-6]
1→Mat B[X-3,Y-1]
1→Mat B[X-3,Y+8]
1→Mat B[X-2,Y-5]
1→Mat B[X-2,Y]
1→Mat B[X-2,Y+3]
1→Mat B[X-2,Y+9]
1→Mat B[X-1,Y-5]
1→Mat B[X-1,Y]
1→Mat B[X-1,Y+1]
1→Mat B[X-1,Y+2]
1→Mat B[X-1,Y+9]
1→Mat B[X,Y-8]
1→Mat B[X,Y-5]
1→Mat B[X,Y+6]
1→Mat B[X,Y+9]
1→Mat B[X+1,Y-7]
1→Mat B[X+1,Y-6]
1→Mat B[X+1,Y-5]
1→Mat B[X+1,Y+7]
1→Mat B[X+1,Y+8]
1→Mat B[X+1,Y+9]
X-1→X:Y→Y
DotPut(Mat B[L,T],L,T,R,B)

Else If z=15:Then
40→X:32→Y:0→Mat B
X-5→L:X+5→R
Y-5→T:Y+5→B
1→Mat B[X-4,Y-1]
1→Mat B[X-4,Y]
1→Mat B[X-4,Y+1]
1→Mat B[X-3,Y-1]
1→Mat B[X-3,Y]
1→Mat B[X-3,Y+1]
1→Mat B[X-2,Y]
1→Mat B[X,Y-3]
1→Mat B[X,Y-1]
1→Mat B[X,Y+1]
1→Mat B[X,Y+3]
1→Mat B[X+1,Y-4]
1→Mat B[X+1,Y+4]
1→Mat B[X+2,Y-4]
1→Mat B[X+2,Y+4]
1→Mat B[X+3,Y-4]
1→Mat B[X+3,Y-1]
1→Mat B[X+3,Y+1]
1→Mat B[X+3,Y+4]
1→Mat B[X+4,Y-4]
1→Mat B[X+4,Y-3]
1→Mat B[X+4,Y-2]
1→Mat B[X+4,Y+2]
1→Mat B[X+4,Y+3]
1→Mat B[X+4,Y+4]
X-2→X:Y→Y
DotPut(Mat B[L,T],L,T,R,B)

IfEnd:IfEnd:IfEnd
IfEnd:IfEnd:IfEnd
IfEnd:IfEnd:IfEnd
IfEnd:IfEnd:IfEnd
IfEnd:IfEnd:IfEnd

Getkey1→K
K=79⇒Break
K=37⇒z+1→z:z=Z+1⇒1→z
K=28⇒z-1→z:z=0⇒Z→z
LpWhile 1

Cls
Mat B→Mat C
DotPut(Mat B[L,T],L,T,R,B)
Return
IfEnd:IfEnd
LpWhile 1


=====





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


 




keywords: fx-9860GIICasioBasic、プログラミング入門グラフィックスプログラム関数電卓

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


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

C.Basic コマンドリファレンス

 目 次
< English | 日本語 > 

記載内容は fx-9860GII (OS 2.04)で確認したものです.
本プロジェクトは進行中のため、追記修正があるかも知れません.


 
基本仕様互換拡張
表示エリア
グラフィックス座標系
内部カーソル行の制御
 
 基本動作コマンド互換拡張
  (代入)
" " (出力)
(出力と一旦停止)
? (入力)
?→ (入力)
 
 入出力コマンド互換拡張
Getkey
Getkey1, Getkey2, Getkey3
Locate
Locate X,Y,<値>[,R]
LocateYX Y,X,<値>[,R]
 
 プログラムコマンド互換拡張
If... Then... [Else...] IfEnd
If... Then... ElseIf...[[ElseIf...]...] IfEnd
For... To... [Step...] Next
While... WhileEnd
Do... LpWhile
Switch... [[Case...]...] Default
 
 プログラム制御コマンド互換拡張
Break
Return
Stop
Prog
GoSub... Lbl... Return✔
 
 ジャンプコマンド互換拡張
Goto... Lbl
Isz
Dsz
  
 関係演算子互換拡張
=, ≠, <, >, ≤, 
 
 論理演算子互換拡張
And, Or, Not, Nor
 
 記述コード互換拡張
: (区切りコード)
' (コメント文指定)
'/<C.Basic でのみ実行するなコマンド>
  
 変数互換拡張
A - Z (大文字)
~
a - z (小文字)✔
#, %
Local
 
配列互換拡張
Dim Z, Z[ ], Dim A, A[ ]
行列互換拡張
Dim, Mat, Trn, Fill( )
{m,n}→Dim Mat A (初期化)
[[...][...]...]→Mat A (初期化)
ElmSize( ), ColSize( ), RowSize( )
Mat B, Mat C, Mat D, Mat W, Mat I, Mat L
Mat A.x (x = p, b, w, l, f)
Save, Load( ) 
Mat A.v
 
ビットマップコマンド互換拡張
DotGet( ), DotPut( ), DotTrim( )
ReadGraph( ), WriteGraph( )
DotLife (ライフゲーム専用)
 
 表示設定 (テキスト)互換拡張
Cls (テキスト)
ClrText (テキスト)
Eng
EngOn, EngOff
Norm
Sci
Fix
Deg, Rad, Gra✔
°, r (rad), g (gra), DMS✔
Rnd, RndFix( )
f, p, n, μ, m✔
k, M, G, T, P, E✔
 
数学関数互換拡張
主なキー入力関数✔
Abs, Int, Frac, !, MOD( )✔
sinh, cosh, tanh, sinh-1, cosh-1, tanh-1 ✔
 
乱数互換拡張
Ran#, RanInt#( )
 
文字列操作コマンド互換拡張
Str, '#Str✔
Str, StrJoin( ), StrLen( ), StrCmp( ), StrSrc( )✔
StrLeft( ), StrRight( ), StrMid( )✔
Exp▶Str( ), Exp( ), StrUpr( ), StrLwr( )✔
StrInv( ), StrShift( ), StrRotate( ), \, +
Sprintf( )✔
  
 グラフィックス設定互換拡張
ClrGraph
ViewWindow
Xmin, Xmax, Xdot, Xscl, Xfct
Ymin, Ymax, Yscl, Yfct
 AxesOn, AxesOff
 GridOn, GridOff
 LabelOn, LabelOff
CoordOn, CoordOff
S-L-Normal, S-L-Thick, S-L-Dot, S-L-Broken
  
 グラフィックス Sketch コマンド互換拡張
Cls (グラフィックス)
ClrGraph
Text Y,X,<値>
Text Y,X,<値>[,N/R/O/V]
PxlOn Y,X
PxlOff Y,X
PxlChg Y,X
PxlTest(Y,X)
Plot
Line
PlotOn X,Y
PlotOff X,Y
F-Line X2,Y2,X1,T1
F-Line X2,Y2,X1,Y1,C/X
Vertical X
Vertical X,C/X
Horizontal Y
Horizontal Y,C/X
Circle X,Y,R
Circle X,Y,R,C/X
SketchNormal, SketchThick, SketchDot, SketchBroken
StoPict, RclPict
Rect, FillRect
 
タイマーコマンド互換拡張
%, Ticks✔
 
デバッグコマンド互換拡張
ACBreak
 
実行モード互換拡張
'#CBINT, "#CBint
'#CBASIC, '#CBasic, '#CBDBL, '#CBdbl
 
ハードウェア制御互換拡張
 Backlight
 
 






Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.



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

Installation of C.Basic

C:Basic - Add-In Casio Basic
<Top Page>

Update and correction may be made at any time without notice.

27th Mar. 2016


How to Use C.Basic



Installation of C.Basic

For the first installation or updating to latest version of C.Basic, down load the C.Basic and transfer it to your fx-9860GII using PC Link software FA124A and USB cable which are included in your fx-9860GII package.

It's simple to transfer C.Basic to your fx-9860GII, Import the downloaded C.Basic to FA-124A and then transfer the C.Basic to your fx-9860GII.

- Download C.Basic

-
Install FA-124A to your PC

-
Import C.Basic at FA-124A
 ・
Start up FA-124A
 ・
Switch to Storage Memory Mode
 ・
Import C.Basic to FA-124A

-
Transfer C.Basic to fx-9860GII
 ・
Connect fx-9860GII to FA-124A
 ・
Transfer C.Basic
 ・
Check transferred C.Basic

-
Optimization of Memory




Download C.Basic

Download Latest Verion, store in proper folder and unzip the downloaded file (ZIP file). CBASIC.G1A in there is C.Basic Add-in File.


Install FA-124A to your PC

If you want to install FA-124A in your favorite launguage, you should use CD which is included in your fx-9860GII package and select your favorite language before the installation.

▲Back to Top


Import C.Basic at FA-124A

Start up FA-124A

When FA-124A is started up, Main Memory mode is selected, in this mode Calc icon button is pushed in.
When mouse cursor comes over the Calc icon button, "Main" is popped up.

FA124A_Start

Left pane shows files in Calc and right pane shows files imported in FA-124A of your PC. Now you use right pane to import C.Basic Add-In file (CBASIC.G1A) at FA-124A.

fx-9860GII has Main and Storage memory, so FA-124A has also Main and Storage memory mode which you can siwtch each other. At starting-up, FA-124A is in Main memory mode.

An add-in program is installed and used in Storage memory of fx-9860GII. Since C.Basic should be transferred to Storage memory, you should switch FA-124A to Storage memory mode.  


 Switch to Storage Memory Mode

In right pane, click "Storage " mode button (on the right side of Calc icon button) to switch to Storage mode.

FA124A_Storage


 Import C.Basic to FA-124A

Click on "Default" by right button of your mouse, then select "Import" at pop-uped menu.

FA124A_Import

Then Insert CASIO File dialog is shown, where,
- select folder where CBASIC.G1A is stored,
- select file type as G1A File(*.g1a),
- select CBASIC.G1A,
and click Open(O) button.

Then check if there is CBASIC.g1a in file list at right pane.

FA124A_CBASIC

▲Back to Top


Transfer C.Basic to fx-9860GII

Connect fx-9860GII to FA-124A

Connect fx-9860GII to PC by USB cable, you will see following pop up window (Select Connection Mode) at your calc.

SelectConnectionMode 

Then push [F1] (DataTrans), then click very left button ("Connect" button) in left pane of FA-124A.

FA124A_Connect

Waiting until connection is completed, then you will see "User1" in left pane.

FA124A_Connected


Transfer C.Basic

Push left button of your mouse on the Impoted CBASIC.g1a in right pane and drug to "User1" in left pane then drop it (Drug & Drop).

FA124A_Drag_Drop

Check if there is CBASIC.g1a in file list of left pane.

FA124A_Moved


Check Transferred C.Basic

With your fx-9860GII, push [MENU] key to show MAIN MENU and check if there is C.Basic icon.

MAIN_MENU_CBasic 

Select C.Basic ison and push [EXE] key to run C.Basic.

Starting up C.Basic, you will see File List screen and key in [SHIFT][MENU](SET UP), C.Basic Setup menu is shown.

CBasic_Setup 

In Function menu shown in bottom, push [F6](Ver.) key to show version of C.Basic and check is correct version is installed.

CBasic_Ver 

▲Back to Top


Optimization of Memory

C.Basic itself (add-in file) and Casio Basic source files should be installed in Storage memory. After meny times of file writing, files are fragmanted and actually usable memory size is getting descreased. Optimization solves the fragmentation to get back usable memory area. It's recommended to carry out memory Optimization at the installation or update of C.Basic.

Push [MENU] to show MAIN MENU and select Memory icon,

MENU_Memory 

Push [EXE] key to start Memory Manager.

MemoryManager 

Then push [F5] (F5: Optimization) key to run memory Optimizarion feature.

▲Back to Top








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

アクションゲーム - DRAGON

アドイン版 Casio Basic 用サンプルプログラム
<トップページ>

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

2016/01/15


アクションゲーム - DRAGON

ガノー様から、C.Basic 独自拡張機能を活用したアクションゲーム - DRAGON をご紹介頂きました

どのようなゲームかは、以下をご覧下さい。

 

C.Basic の独自拡張機能をうまく使って、グラフィックスを活用したゲームです。

ゲーム自身、スピードや乱数利用のパラメータがうまく調整されていて、飽きない設計になっていると思います。
私は、とりあえずハマりました。

操作は、ドラゴンの上昇と下降を切り替えるのは、[AC][EXIT][0] 以外のキー(何でも良い)を押します。どうにも切り抜けられない際に [0] キーで BOM を発動します。ちなみに BOM は3回分しかありません。

このプログラムは、純正 Casio Basic では動作せず、C.Basic の独自拡張機能を用いた事例です。ソースファイルを見ると良い勉強になります。改変は認められているので、自分用に改造して遊ぶのも良いと思います。



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

 ⇒ アクションゲーム - DRAGON by ガノー (作者のページからダウンロードできなくなっています)

 ⇒ アクションゲーム - DRAGON by ガノー (e-Gadget からダウンロード)

ダウンロードしたZIPファイルには、DRAGON.g1m と説明のテキストファイル readme.txt が含まれています。
この g1m ファイルを fx-9860GII に転送し、DRAGON を実行するとゲームが始まります。



動作確認

なお、C.Basic Ver 0.93 で動作確認しています。


readmeファイルの紹介

----------------------------------------
DRAGON.G1M - Sorry, Japanese only!
twitter:garnot1
----------------------------------------
1.概要

C.Basic(sentaro様作)で動作する
横スクロールドット避けゲームです。

2.前振り

あなたは生まれたての伝説のドラゴン。
未来人はあなたの生まれることを察知して
いた。そんな彼らはあなたを捕えようと
空中に機雷を散布して待ち構えていた。

3.遊び方

AC/EXIT/0以外のキーを押すと、進行方向を
変更します。

ドラゴンであるあなたは、0キーを押して
「ドラゴンの咆哮」を使うことができます。
これは機雷はもちろん、周囲の山々をも
一掃する火力を持っています。
ただし、一生を通して3回しか行えません。

EXITで終了します。

4.添付のソースに関して

C.Basicでのみ動作します。
C.Basicはsentaro様により開発されて
います。最新の情報は、以下のサイト
(管理者:やす様)から得られます。

https://egadget.blog.fc2.com/

このゲームは再配布、改造、何でもあり
です。

解説はソースコード内部をご覧ください。






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


 


keywords: fx-9860GIICasioBasic、プログラム関数電卓、C.Basic、C:Basic

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



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

3D迷路ゲーム

アドイン版 Casio Basic 用サンプルプログラム

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

2016/01/09
追記・修正 2016/01/13

3D迷路ゲーム

ガノー様から、C.Basic 向けに3D迷路ゲームをご紹介頂きました

3D_Maze 

右側の3D表示された迷路を見ながら、左上から右下までたどり着くゲームです。
3D表示の上には、現在南を向いていることを示す S が表示されています。方向転換するとその時に向いている方向を東西南北(E、W、S、N)で示してくれます。画面の上方向が北です。

矢印キーかテンキーを使って、前進、方向転換(右、左、後ろ)をします。結構難易度が高いです。最終手段としては、左手法(左手で壁をなぞってゆくと、いずれ必ず出口にたどり着く方法)があります。

具体的な操作方法は、ソースコードを見れば分かりますが、以下のようになっています。

・ [↑][8] で前進
[→][6] で右へ方向転換
[←][4] で左へ方向転換
[↓][2] で後ろへ方向転換

右側の3D表示は、ポリライン描画(頂点や交点の座標のみのデータから直線を描画する方法)というテクニックを使っていて、使用メモリ節約を行っています。

このプログラムは、ソースコードレベルで純正Casio Basic と互換になっているのも面白い点です。ご興味のある方は、ソースを読んでみて下さい。ソースコード自体は、簡潔に読みやすく書かれています。ポリライン描画を使っているので、純正 Casio Basic で動作可能になっていますがちょっと遅いです。

この他に、ソースレベル互換を実現するために使われているテクニックを紹介します。
ソースの中に、行頭が '/ となっている部分があります。純正Casio Basic は行頭が ' なのでコメントとして認識しますが、C.Basic'/ となるものは実行します。 こうして、C.Basic の独自拡張機能を使いながら純正Casio Basicとの互換性を確保できます。

但し、このソースを純正Casio Basic で実行させると、左側の迷路マップ表示に恐ろしく時間がかかってしまいます。尤も3D表示についてはポリライン描画なので純正Casio Basicでも殆どストレスなく描画されます。

なお、デフォルトでは自分がどこにいるのか分からないのですが、隠しキー を押すことで迷路マップ上に自分の位置がドットで表示されます。
C.Basic の作者 Sentaro様 か 管理人(Krtyski) の頭文字が隠しキーになっています。

百聞は一見に如かず、以下のYouTubeをご覧ください。


3D迷路の遊び方と説明




より快適に遊ぶ - C.Basic + Ftune2 で爆速!!





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

 ⇒ 3D迷路サンプル by ガノー ( 2017/09/03: リンク切れしています)

 ⇒ 3D迷路サンプル by ガノー ( 2017/09/03 e-Gadget Web から新たなリンク作成)




ダウンロードしたZIPファイルには、3つの  g1m ファイルと3つの説明のテキストファイルが含まれています。
3つの g1m ファイルを fx-9860GII に転送し、メインプログラムの MAZ3D を実行するとゲームが始まります。他の2つのファイルはメインプログラムから呼び出されるサブルーチンプログラムです。

3つの説明のテキストファイルは、メインプログラムのプログラム概略、ポリライン描画に関する説明、そして readmeファイルがあります。



動作確認

なお、C.Basic Ver 0.92 で動作確認しています。

この高速インタープリタ C.Basic だと、迷路マップの表示は1秒以内です。

さらに、Ftune2 を使ってオーバークロック (236MHz) すると、描画は一瞬です。
⇒ ダウンロード: fx-9860GII の高速化 - Ftune2 の導入 からどうぞ


readmeファイルの紹介

3D迷路サンプル / Sample Code Of 3D Maze
Author twitter:garnot1
Since 2015/12/25

Notice:
* CasioBasic / C.Basicで動作する3D迷路サンプルプログラムです。
* 本サンプルは改変自由、再配布自由です。
*
* This is a sample code of 3D Maze, It's runnable with CasioBasic And C.Basic.
* This sample is allowed redistributions and also allowed modifications.

Informations:
* もしもC.Basicに興味を持たれたなら、サイトをチェックしてみてください。
* https://egadget.blog.fc2.com/
* https://egadget.blog.fc2.com/blog-entry-495.html
* 管理者:やす様 (Krtyski)
*
* If you interested this C.Basic project, please you check the site.
* https://egadget.blog.fc2.com/
* And this project contains English web-page, maybe it will help to you.
* https://egadget.blog.fc2.com/blog-entry-493.html "
* Supervisors / Administrators are: Yasu (Krtyski)

C.Basic's rights and other's are:
* C.Basic の開発者は「 sentaro 」様であり、全ての権限を有しています。
* C.Basic is programmed and created by sentaro, all-rights reserved.





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


 



keywords: fx-9860GIICasioBasic、プログラム関数電卓、C.Basic、C:Basic

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



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

迷路プログラム

アドイン版 Casio Basic 用サンプルプログラム

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

2015/12/15
修正 2015/12/17

迷路作成プログラム

ガノー様から、C.Basic 向けに迷路作成プログラムをご紹介頂きました

Maze1 

や、

Maze2 

といったグラフィックス画面全体を使って迷路を自動作成するプログラムです。棒倒し法で作成されたとのことですが、純正Casio Basicでは作成が終わるまでにカップラーメンが出来るくらいの時間がかかります(ガノー様・談)。

確かに、嫌になるくらい待たされます。なので、純正Casio Basicでは全画面描画のグラフィックスプログラムは厳しく、高速インタープリター  C.Basic 向けの良いサンプルプログラムと言えます。

シンプルなロジックから複雑な図形が生成されるのは、なかなか面白いものです。


ガノー様作
ファイル名: MAZEG
' GRAPHICS SETTING
ClrGraph
CoordOff
GridOff
AxesOff
LabelOff
ViewWindow 0,126,0,62,0,0
' DRAW FRAME
Vertical 0
Vertical 126
Horizontal 0
Horizontal 62
' CREATE MAZE
For 3→B To 61 Step 2
SketchDot Horizontal B-1
For 3→A To 125 Step 2
B=3⇒RanInt#(1,4)→R
B≠3⇒RanInf#(1,3)→R
R=1⇒PxlOn B,A+1
R=2⇒PxlOn B+1,A
R=3⇒PxlOn B,A-1
R=4⇒PxlOn B-1,A
Next
Next

手入力が面倒なら、ダウンロードしてください。
⇒ ダウンロード: MAZEG

=====

さて、ここで高速インタープリタ C.Basic の登場!

このソースのまま C.Basic Ver 0.83a で動作するのが、上位互換の良いところ。
⇒ ダウンロード: C:Basic プロジェクト からどうぞ

起動すると、0.61秒 で作成終了!

カップラーメンが間に合いません(^^;)


では、Ftune2 を使ってオーバークロックしてみます。
⇒ ダウンロード: fx-9860GII の高速化 - Ftune2 の導入 からどうぞ

236MHz で、0.09 秒!

一瞬で迷路が表示さました。


 
実際に迷路で遊んでみる

目の前に迷路ができたら、遊んでみたくなりました。

この迷路の通路は、1ドット分の幅しかないので、自分をドット1個で表示して、このドットを左上から右下まで移動して、、迷路を抜けるようなプログラムを作ってみました。カップ面を作るほど待つのは嫌なので、最初から C.Basic を前提にすることにして、それなら C.Basic の独自拡張機能の「タイマー機能」「変数型指定機能」を使うことにしました(以下に簡単説明あり)。

自分を示すドットと迷路の壁の区別が付かないので、自分のドットは点滅させることにしました。これは純正Casio Basicでは不可能で、C.Basicの独自拡張機能を利用しました。

このプログラムでは、最初にガノー様作の MAZEG を呼び出して、迷路を作ります。そのあと、ドットを左上に表示し、それを矢印キーで動かし、右下へ到達したら、Goal! と表示してゲーム終了!

こんな感じで、取りあえず作ったのが以下のものです。

[2015/12/17  修正]
変数型の設定について、C.Basicの仕様を勘違いしていたので、プログラムを修正し以下の説明も修正します。

ファイル名:TRYMAZE
'#CBint
Prog "MAZEG"
0→G:2→A:2→B
%→S:%→T

'1st Loop
Do

If A=126 And B=62
Then 1→G:Break:IfEnd

While Getkey
WhileEnd
Do
Getkey→K
If %-S>30:Then %→S
PxlChg B,A
IfEnd
LpWhile K=0
PxlOn B,A

K=47⇒Break
PxlOff B,A
If K=27:Then
PxlTest(B,A+1)=0⇒Isz A
Else If K=28:Then
PxlTest(B-1,A)=0⇒Dsz B
Else If K=37:Then
PxlTest(B+1,A)=0⇒Isz B
Else If K=38:Then
PxlTest(B,A+1)=0⇒Dsz A
IfEnd:IfEnd
IfEnd:IfEnd

'1st Loop End
LpWhile 1

'== Finish up ==
'#CBdbl
(%-T%)÷128→T
Ig G%:Then
Locate 9,3,"Goal!"
Locate 3,5,"Time(s)"
Locate 10,5,T
Else
Locate 9,4,"bye!"
IfEnd

⇒ ダウンロード: TRYMAZE


[EXIT] キーを押せばプログラムが終了して、 bye! と表示されます。
無事にゴールすると、Goal! と表示され、ゴールするまでの時間が秒数で表示されます。この時間は、迷路が表示された後スタートして計測されるので、迷路が表示されたらスグに始めてください。

出来た迷路を眺めるだけでなくて、これで実際に遊べるようになりました(^_^)/

=====

ここで使った2つの C.Basic 独自拡張機能についての簡単な説明;

1. タイマー機能
C.Basic では、実行時に常にタイマーが回っていて、1/128秒でカウンタが1増えるようになっています。
タイマーカウンタの値は、 変数 % に格納されているので、% を参照するとタイマーカウンタの値がわかります。

時間計測開始時に、
 %→T
とすると、開始時のカウンタの値が変数 T に入ります。

時間を知りたい時には、
 (%-T)÷128→T
とすると、開始からの経過時間が秒で分かって、それが変数 T に入ります。

自分を示すドットの点滅もタイマー機能を使っています。
キー入力を待つ Do / LoWhile ループの中で、タイマーカウントが 30 を超えるたびに PxlChg を実行させて、ドットを点滅させています。


2. 変数型指定機能
[2015/12/17 修正]
C.Basic は、実数型変数 (倍精度変数) と 整数変数 の2つを扱えるようになっていて、整数変数を使えば処理が高速化します。
C.Basic を起動して、[SFHIT] [MENU] (Setup) を押すと、環境設定画面になます。そこで、設定リストの一番最後に Execute mode があり、Double (DBL) か Int を設定できます。Double (DBL) が倍精度変数で動作するモードで、Int が整数変数で動作するモードです。
プログラム中で、'#CBint と書くと、それ以下は整数モードになって処理が速くなりますが、変数は整数型になるので小数を格納しようとしても整数部分しか格納できません。'#CBdbl 或いは '#CBasic と書くと実数(倍精度)モードになって、想定的に処理が遅くなります(それでも十分速いですが...)。そして変数に小数を格納できます。

ところで C.Basic では、大文字と小文字のアルファベットを異なる変数として使えるようになっていて、それぞれはさらに 倍精度用と整数用が用意されています。純正Casio Basic の4倍もの多くの変数が使えるのも、C.Basic の特徴です。プログラムで整数しか使っていない場合は、整数モードにすると実数(倍精度)モードよりもかなり速くなります。

さて、上で
 (%-T)÷128→T
を実行すると、小数の計算結果が 変数 T に格納されます。もし T が整数変数だとすると、これには小数は入らないので正しい値になりません。そこで、'Finish up とコメントしている以降の処理を '#CBdbl により実数(倍精度)モードに切り替え、
プログラムが整数モードで実行されている時、T は整数変数が使われます。そこで実数(倍精度)モードで T% とすることで 整数変数 T をそして T# とすることで実数(倍精度)変数を明示的に指定できるようになっていて、正しい変数を使えるようになります。

但し、[SHIFT] [MENU] (Setup) により C.Basic の Excute mode を Int にするか、'#CBint を記述することで、整数モードになると、Locate コマンドは整数しか受け取りません(それによって高速化していますので...)。従って、Locate で小数を表示させたい時には、実数(倍精度)モードにしておく必要があるので、上のように Locate を実行する前に 実数(倍精度)モードにしておく必要があります。

従って、上の計算は、
 (%-T%)÷128→T#
と記述しておくと、C.Basic の Execute mode 設定でいずれのモードにしても、時間表示が確実に小数になります。






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


 




keywords: fx-9860GIICasioBasic、プログラム関数電卓、C.Basic、C:Basic

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



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

C.Basic Command Reference

 C.Basic - Table of Contents
< English | 日本語

Content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


- C.Basic - Introduction & Download

C.Basic is an on-calc language running on fx-9860G Series, picking the best of both Casio Basic and usability of fx-5800P. It's not only almost compatible with Casio Basic but also providing extended commands for more powerful programming. It runs much faster than the Casio Basic.


- Inside Casio Basic

For compatible commands, go to Inside Casio Basic.


- C.Basic Command Reference

* "Compatible" = compatible with Casio Basic
* "Extended"    = extended function or new command

- Basic SpecificationCompatible  Extended
Display Area
Graphics Coordinate Systems
Control of Internal Cursor Row
 
- Basic Operation CommandsCompatible  Extended
 (Substitution)
" " (Display)
(Dispplay & Pause)
? (input) [fx-5800P]
?→ (input) [fx-9860GII, fx-CG20/10]
 
- I/O CommandsCompatible  Extended
Getkey
Getkey1, Getkey2, Getkey3
Locate X,Y,<value>[,R]
LocateYX Y,X,<value>[,R]
 
- Program CommandsCompatible  Extended
If... Then... [Else]... IfEnd
If... Then... ElseIf... [Else]... IfEnd
For... To... [Step...] Next
While... WhileEnd
Do... LpWhile
Switch... Case... Default... SwitchEnd
 
- Program Control CommandsCompatible  Extended
Break
Return
Stop
Prog "<file name>"
Prog "<fle name>",x,y,z... (Pass & Return values) 
 
- Jump CommandsCompatible  Extended
Goto... Lbl
Isz
Dsz
Gosub... Lbl... Return
  
- Relational OperatorsCompatible  Extended
=, ≠, <, >, ≤, 
 
- Logical OperatorsCompatible  Extended
And, Or, Not, Nor
 
- Descriptio CodesCompatible  Extended
: (Multi-statement Command & Display suppression)
' (Comment Text Delimiter)
'/<Command available only on C.Basic>
  
- NumbersCompatibleExtended
Type of Number
0x/0X, 0b/0B
 
- VariablesCompatible  Extended
A - Z (Capital Letter)
~
a - z (Small Letter)
#, % (double and integer variables)
Local
 
- ArrayCompatible  Extended
Dim Z / Z[ ] [fx-5800P], Dim A / A[ ]
 
- MatrixCompatible  Extended
{m,n}→Dim Mat A (Allocates Memoryx)
[[...][...]...]→Mat A (Allocates & Initializes Memory)
<number>->Mat A (Initializes & Substitute to Matrix)
<string>->Mat A (Initializes & Substitute to  Matrix)
Fill( ) (Initialize & Substitute to Matrix)
Mat A.x (x = p, b, w, l, f) (Type of Matrix)
Mat A[ ], Mat a [ ], A[ ], a[ ] (Expression of Matrix)
Mat A.v (VRAM access by 1bit Matrix)
'#Str (Handling String by Matrix)
#Mat 0, #Mat 1, Device Coordinate System
ElmSize( ), ColSize( ), RowSize( )
Save, Load( ), IsExist( ) 
Trn
 
- Bitmap CommandsCompatible  Extended
dotGet( ), dotPut( ), dotTrim( )
ReadGraph( ), WriteGraph( )
dotLife (dedicated to game of life)
 
- Display Setup (text)Compatible  Extended
Cls (Text)
ClrText (Text)
Eng
EngOn, EngOff
Norm
Sci
Fix
Deg, Rad, Gra✔
°, r (rad), g (gra), DMS✔
Rnd, RndFix( )
f, p, n, μ, m✔
k, M, G, T, P, E✔
 
- Mathematical FunctionsCompatible  Extended
Many of key-in functions✔
Abs, Int, Frac, !, MOD( )✔
sinh, cosh, tanh, sinh-1, cosh-1, tanh-1 ✔
 
- Randum NumberCompatible  Extended
Ran#, RanInt#( )
 
- StringsCompatible  Extended
Str, StrJoin( ), StrLen( ), StrCmp( ), StrSrc( )✔
StrLeft( ), StrRight( ), StrMid( )✔
Exp▶Str( ), Exp( ), StrUpr( ), StrLwr( )✔
StrInv( ), StrShift( ), StrRotate( ), \, +
Sprintf( )✔
Str( )
  
- Graphics SetupCompatible  Extended
ClrGraph
ViewWindow
Xmin, Xmax, Xdot, Xscl, Xfct
Ymin, Ymax, Yscl, Yfct
 AxesOn, AxesOff
 GridOn, GridOff
 LabelOn, LabelOff
CoordOn, CoordOff
S-L-Normal, S-L-Thick, S-L-Dot, S-L-Broken
  
- Graphics Sketch CommandsCompatible  Extended
Cls (Graphics)
ClrGraph
Text Y,X,<value>
Text Y,X,<value>[,N/R/O/V]
PxlOn Y,X
PxlOff Y,X
PxlChg Y,X
PxlTest(Y,X)
Plot
Line
PlotOn X,Y
PlotOff X,Y
F-Line X2,Y2,X1,T1
F-Line X2,Y2,X1,Y1,C/X
Vertical X
Vertical X,C/X
Horizontal Y
Horizontal Y,C/X
Circle X,Y,R
Circle X,Y,R,C/X
SketchNormal, SketchThick, SketchDot, SketchBroken
StoPict, RclPict
Rect, FillRect
FKeyMenu(<n>,<string>[,R])
PutDispDD
Screen
 
- Graph
Y
Graph Y=
DrawGraph
 
- Timer CommandCompatible  Extended
%, Ticks✔
 
- Debug CommandCompatible  Extended
ACBreak
 
- VRAM
RefreshCtrl, RefreshTime
Screen, PutDispDD
 
- Function Key Menu
FkeyMenu( )
 
- Excute ModeCompatible  Extended
'#CBINT, "#CBint
'#CBASIC, '#CBasic, '#CBDBL, '#CBdbl
 
- Hardware ControlCompatible  Extended
 Backlight
 
- Machine Language Commands
SysCall( ), Call( )
Peek( ), Poke()
ValPr( ), ProgPr( )
 
  






Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.



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

'/ Comment-out only for Original Casio Basic

 '/ Comment-out only for Original Casio Basic

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Syntax

'/<command or expression>
 

Key Press

'/  [F3](CMD)[F5](')[F6](/)


Function
  1. <command or expression> runs on C.Basic but ignored on original Casio Basic.

Description
  1. Basic concept of C.Basic is to be compatible with original Casio Basic. In order to share a same program file with both of C.Basic and original Casio Basic, '/ helps.

Note

Sample programs how to use '/;

Main program: MAIN
    200→L
    '/Prog "WAIT"
    ....
    ....
    ....


Sub-routine program; WAIT
    Locate 1,4,"= Now Checking Wait ="
    0→%:0→L
    Do
    Isz L
    LpWhile %<64
    ClrText

    

A program runs much faster on C.Basic than original Casio Basic. So some programs which depends on slow response of original Casio Basic may have problem on the fast C.Basic. For example, when variable L is used to set some wait and 200 is proper for the 'slow' Casio Basic, the wait value 200 should be too small on C.Basic.

Then the Sub-routine "WAIT"obtains a proper wait value corresponding to 0.5 second, the variable L is global then shared with "MAIN" program. The "MAIN" program should call sub-program "WAIT" only on C.Basic by

'/Prog "WAIT"

User can share the "MAIN" program with both Casio Basic and C.Basic.



See also: Prog, Getkey1, Switch Statement

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

Array

 Array

This content is checked by fx-9860GII (OS 2.04).
This is on-going project, any changes may be made.


Model

fx-9860G Series


Syntax

<natural number>→Dim A     (Allocate array)
A[<index>]                            (an Array)
0→Dim A                               (Release array) 


Key Press

Dim   [F3](CMD) --> [down]/[up] --> [9](9:Dim)


Function
  1. When allocated n elements for the array, user can use A[1], A[2], ... A[n].

Description
  1. A - Z (capital letters) can be used for the array variables.
  2. An array provided by fx-5800P Casio Basic is more convenient than matrix, that's why C.Basic provides array.
  3. The array must be initialzed (allocated in memory), and cleared (reased from memory) in a program.
  4. <index> should be natural number, 0 (zero) cannot be used.
  5. 100->Dim Z is same as [100,1]->Mat Z, Z[100] is same as Mat Z[100,1] and 0->Dim Z is same as ClrMat Z.

Note

Sample program, display of Fibonacci sequence;

    50→Dim A
    1→A[1]:1→A[2]
    For 3→I To 50
        A[I-2]+A{I-1]→A[I]
        Locate 1,1,"I="
        Locate 3,1,I
        Locate 1,2,"A[I]="
        Locate 6,2,A[I]
        Getkey1
    Next
    0→Dim A





See also: Getkey1

Copyright (C) 2013 - 2016 Krtyski / egadget.blog.fc2.com  All Rights Reserved.


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

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

やす (Krtyski)

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


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

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

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


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

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR