プレイ日記
ON 制御変数 ユーザー定義関数 が欲しい今日この頃 【余談】整数型変数にするのに%付けるのよく忘るる
6そうだね
プレイ済み
返信[1]
親投稿
MIKI ifconfig
call 使えばいいんや def f(x): return format$("f(%d)", x): end def g(x): return format$("g(%d)", x): end def h(x): return format$("h(%d)", x): end var f$[3], i% @l: data "f", "g", "h" copy f$, @l for i% = 0 to 2 ? call(f$[i%], %i) next >>> run f(0) g(1) h(2)
2そうだね
プレイ済み
返信[2]
親投稿
ΖΕΧ ZEX256
CALL使ってなかったので勉強になった 因みに ? call(f$[i%], %i) のとこ%i→i%みたい
0そうだね
プレイ済み
返信[3]
親投稿
CALLはスプライトの一斉処理の時しか使ったことなかったので知らなかったです。 アドバイスありがとうございました。 もののついでと言ったら失礼ですけど、早速やってみようと思ってこうしてみたら31行目のところの変数が二重定義されてるらしいのですが……何故でしょう。もちろん同じ名前の変数は作ってません
0そうだね
プレイ済み
返信[4]
親投稿
MIKI ifconfig
option strict なしの場合、 a=x ' これが var a: a= x と解釈される。 var a ' 二重定義!! ある程度の規模になったら option strict を超オススメします。
0そうだね
プレイ済み
返信[5]
親投稿
ええ、option strictでやってますけど……
0そうだね
プレイ済み
返信[6]
親投稿
MIKI ifconfig
んーーちょっと説明が微妙だな・・ option strict 無しの場合 コンパイルフェーズで 初出の変数があれば、そこで暗黙の var 宣言があると解釈される。(配列かスカラかという属性は登録しない) ので 16行目をコンパイルするとき destination% が暗黙に宣言され 31行目で再定義エラーになる。
0そうだね
プレイ済み
返信[7]
親投稿
MIKI ifconfig
あ、26 行目ね! > option strict んーと、私の 2015/12/20,22 の投稿を読んでね。 ・option defint の有効範囲は??? 正確な効果は??? https://miiverse.nintendo.net/posts/AYMHAAACAAADVHktZLGeLg ・option strict と var/dim 命令の正確な効果とは? https://miiverse.nintendo.net/posts/AYMHAAACAAADVHkt2ybUqw オススメの書きかたは option strict var a,b,c ' 変数定義 def f ' 自作命令定義 @sub ' サブルーチン gosub @title ' メインルーチン といった順の書きかた。これのメリットは、割と期待を裏切られないということです。
0そうだね
プレイ済み
返信[8]
親投稿
DEFまでの順番は前からやってたなぁ……備え付けサンプルのSTGみたいに最初の方にループがあるやつにしてみたかったけど仕方ない、元に戻してみるか。ありがとうございます。 でも、その順番ってややこしくなりませんか? プログラムコードって分岐が無ければ上から処理していくものですし、メインループからサブルーチンへの交錯を考えたらメインの下にサブ持ってきた方が構造的に解りやすいような……? 実はそうでも無いんでしょうか。最初の質問と全く関係無くて申し訳ありませんが
0そうだね
プレイ済み
返信[9]
親投稿
CALLは強力で、例えばFOREACHっぽいこともできますね。 プチコン3号はちょっと特殊な言語で、変数定義がプログラムの上から(DEF/GOSUB無関係)されていくのでMIKIさんの言っている書き方が変なことになりにくいです。 OPTION ~ は書いてある所から有効なので、使うなら先頭に書くほうが変なことになりにくいです。
0そうだね
プレイ済み
返信[10]
親投稿
MIKI ifconfig
ルールじゃないんだから好きに書いたらいいでしょう。 私の場合は、リンク先にも書いたけど 'module 1 var k=8, x[k] def f 'module 2 var n=3, r[n] def g とか書きたくなるんだけど、これだとメインが最後じゃないとうまくいかないのね。単にそういう理由。数ある流派のなかのmiki流。 bitさんも bit流開発して家元になるといいよ。 関数定義の順番は、タグジャンプつきのエディタがあればどういう順でも問題もないけど、現状だとそうではないのでめんどくさいですね。
0そうだね
プレイ済み
返信[11]
親投稿
了解です ありがとうございました
0そうだね
プレイ済み