投稿
おちゃめ ochame_nako
DEFで変数の型(実数型、整数型、文字列)を取得できるSUFFIX関数と任意のボタンの入力待ちができるBTWAIT命令を作りました。ぜひ、使ってみてください。
7そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
SUFFIX関数は実数型の時に1、整数型の時-1、文字列の時0を返します。つまり、0以外の値ならば数値変数というわけです。(変数だけではなくリテラルも判断可能) BTWAIT命令はSUFFIX関数を使って文字列か数値かを自動判断しているため例えばAボタン入力待ちはBTWAIT 16でもBTWAIT "A"でも受け付けてくれます。(拡張スライドパッドのZRとZLのみ数値だけに対応) 動作サンプルのように BTWAIT "→LR" みたいに複数ボタンを同時押しするまで待つという指定も可能です。
1そうだね
プレイ済み
返信[2]
親投稿
もやしもどき Pseudomoyashi
「文字列型と数値型との比較演算」が3を返すようになっていたとは。 過去に型を判定する方法について頭を悩ませたことがありますが、これだと一発ですね。 正直、演算子の挙動を変える(3.0ではType mismatchだったはず)こと自体はともかく、そのことについて公式にアナウンスが無いのは何だかなという気もしますが… 特に3は真偽値的にはtrueになっちゃいますし。
0そうだね
プレイ済み
返信[3]
親投稿
*らいむ*(みずたま hirosawaasuchinn
投稿に関係なくて申し訳ないですが、プチコン・ポケコンホームページの御茶目さん…?
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
もやしもどきさんへ 比較演算が3になるというのはたまたま見つけたのですが、それがあったからこそこんなに簡単に文字列と数値の判別ができました。 そうでなかったらinfとnanを駆使しないといけないですね。 IF V==V*1.5 THEN A=V*0!=V*0で0(もしくはnull)以外の数値と文字列の判別が可能ですが、この場合でも整数型の1と文字列の判別ができないため頭を悩ませていました。 らいむ(みずたまさんへ そうですよ。 ちなみに本日、最近作った自作関数や命令で使用している技術解説も書いてみました。
1そうだね
プレイ済み
返信[5]
親投稿
ヨッシー okkun2002
配列は出来ない?
0そうだね
プレイ済み
返信[6]
親投稿
おちゃめ ochame_nako
ヨッシーさんへ 型の判別は型ごとの演算結果の違いを元に行っています。 したがって、配列変数とそうでない変数との演算結果が異なる場合がない限りは判別は不可能です。
0そうだね
プレイ済み