トピック
ネタバレ
ヨッシー L17A102K

8行目でエラーが出るけど…

「READ FMM$」の所で 「Type mismatch」 というエラーが出るのだが… 対処方法は?
1そうだね
プレイ済み
返信[1]
親投稿
データの数を間違えてるかと。 0 TO 8なのに5-6行目のデータが11個あります
2そうだね
プレイ済み
返信[2]
親投稿
ヨッシー L17A102K
あと、4行目にもType mismatchが出ちゃうけど、これも、どうすれば直るの?
1そうだね
プレイ済み
返信[3]
親投稿
やっぱり数え間違い 0 TO 11 →0,1,2,3,4,5,6,7,8,9,10,11 12個になっちゃってる
1そうだね
プレイ済み
返信[4]
親投稿
FOR I=0 TO データの数-1 これ大事ね。 ついでに言うと、下の LEN(FMM$)-1 と同じ理屈ね。
1そうだね
プレイ済み
返信[5]
親投稿
ヨッシー L17A102K
でも、これを行ったらBGが出てきました。 プログラムの中にはBGCLRを使わなければならないかも…
0そうだね
プレイ済み
返信[6]
親投稿
そりゃBGマップを描くプログラムだから
2そうだね
プレイ済み
返信[7]
親投稿
ヨッシー L17A102K
というか、何で FOR I=0 TO データ数-1にしなければならないの?
1そうだね
プレイ済み
返信[8]
親投稿
********** itd12d
FOR I = 0 TO 15 とやったとしましょう 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 合計16個必要になるからです
1そうだね
プレイ済み
返信[9]
親投稿
1から数えたとき、1 TO 10 は10個、 じゃあ0から数えたらどうなるか 0 TO 9、これで10個 1,2,3,4,5,6,7,8,9,10 0,1,2,3,4,5,6,7,8,9 ほら、同じ数でしょ。
0そうだね
プレイ済み
返信[10]
親投稿
じゃあ、なんで「1から数えちゃいけない」のか、mkII公式講座を見る限り、コンピュータのお約束みたいね。 ハカセ:こればっかりは、「コンピューターの世界ではゼロから始まるのがお約束」としか言いようがないのう。
0そうだね
プレイ済み
返信[11]
親投稿
ちなみに、配列変数とか使わないで、単純に「n回繰り返しをしたい」だけなら1 TO 10でも101 TO 200でも何でもいいんだけどね。
0そうだね
プレイ済み
返信[12]
親投稿
ヨッシー L17A102K
でも、このプログラムは、 ステージ1は8回 ステージ2は10回 ステージ3は8回 ステージ4は9回 ステージ5は9回 ステージ6は8回 ステージ7は10回 ステージ8は10回 別々のステージをループしたいんだけど… これをどうすればいいの? それから、DIMや、 FOR~NEXT構文ループも必要かな? 教えて…
0そうだね
プレイ済み
返信[13]
親投稿
say sayer.exe
そういうのだったら dim stg[9]'←8ステージなのに9としているところに注意 'stg[0]は欠番 stg[1]=8 stg[2]=10 stg[3]=8 stg[4]=9 : と設定し、現在のステージナンバーをnscと設定した時 for i=1 to stg[nsc] 処理 next とすりゃいいですよ あと、0からしか数えなければならないというわけでもなく、1から数えても問題ないです 上のコードはそんな感じで組んでます
0そうだね
プレイ済み
返信[14]
親投稿
ヨッシー L17A102K
その方法でやってみたけど、 265行目でSubscript out of rangeエラーが表示されたけど…
0そうだね
プレイ済み
返信[15]
親投稿
ヨッシー L17A102K
あと、 ここで使用する配列はMHPなんだけど…
0そうだね
プレイ済み
返信[16]
親投稿
********** itd12d
stgに0しか入ってないんじゃ? あと配列の名前くらい変えればいいじゃんか
0そうだね
プレイ済み
返信[17]
親投稿
ヨッシー L17A102K
これを、 ステージ1:8までループ ステージ2:10までループ ステージ3:8までループ ステージ4:9までループ ステージ5:9までループ ステージ6:8までループ ステージ7:10までループ ステージ8:10までループ させたいんだけど、これをどうすればいいの? IF~THENの構文を一応出したけど…
0そうだね
プレイ済み
返信[18]
親投稿
ヨッシー L17A102K
一番下にあるMAPデータはステージ1から8まで全部で72個あるけど…
0そうだね
プレイ済み
返信[19]
親投稿
say sayer.exe
ステージnにループ数の入ってる配列mhpがあるとする ステージ番号はstとする ans=mhp[st] これでansにステージのループ数がわかる それよか、どこからどこまで解決したかは教えてくれないのね あと、その処理じゃstgmは1にしかならないよ
0そうだね
プレイ済み
返信[20]
親投稿
エラー云々もあるけど元のソースをどの程度理解しているのかな? なんとなく何をやりたいのかが見えにくいというかわかりにくい感じになってる気がしますー…
1そうだね
プレイ済み
返信[21]
親投稿
ヨッシー L17A102K
じゃあ、こんな感じじゃないのかな?
0そうだね
プレイ済み
返信[22]
親投稿
ぱっと見、それで各ステージに設定してある数は表示出来ている気がしますね。
1そうだね
プレイ済み
返信[23]
親投稿
ヨッシー L17A102K
あと、このプログラムで、 ループが出来るよね? もちろんDIMも使用したけど…
0そうだね
プレイ済み
返信[24]
親投稿
say sayer.exe
走らせりゃわかるでしょ つか、あんたの書いたプログラムやろが なに他人事みたいに言ってんねん(笑福亭鶴瓶風)
0そうだね
プレイ済み
返信[25]
親投稿
ヨッシー L17A102K
でも、やってみたけど、 「1-01」ではなく「1-08」になっちゃうの… 1-01~1-08にしたいならどうすればいいの?
0そうだね
プレイ済み
返信[26]
親投稿
say sayer.exe
そりゃmhsが単独で動いてないからよ 要するにmhsを1→2→3→4→5→6...ってしたいんだったら mhs=mhs+1 ってしなきゃ んで、mhsがそのステージの最大値を超えたら、ステージを増やしてmhsをリセット(=1?)すればいい だいたい284~286のループだけでゲームが動くわけないっしょ
0そうだね
プレイ済み
返信[27]
親投稿
MIKI ifconfig
265-272のレインボーカラーは一体?!!?
0そうだね
プレイ済み
返信[28]
親投稿
ヨッシー L17A102K
それはFONTDEFを使っているんだよ…
0そうだね
プレイ済み
返信[29]
親投稿
ヨッシー L17A102K
それから、 BGデータが見つからなかった時に、 このエラー画面も使いたいんだけど… エラーコードはRNDを使用させないと…
0そうだね
プレイ済み
返信[30]
親投稿
結局、何をどうしたかったのかイマイチわからなくて正確な答えが出せない感じになってそう…
0そうだね
プレイ済み
返信[31]
親投稿
284〜286のループはそのループで完結しているので、287で表示する内容はその最終結果(ループ後の値)でしかないわけですよ。なのでループの間で利用したければループの中で処理しなきゃいけないし、面が進んだら変化するのであれば、そもそもそのループはおかしい感じがあるしってことで、やりたいことが見えにくいと答えにくいなぁ、って印象だったりします〜。 あとエラーコードのRNDの意味もよくわからないですー…。ダイアログ自体はダイアログを表示する命令があるのでそれを利用すれば出せますよ。
0そうだね
プレイ済み
返信[32]
親投稿
とりあえず推測の上で少しだけ補足。 STGがステージ、MHSがサブステージ?番号としてクリアしたら増えていくようなやり方を考えているのだとしたら、284からFORはあまり使いません。 その場合は、ステージグリア時の処理などでステージを増やしていく処理をします。なので、ステージクリアのタイミングで、 MHS=MHS+1 IF MHS > MHP[STG] THEN STG=STG+1:MHP=1 みたいな感じにしてサブステージを増やして、そのサブステージがステージの最大を超えるときにステージを増やしてサブステージを1に戻す、みたいな感じにします。 と言うことも含めて、処理の流れを追いながら実際にどう動くのかを考えて作っていくと色々分かってくると思いますし頑張ってください。
0そうだね
プレイ済み
返信[33]
親投稿
ヨッシー L17A102K
IF STGM>MHP[STG] THEN STG=STG+1:MHP=1 これでいいよね? それからステージ8が最大になったら、結果発表に移動したいんだけど?
0そうだね
プレイ済み
返信[34]
親投稿
say sayer.exe
コメントしたけど削除しました ごめんなさい
0そうだね
プレイ済み
返信[35]
親投稿
ヨッシー L17A102K
あと、SPを使うのに、 SPSET、SPOFS、SPCHR、SPCHK、SPHOMEなども必要かな?
0そうだね
プレイ済み
返信[36]
親投稿
ヨッシー L17A102K
…といいたい所ですが、 24時間経ってもいなかったので、 ここで受付を閉鎖させていただきます。
0そうだね
プレイ済み