Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
180 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100131
次のページ(過去)
返信[2]
親投稿
Godot orz_127
この様に編集されるつもりでプログラムを作りました。 (続く)
0そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
スロット1はこの様な状態とします。 (続く)
0そうだね
プレイ済み
投稿
Godot orz_127
先日から、ちょっとはまっていいます。 わかる方、ご教示下さい。 何をしたいかと言うと、スロット0のプログラムを実行してスロット1の内容を編集しようとしています。 画像のようなプログラムを書いてみました。 (続く)
2そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
別スロットへのラベルでの移動ではないですが、 画像にある最初の部分をスロット0に置いて、後ろに書いた「P0」「P1」「P2」の部分を別ファイルとして作って置くと。 スロット0から実行してINPUTで入力された値に対応するファイルをスロット1にに読み込んで実行できます。 COMMON DEFでコマンドもしくは関数を「P0」「P1」「P2」側に用意しておくとスロット0側からスロット1側のコマンド、関数を呼び出せるのではないかと思います。 ちなみにEXECでのスロットを移動しながら動作には、致命的なバグがあるようです。 公式ページの障害報告を確認してみてください。
0そうだね
プレイ済み
返信[18]
親投稿
Godot orz_127
エラーになる原因は前のコメントのとおりです。 で、今度は、DATA文を使って同じことをやる場合の処理をちょっと手直ししてみました。 こんな方法もあります、と言うことで。
0そうだね
プレイ済み
返信[13]
親投稿
Godot orz_127
(続き) 打ち込んで実行してみてください。 何度か目で質問した時と同じエラーとなる筈です。 表示を見るとわかると思いますが、2回目は1回目の続きからデータを読み込んでいるのがわかると思います。 それでデータが足らなくなって「Out of DATA」のエラーとなります。 ここまで確認できたら次にコメント化した緑色の2つの行の頭の「'」を外して実行してみてください。 何度目になってもエラーにはならないと思います。 RESTOREコマンドはデータの読み込み開始位置を指定します。 DATA文の前のラベルの位置に指定しているのでデータの最初からとなります。 表示されてる値をみると今度は2回目以降も前の続き出はなく1から表示されているのが確認できると思います。 と説明してみましたが、これでわかります?
0そうだね
プレイ済み
返信[12]
親投稿
Godot orz_127
DATA文も良いですが、ここは素直に書いておいた方が後で台詞を増やしたりの修正が楽な気がします^^; 一応、説明だけで解りにくかったのかもなので簡単にプログラムしてみました。DATAは面倒くさいので数値になっていますが基本的な処理は、ゆずさんの考えたものと同じです。台詞のデータは6あると思います。乱数で読み込む数を決めて最後に読んだデータを表示します。 FOR文のTOの後は毎回評価(計算)されます。RND()を書くと毎回実行されます。なので先に値を決めて変数に入れておくと良いです。でFOR I=0 TO 0でも1回実行されます。なのでRND(5)+1だと最小値は1なので必ず1つめは読みとばされることになります。なのでTOの後は0~5とする必要があるのでRND(6)とします。 画像が、ゆずさんのプログラムの状態です。 (続くw)
0そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
ここは素直に @RUNATOKUN ON RND(6) GOSUB @R0,@R1,…,@R5 WAIT 420 GOTO @RUNATOKUN @R0 ?"その1" RETURN @R1 ?"その2" RETURN : @R5 ?"その6" RETURN とした方が無難では?
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
Out of DATA なので やはり読み込もうとしたときに データがなかった状態です。 FOR I=0 TO RND(5)+1 なので最大で0~5の6回のループです。 最低データは6つ用意する必要が あります。 データはちゃんと用意してあるぞ、という場合、データを読んで一旦終わってもう一度その処理にくると前に読んだ続きから読み始めます。 2回目の処理でデータが足らなくなっている可能性もあります。 その場合は、DATA文の前にラベルを置いてRESTOREコマンドでデータの読みだし位置を指定すると良いかもです。
0そうだね
プレイ済み
返信[2]
親投稿
Godot orz_127
データと読み込む変数の型が違うか 読み込もうとしたのにデータがないか 多分、後者だと思いますが、 これだけの情報だとよく解りません。 エラーがでたときはそのエラーメッセージも一緒にコメントしてください。
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
Enterの横の緑色のやつです。
0そうだね
プレイ済み
返信[8]
親投稿
Godot orz_127
よくわからないのですが 最初に全スロットに読み込んで置くのではなく、最初スロット0だけで必要になったら別スロットに対象のファイルを読み込んで実行するのでは、駄目ですか?
0そうだね
プレイ済み
返信[17]
親投稿
Godot orz_127
よくわからないけど 確かに壁見たいで防御力高そう。
1そうだね
プレイ済み
返信[2]
親投稿
Godot orz_127
それと、それだけだと何も表示されず 寂しいので後ろに以下を追加で。 ?"X=";X ?"Y=";Y ?"Z=";Z ?"ST$=";ST$ もしくは ? FORMAT$("X=%D / Y=%D / Z=%D / ST$=%S", X,Y,Z,ST$)
0そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
既に入力している「,」がデータを区切る記号ですよ。 あと「コメント…」の前に「'」を入れ忘れているのでは?
1そうだね
プレイ済み
返信[4]
親投稿
Godot orz_127
あと文字列はこんなことも。 A$="ABC":A$[1]="":?A$ B$="AbD":B$[1]="BC":?B$
2そうだね
プレイ済み
返信[9]
親投稿
Godot orz_127
>みけらんジェロさん それだと「ZZ」も「WW」も正しくなってしまうのでは? と言っても御本人が入力の正当性のチェック迄考慮しているのかは不明です。 それでもOKかも。 とりあえず、ヘボン式の対応は、後での予定とのことです。 今は、日本式の対応のみの様です。 訓令式も対応するのかな? 色々入力チェックや文字列操作のやり方はありますが、余りややこしいとわからなくなってしまいそうな^^; とりあえず、なん文字迄の入力になるのか判りませんが、一文字目でIF文が一式続いて、二文字目で同じIF文が続く、IF文地獄となっているようなのでまずそれを何とかしたいと老婆心。 作りたいものや、やろうとしていることの経緯は前の投稿からの流れをみるとわかるかと。
0そうだね
プレイ済み
返信[7]
親投稿
Godot orz_127
>みけらんジェロさん INPUT文で一文字分の音をローマ字で表した文字列として受けて「A」→「1」~「Z」→「26」に、かつ入力が複数文字の場合は間に空白を入れた文字列にして元の文字列変数に代入し直したい様です。 単に英字入力を数値に変換して文字化するのではなく、ローマ字として正しいかとしてのチェックも必要な様です。 >ゆずさん それより、まず、一文字毎に同じIF文を並べるのではなく、サブルーチン化してその処理を呼ぶようにしましょう^^;
1そうだね
プレイ済み
返信[7]
親投稿
Godot orz_127
ダメだ。 3文字目も同じになる予感w 至急サブルーチンの作り方、使い方を覚えるように。 GOSUBの使い方を覚えるとかなりらくになります。 DEF でも良いけどちょっと難しいかも^^;
0そうだね
プレイ済み
返信[1]
親投稿
Godot orz_127
SHIFT、UNSHIFT、POP、PUSH使えますよ^^
1そうだね
プレイ済み