QSPを作るのは楽しいですよね。
ただし、ハマりすぎると文字数制限がない普通のプログラムでも無駄の無いコードを考えてしまったりするのが厄介です(笑)
1そうだね プレイ済み
たとえプログラムを作らなくても(作れなくても)他の人が作ったプログラムを使うだけでも十分に元が取れると私は思います。
絵を描くのに使ってもいいし音楽を作るのに使ってもいいし。
そして、それを使ったゲームを作りたいと思えばプログラミングの仕方を覚えれば良いのです。
もちろん、絵や音楽が作れなくても標準である程度のものが内蔵されているため心配は要りません。
このお手軽さこそがプチコンの醍醐味です。
1そうだね プレイ済み
円周率100桁なら中学の時に授業中に覚えさせられたので今でも暗唱できます。
ちなみに100桁を授業時間内に暗唱できたのは私だけでした。
1そうだね プレイ済み
うえこうさんへ
IF A THEN ~というのはAの値が0以外の時にTHEN以下を実行するという意味です。
このような比較演算を記述しない条件判断はボタン判定ではよく用いられています。
IF B AND #A THEN ~でAボタンが押されているかどうかを判断しています。
みき★さんやZEXさんがレスしているように条件式の値が0以外の時にTHEN以下が実行されるというのが分かる人ならば比較演算は不要だし私もリスト短縮のため省略することが多いのですが、その理由が分からない初心者ならば比較演算はちゃんと記述するのがベターだと思います。(私のプチコン3号入門講座でもそれを強調して書いています)
0そうだね プレイ済み
使ってもらって私の方こそありがとうございます。
FORMAT$に%e、%gは欲しいですよね。
みき★さんが作っている処理系に搭載されることを期待しておきます。
0そうだね プレイ済み
プチコン3号のVAL関数は100桁以上の数値は0を返すおかしな仕様となっています。
これさえ無ければ実数型をTXTでセーブする最も簡単な方法はFORMAT$("%.324F",A)になるはずでしたがこの仕様のためPSTR$などの指数表記に変換可能な関数を用意する必要があります。
プチコン3号エミュを作るのでない限りはこのVAL関数の変な仕様は実装しなくてもいいでしょう。
1そうだね プレイ済み
ちなみにVAL関数ではA$="1"*100:?VAL(A$)とすると0になります。
0そうだね プレイ済み
VAL関数と同値になるということは"1"*100を数値化したら0になるわけですか?
0そうだね プレイ済み
私は小規模な作品ばかり作っていますが、アイデアさえあればQSPレベルの短さであれば10~20分くらいですね。
ただし、作品としての完成度を高めるならばQSPとはいえ1作品に数時間はかかります。
これは、QSP以外においても当てはまることだと思いますが、とりあえず動くだけの状態のプログラムができてもそこから完成に至るまでの時間までの方が長いです。
早い、遅いは気にせず自分にできる範囲のことをコツコツ続けていくことが重要だと思います。
時間がかかっても完成させることが自分の力になっていくと思いますよ。
2そうだね プレイ済み
ビット演算を使って同等の処理を行う場合は
BTS=BT AND 15
BTG=BT AND NOT 15 となりますね。
0そうだね プレイ済み
この方法だと十字ボタンを使って8方向ではなく4方向に動かしたり、十字ボタンを押しながらAボタンのみが押されているかどうか(B、X、Y、L、Rが押されてない)が簡単に判定できますね。
0そうだね プレイ済み
natto-さんの連射ゲーとハイスコアの互換がある私の連射計測QSPの結果ですが指で118回、こすりで148回です。
0そうだね プレイ済み
ちなみに簡易関数電卓QSPはRVAL()関数ver.1.0ベースで作っていますが、ver.2.1ベースで作り直せば59文字もリスト短縮が可能になります。
ただし、すでに公開している拡張関数ライブラリの互換性が無くなってしまうため今のところver.2.1ベースに簡易関数電卓QSPをバージョンアップする予定はありません。
1そうだね プレイ済み
ちなみにRETURN 0として戻り値0の関数にしているのは私の自作関数RVAL()に対応させるためです。
RVALは例えばRVAL("SIN(RAD(30))*256")で128という値を返し、プチコン3号で使えるすべての演算子、関数、定数リテラルに対応し演算優先順位通りに式を評価する関数です。(私の簡易関数電卓QSPで使用している)
そして、戻り値のある自作関数にも対応しています。
したがって、A=RVAL("ABONE()")でファイルを削除できます。
とはいえ、A=CALL("ABONE")でも削除できるし、A=ABONE()でも削除できます。
というわけでRVAL()関数そのものの危険性が高いわけではなく式の評価を行う便利な関数として使うことができます。
リスト中のRVAL()関数は最新のver.2.1を掲載しています。
1そうだね プレイ済み
LOOP()関数は停止ボタンが効きにくい無限ループです。
プチコン3号は何かあったらすぐに停止ボタンで停止ができるため安心できるのですが、命令を実行中は停止ボタンが効きません。
そこで、非常に重い命令を実行させることで停止ボタンを効きにくくしています。
プチコン3号では簡単に停止できるABONE()関数よりも厄介でしょう。
もちろん、しつこく押せばちゃんと反応するため心配は要りません。
1そうだね プレイ済み
ABONE()関数はファイルを削除する関数です。
ファイルを削除するまで無限ループになります。
といっても、停止ボタンで停止できるので実際は安全です。
このプログラムではTXT:SAVEDATAのみが削除されますが、フォルダ内のファイル名を取得すればフォルダ内のすべてのファイルを削除することも可能です。
もっとも、削除することを伝えるダイアログが表示される(そこで停止が可能)ので心配は要らないです。
プチコン3号でファイルのセーブや削除でダイアログをOFFにできないのはこのためです。
もしも将来的にプチコン3号でダイアログ無しでセーブや削除が可能になったら知らないうちにファイルが消されてしまうという自体が発生するかもしれません。
2そうだね プレイ済み