プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/09 22:36:52『ユーザー定義命令のルーチンは、メインよりも先に書かないと、メインと同名のローカル変数の定義が出来ない』という現行の仕様(バグ?)。ムダな処理を省く為、全ての処理は基本的にメインに詰め込むのが当然と思っていた自分だったが、この仕様がきっかけで、命令を作っているうちに、『必要そうな部品を先に作っておき、メインルーチンでそれらを使う』という考え方がある事に気付く。自分の考えは絶対ではないと今更悟った。6そうだね 1返信プレイ済み2017/11/04 01:04:02に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/08 22:01:56プログラムをセーブする時、プログラム名の拡張子は".BAS"にするのが俺のジャスティス。いや特に意味は無いんだけどさ。3そうだね 2返信プレイ済み2017/11/04 01:04:56に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿bigslope bigslope2014/12/8 21:12アイデアやアルゴリズムは、著作権の保護の対象にはならないと聞いた事はあるのですが、一方で特許としては(発明という観点からすると)認められているとか何とかで、その辺りややこしいですね。 一例として、SDXCカードのフォーマットであるexFATは、マイクロソフトが特許を持っているので、SDXCカードにアクセスするソフトを開発する為には、マイクロソフトに対し、exFATに関する特許の使用料を払う必要があります。 3DSがSDXCに対応していないのは、その特許絡みのせいではないか…と推測されます。2そうだね プレイ済み2017/11/04 01:05:32に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿bigslope bigslope2014/12/7 21:04サンプルプログラム。 ZLから↑まで全12ボタン、未使用(1024)1つを含めて13ボタン分判定処理を繰り返し、13個分ある配列変数に、ボタンが押されている場合は1、押されていない場合は0を入れている。 ちなみに、仮に全てのボタンが押されたとすると、1+2+…+512+2048+4096=7167になる。 ↑+↓みたいに同時に押せない組み合わせも存在するので、実際にはこの通りにはならないが、8行目の'B=7167のコメントを外すと、全部のボタンが押された状態を再現出来る。0そうだね プレイ済み2017/11/04 01:06:01に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿bigslope bigslope2014/12/7 20:55例として、↑、→、A、B、Rのボタンが同時に押された場合。 BUTTON関数の戻り値…569 ZL(4096)…無し。残り569 ZR(2048)…無し。残り569 未使用(1024)…無し。残り569 R(512)…有りなので512を引く。残り57 L(256)…無し。残り57 Y(128)…無し。残り57 X(64)…無し。残り57 B(32)…有りなので32を引く。残り25 A(16)…有りなので16を引く。残り9 →(8)…有りなので8を引く。残り1 ←(4)…無し。残り1 ↓(2)…無し。残り1 ↑(1)…有りなので1を引く。残り0(終了)0そうだね プレイ済み2017/11/04 01:06:01に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿bigslope bigslope2014/12/7 20:52逆に、この戻り値から、どのボタンが押されているかを判別する為には、この足された数字を分解していけば良いという事になる。 ボタンの中で一番大きい数は、ZLボタンの4096なので、まず4096以上かどうか判定する。 (4096以上だった場合) ・ZLボタンが押されている ・戻り値から4096を引く (そうでなかった場合) ・ZLボタンは押されていない ・戻り値はそのまま 次は、判定する数を4096から半分の2048にして、同じように判定する。2048以上ならばZRボタンが押されており、その場合は2048を引く。 そして、その半分の1024、512、256…と判定を繰り返しながら引いていき、戻り値が0になったら終了。0そうだね プレイ済み2017/11/04 01:06:01に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/07 20:50:25BUTTON関数は、ビット演算を使って判定を行う方がスマートだけど、ビットとかの意味がよく分からないという人もいると思うので、自分なりに噛み砕いて説明してみる。と言うか、すでにそういう説明がいくつかあるようなので、『BUTTON関数が分からない人向け説明選手権』状態。4そうだね 4返信プレイ済み2017/11/04 01:06:01に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿bigslope bigslope2014/12/7 20:50とりあえず、ヘルプのbit云々の説明はすっ飛ばして、その下の方の、『各ボタンが単独で押された場合の10進数戻り値』という所を見てみよう。 1:十字ボタン上 2:十字ボタン下 4:十字ボタン左 8:十字ボタン右 ・ ・ ・ となっている。 単純に押されたボタンが1つだけなら、この数字かどうかだけを判断すれば良いが、これらのボタンは、複数同時に押される事もある。 その場合、+1、+2、+4…のように、これらの数字をどんどん足していった結果が、戻り値として返ってくる。 上と左ならば、1+4=5、更にAボタンも押されたならば、1+4+16=21、という具合。0そうだね プレイ済み2017/11/04 01:06:01に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿bigslope bigslope2014/12/6 22:22あら本当!元々配列変数って参照渡しだったんですね。 正直、「まあBASICだし、出来なくても仕方ないか」ってなめていましたが、意外と融通が利くもんですね。0そうだね プレイ済み2017/11/04 01:07:19に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/06 21:54:39OUTを使用して、2つ以上の戻り値を返すユーザー定義命令における暗黙の了解(追加) ・必ず全ての戻り値に値を入れる ・実は、引数に配列変数をまるごと指定出来る ・戻り値に配列変数は指定出来ない(まるごとで出来た人います?) ・戻り値の変数を使って計算させる場合は、最初に戻り値の初期値を設定しておく まあ、配列はC言語だったらポインタ渡しで行けるけど、こっちはグローバル変数で頑張るしかないか。6そうだね 2返信プレイ済み2017/11/04 01:07:19に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿bigslope bigslope2014/12/6 17:21それから、オンラインヘルプの例では、CALL "命令名"と引数1の間に,(コンマ)が入っていないが、実際はコンマが必要(説明書等ではコンマが入っている)。 あと、公式の障害情報に出ているが、DEFを使って定義した命令を、ダイレクトモードで使用するとハングアップするそうなので注意…思いっきりやってた。 1そうだね プレイ済み2017/11/04 01:07:37に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/06 17:19:44各種命令を使うというのは、『暗黙の了解』との戦いでもあるね。OUTを併用して、2つ以上の戻り値を返すユーザー定義命令は、必ず全ての戻り値に値を入れないと、CALLで呼んだ際に"Type mismatch"のエラーになる。ユーザー定義命令の使い方を確認する為、DEF~ENDの間に何も入れない命令を作ってみたら、何度やってもエラーになるのでハマりかけた。9そうだね 3返信プレイ済み2017/11/04 01:07:37に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿bigslope bigslope2014/12/6 11:25(ひとりごと)フェスタで購入したストラップ、今もこの3DSに付けてますヨー…。0そうだね プレイ済み2017/11/04 01:09:26に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿bigslope bigslope2014/12/6 1:41高校の頃は文系で、数学は細かく習わなかったもので、そもそも三角関数自体、『サインカーブを描く為のもの』(あるいはその応用で円が描ける)程度の認識しか無かったりしますが、途中で円の半径を変えながら描いていくと、色々楽しい事になりますね。 ただ、BASICの三角関数は引数にラジアンを指定するので、最初はちゃんと描く事が出来ずにハマっていた(そのまま度数を入れていた)時期がありました。 と言うか、何で度数じゃなくてラジアンを使うのか、未だ分からなかったりしますが。1そうだね プレイ済み2017/11/04 01:08:26に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿bigslope bigslope2014/12/6 1:23確か、NEWと入力して、ENTERキーを押そうとしたら、うっかり隣の:(コロン)まで押してしまい、そこで一度エラーになった覚えがあります。 そして改めてNEW(ENTER)を入力したらハングアップ…という状況だったような。再現性は不明。0そうだね プレイ済み2017/11/04 01:08:20に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/06 00:23:29たった今、プログラムを全消去しようとしたら、確認ダイアログの所でハングアップして、強制的に再起動がかけられた。随分大袈裟なNEW命令だこと。6そうだね 2返信プレイ済み2017/11/04 01:08:20に取得
プチコン3号 SmileBASIC コミュニティ投稿bigslope bigslope2014/12/04 23:56:28ふと、X68000のディスクマガジン『電脳倶楽部』を引っ張り出してみる。起動すると、絵や音楽の鑑賞が出来たり、記事が読めたりするフロッピーディスク形式の雑誌。その中に『イカプロんぷと』というコーナーがあり、ある人はゲーム用のスプライトデータ、またある人はBGMを投稿していた。これらの蓄積されたデータは、コーナー内に限り自由に利用可能で、それらを使って別の人がゲームを作るというような流れがあった。自分はスプライトデータも音楽も作れないけど、ここでもそういう流れがあると良いかもしれないね。10そうだね 4返信プレイ済み2017/11/04 01:09:26に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿bigslope bigslope2014/12/4 21:36恐らく3D表示をオフにしていると思いますが、3Dオンだと、目の部分が浮いて表示されますね。1そうだね プレイ済み2017/11/04 01:10:48に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿bigslope bigslope2014/12/4 21:29多分、強烈にハマる人と、「分かんない!買って損した!」という人と、まっ二つに別れると思います。1そうだね プレイ済み2017/11/04 01:10:33に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿bigslope bigslope2014/12/3 21:50ねこはちさん> 大抵のBASICの場合、RENUM(リナンバー)命令を入れれば、行番号を10単位で綺麗に振りなおしてくれました。1そうだね プレイ済み2017/11/04 01:11:29に取得