トピック
ボーネン gurigura2003

【質問】変数の保存方法について

題名の通りです。変数をセーブしたいですが、やり方がわかりません… どうすればいいですか?
2そうだね
プレイ済み
返信[1]
親投稿
くう TTK79054
配列変数しか無理な気がする
3そうだね
未プレイ
返信[2]
親投稿
ボーネン gurigura2003
配列変数…なんぞやそれ
3そうだね
プレイ済み
返信[3]
親投稿
文字なら、 D$="SAVEDATA" SAVE "TXT:SAVEFILE", D$ 数値なら、 DIM D[1] D[0]=1000 SAVE "DAT:SAVEFILE", D みたいな感じ。混合は出来ないので、その場合は数値を文字にしたり、文字を数値にしたりする工夫が必要です。
3そうだね
プレイ済み
返信[4]
親投稿
ボーネン gurigura2003
ありがとうございます!やってみます^^ けどロードはどうやるのですか?
0そうだね
プレイ済み
返信[5]
親投稿
ロードは文字なら、 LOAD "TXT:SAVEFILE", FALSE OUT D$ 数値なら DIM D[1] LOAD "DAT:SAVEFILE", D, FALSE FALSEをつけたのはロード時の確認ダイアログを表示しないようにしたからで確認ダイアログを出すならTRUEか省略するかです。 配列の場合は同じものを何度も定義(DIM)するとエラーになるんでDIMをするのは始めだけです。
0そうだね
プレイ済み
返信[6]
親投稿
ボーネン gurigura2003
Dのところは変数?で… 1000のところはどういう意味ですか?
0そうだね
プレイ済み
返信[7]
親投稿
Dは配列変数ですね。(セーブは配列変数か文字列しか出来ないので) 1000は特別な意味はないですがセーブ内容ですね。なので実際にはセーブしたい変数とかになるんじゃないかと思いますね。
0そうだね
プレイ済み
返信[8]
親投稿
ボーネン gurigura2003
配列変数と変数は同じなんですか? あと1000のところは保存したいすうじだからそこを保存したい変数と置き換えれば大丈夫ですか?
0そうだね
プレイ済み
返信[9]
親投稿
配列変数と普通の変数は違いますよ。(その辺は調べましょう。もしくは具体的に疑問があれば答えますよ) 1000のところが保存したい数字なので、そこを保存したい変数と置き換えれば大丈夫というのは正解です。
0そうだね
プレイ済み
返信[10]
親投稿
せっかくなのでもう少し丁寧に説明すると、例えばHP(ヒットポイント)、EXP(経験値)、LV(レベル)の3つの数値変数があったとして、それをセーブロードしたい場合は以下のような感じです。 DIM SV[3] '3つの変数をセーブするので3要素の配列を用意する 'セーブの場合 SV[0]=HP:SV[1]=EXP:SV[2]=LV 'セーブ内容を配列に入れる SAVE "DAT:SAVEFILE", SV '配列をセーブする 'ロードの場合 LOAD "DAT:SAVEFILE", SV, FALSE '配列変数SVに読み込む(DIMはしてあるのが前提) HP=SV[0]:EXP=SV[1]:LV=SV[2] '読み込んだ内容を変数に戻す という感じです。あとはまあ色々と試してみましょう。
0そうだね
プレイ済み
返信[11]
親投稿
ボーネン gurigura2003
配列変数…PCで調べても例がないから分からないしこれで2行目エラー…ウワ(殴
0そうだね
プレイ済み
返信[12]
親投稿
2行目のエラーは自分で解決して欲しいぐらいの微妙なエラーですね…。よーく見てみましょう。何かがおかしいですよ。 で、他にも問題があるんですが、ひとつは DIM A$[3]は何度も呼び出すとエラーになります。なのでループの外に出すなどして何度も呼び出されないようにしましょう。 もう一つはA$[3]と宣言しているので、使えるのはA$[0],A$[1],A$[2]の3つです。 そもそもとしてこの例でなんでFORループに入れているのかわからないので、その辺も考えるといいかと思います。 色々あります、頑張ってくださいー
1そうだね
プレイ済み
返信[13]
親投稿
ツララ LongIceSword
配列変数っていうのはお団子を串に刺して串団子にするみたいに、変数をグループ化して、同じ串(変数名)に刺さってる変数をまとめて扱いたい時なんかに使うんですけど、使っている串と同じ串をまた使いたいってやっちゃうと、じゃあその串返せってエラーになる感じですかね。 実際は変数はお団子と言うよりも「入れ物」や「作業台」の方が近いんですけど。 何で変数の中身をSAVEする時に配列を使うのかっていうと、プチコンは一度に一個の事しか理解出来ないってのをイメージしてもらえれば分りやすいかと。
1そうだね
プレイ済み
返信[14]
親投稿
ボーネン gurigura2003
うーん…理解できたか微妙… ちなみに配列変数のDの部分は第二ファイルてきなものと考えてもよろしいのでしょうか?
0そうだね
プレイ済み
返信[15]
親投稿
ツララ LongIceSword
SAVE命令の書き方で" "で囲っている部分は「ここに」っていう指定で、その後の「,」の後ろに書く、この場合のDですけど、配列の[ ]の部分を省いた物が「これを」っていう意味合いですね。 ちなみに配列を扱う命令で[ ]の部分を省いた書き方で使うものは他にも結構あるので、こればっかりはこういう決まりになっていると思って慣れるしかないかも。 んで、LOAD命令で変数にファイルを読み込む時も同じ様な書き方しますけど、読み込む時は" "の中が「これを」で、「,」の後に続く変数が「ここに」に相当します。まるっきり逆になるんでちょっとややこしいですよね。
1そうだね
プレイ済み
返信[16]
親投稿
ボーネン gurigura2003
うーん…
1そうだね
プレイ済み
返信[17]
親投稿
ボーネン gurigura2003
ここまで回答していただきありがとうございます。とりあえずセーブは配列変数を覚えたら再チャレンジしてみます。
0そうだね
プレイ済み