プレイ日記
おちゃめ ochame_nako
「簡易関数電卓QSP」で使用できる拡張関数ライブラリ2をつくりました。 これによって、税込価格、税抜価格、16進数変換、2進数変換が簡単にできます。 また、この電卓上で動くゲームも用意しました。もちろん、すべてQSPです。 公開キーでは、電卓本体と拡張関数ライブラリとゲームをセットでダウンロードできます。
4そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
これが拡張関数ライブラリ2のプログラムリストです。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
「簡易関数電卓QSP」はQSP(WIDTH 16の1画面プログラム)でありながらプチコン3号で使えるすべての数値演算関数とすべての演算子とすべての定数リテラルに対応した電卓です。 詳しくはこちらをご覧になってください。 https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTqq1Rhmw この拡張関数ライブラリ2によって税込価格を計算するTAXIN関数、税抜価格を計算するTAXOUT関数、16進数変換表示を行うHEX関数、2進数変換表示を行うBIN関数が使用可能になります。 公開キー【 R3CV43K4 】、ファイル名「1GQ_CALC」 簡易関数電卓QSP+拡張関数ライブラリ1+拡張関数ライブラリ2+ゲーム「CAVE QSP」+PSTR$のフルセットです。 ファイル名は前回と同じですが上書き保存して大丈夫です。
0そうだね
プレイ済み
返信[3]
親投稿
おちゃめ ochame_nako
TAXIN関数、TAXOUT関数では税込価格、税抜価格を計算できます。 税込価格は切り捨て、税抜価格は切り上げ、税率は8%で行っています。税率を変えたい場合はTAX=8のところを書き換えてください。 使用例 TAXIN(78+198+248+480)+270+200 税抜78円、税抜198円、税抜248円、税抜480円、税込270円、税込200円の合計の税込価格を計算する。 計算結果 TAXIN(78+198+248+480)+270+200=1554
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
HEX関数は16進数へ変換表示を行う関数です。 使用例 HEX(456+&HABC) 10進数で456、16進数でABCを加算して結果を16進数で表示する 計算結果 HEX(456+&HABC) &HC84 =3204 答えはC84でこれは10進数だと3204になることが分かります。 10進数と区別するため16進数の頭には&Hを付けてください。
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
BIN関数は2進数へ変換表示を行う関数です。 使用例 BIN(BIN(248) AND BIN(#A)) 10進数で248、定数リテラル#Aをそれぞれ2進数に変換してそのANDを取り結果を2進数で表示する 計算結果 BIN(BIN(248) AND BIN(#A)) &B00000010000 &B00011111000 &B00000010000 =16
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
248を2進数に変換すると&B00011111000、#Aを2進数に変換すると&B00000010000になり、そのANDをとると&B00000010000になりこれは16であることが分かります。 10進数と区別するため2進数の頭には&Bを付けてください。 変換する2進数は11桁(ただし先頭は符号を示す)で表記されます。(-1024~+1023の範囲だけどこれはBUTTON関数での利用を考慮している) ここで注意するのはプチコン3号ではANDを計算する場合には後の方(例では#A)から評価されるという点です。 最初に表示されている&B00000010000が#Aの2進数への変換結果で2番目の&B00011111000が248の2進数への変換結果となります。
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
これらの拡張ライブラリの関数によって本体となる「簡易関数電卓QSP」のリストには一切手を加えずに機能拡張が可能になっています。 「簡易関数電卓QSP」はリスト短縮を最重要視したプログラムのため元々機能拡張などの拡張性や汎用性は全く考慮していないプログラムなのですが、プチコン3号で使えるすべての数値演算関数(数値による戻り値が1つの関数)が使用できる仕様となっていて自作関数も使用できるためこのようなことが可能になっています。
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
基本的にはどんな関数も追加可能ですが、文字表示を行う関数の場合は表示の整合性の問題が生じる恐れがあります。 HEX関数やBIN関数は当初は考慮していなかった文字列(というか10進数以外)での結果表示が求められるため強引に表示を行っていてその演算結果を示す「=」の位置に整合性がなくなる場合があります。 あくまで、「=」より右の数字は入力した計算式全体の計算結果を10進数で表記したものなのでHEXやBIN関数を使用した場合に「=」の位置に整合性を持たせるためには計算式全体をHEX()もしくはBIN()で囲う必要があります。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
この簡易関数電卓QSPで動作するゲーム「CAVE QSP」を用意しました。
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
これがCAVE QSPのプログラムリストです
0そうだね
プレイ済み
返信[11]
親投稿
おちゃめ ochame_nako
計算式入力画面でCAVE()と入力すればゲームスタートです。 自機はピンクの四角です。 何かボタンを押せば上に押さないと下に移動するのでぶつかったり画面外に行かないようにしてください。 ゲームオーバー時にAボタンを入力すれば計算式入力画面に戻りスコアを表示します。 ちなみにCAVE()+CAVE()と入力すると2回連続プレイをしてそのスコアを加算します。 ただのQSPで作られたゲームですが、この簡易関数電卓では「関数を実行した後に戻り値を表示する」という仕様のため戻り値をスコアにしています。 つまり、こうやって作れば本体となる「簡易関数電卓QSP」のプログラムに一切手を加えずにどんな拡張機能を追加することも可能になるわけです。
0そうだね
プレイ済み