配列?の方法(質問掲示板)
投稿: tomato
投稿:2011/07/17 00:05:17(最新:2011/07/22 08:16:22)
例えば別々の変数A、B、Cがあって。
それぞれの値を、一つのイベントでチェックしたい場合はどうすればいいのでしょうか。
いろいろ真似ごとはしてみたのですが、上手くいかないので
結局スレ立てしてしまいました。
変数が2以上5より少ない場合
変数が5の場合
それ以外
で処理を分けたいのですが・・・。
どうぞ、ご助力くださいorz
ツイート
それぞれの値を、一つのイベントでチェックしたい場合はどうすればいいのでしょうか。
いろいろ真似ごとはしてみたのですが、上手くいかないので
結局スレ立てしてしまいました。
変数が2以上5より少ない場合
変数が5の場合
それ以外
で処理を分けたいのですが・・・。
どうぞ、ご助力くださいorz
コメントする
コメントするには、ログインする必要があります。
コメント一覧
たぶん、ret → return
そしてセミコロン要らないかも。
なるほど。
それで配列てあったんだ。
>それぞれの変数をチェックしたら、条件に該当した変数にだけ処理を加える
というのは、変数a[n]の場合
だけなんだよね。
それぞれの組み合わせによって結果が分岐する場合は、やはり巨大な樹形図に…
そしてセミコロン要らないかも。
なるほど。
それで配列てあったんだ。
>それぞれの変数をチェックしたら、条件に該当した変数にだけ処理を加える
というのは、変数a[n]の場合
n=0 while n<11 #A~Kなら11個 if 2<=a[n] && a[n]<5 a[n]=a[n]+Draemon elsif a[n]==5 a[n]=a[n]*Nobita else a[n]=a[n]/Shizuka end n=n+1 end
それぞれの組み合わせによって結果が分岐する場合は、やはり巨大な樹形図に…
ほむほむ。
>実際使うのはA~Kだったり、それ以上だったり
ということで、こんな感じでしょうか。
配列の中身全てを条件と比較して、
全て条件に当てはまるならtrue、違うならfalseを返す、ということで。
んで、使うときは
となるとか…。
そういえばローカル変数を関数で受け渡しした経験が無いことに
今気づきまして、そこらへんぼかして書いてますので…w
>実際使うのはA~Kだったり、それ以上だったり
ということで、こんな感じでしょうか。
配列の中身全てを条件と比較して、
全て条件に当てはまるならtrue、違うならfalseを返す、ということで。
a = createArray(); # A~Kまでの配列とします def F_Check1(【配列を渡す】) flag = true; # 何でも入るので変数は便利ですね n = 0; while ((n < 【配列の総数】)&&(flag)) # flagがfalseなら見る必要が if((a[n] < 2)||(a[n] >= 5)) # 条件にそぐわなかったらfalse flag = false; end; end; ret flag; # 呼び出し元に返す end; def F_Check2(【配列を渡す】) 同上 if(a[n] != 5) 同上 end;
if(F_Check1(【配列を渡す】)) # 2 <= "A~K" < 5 の時 elsif(F_Check2(【配列を渡す】)) # "A~K" = 5 の時 else # それ以外の時 end;
そういえばローカル変数を関数で受け渡しした経験が無いことに
今気づきまして、そこらへんぼかして書いてますので…w
あわわ、遅レスすいません!
いつも質問というか丸投げしているスレッドに、物凄い丁寧な考察&スクリプトありがとうございます!!
い、いつも思うんですが、私の質問が悪いせいで、皆様を迷走させてしまって申し訳ありませんorz
謹んでレスポンスさせて頂きます。
↓
fmyさん>
戦闘終了時の処理なので、実行内容のほうのスクリプトです。
flag = trueでフラグが有効にできるんですか!?
ifつけたら、有効かどうか判定できるのかしらん。
すいません、Rmake来てから始めてスクリプトに触ったので、私の知識が及ぶ範囲はここまでですorz
hogeってなんだ……orz
rurun9さん>
A~Bまでだったら、その手法をとってみようかとも思うのですが、
実際使うのはA~Kだったり、それ以上だったりするので、配列っぽい方がいいかな、と、自分に甘くなりましたorz
でも三つくらいだったら、わざわざ変数使うより楽ですかね。
ikosamiさん>
それぞれの変数をチェックしたら、条件に該当した変数にだけ処理を加えるっていうのは難しいんですね;;
でもCreateArrayの使い方が、まだ良くわかっていなかったので随分参考になりました!
いつも、ふわふわしたレスで、本当にもうしわけないです。
どれも大変勉強になります、今後の参考にさせて頂きます。
皆様本当にありがとうございました!
いつも質問というか丸投げしているスレッドに、物凄い丁寧な考察&スクリプトありがとうございます!!
い、いつも思うんですが、私の質問が悪いせいで、皆様を迷走させてしまって申し訳ありませんorz
謹んでレスポンスさせて頂きます。
↓
fmyさん>
戦闘終了時の処理なので、実行内容のほうのスクリプトです。
flag = trueでフラグが有効にできるんですか!?
ifつけたら、有効かどうか判定できるのかしらん。
すいません、Rmake来てから始めてスクリプトに触ったので、私の知識が及ぶ範囲はここまでですorz
hogeってなんだ……orz
rurun9さん>
A~Bまでだったら、その手法をとってみようかとも思うのですが、
実際使うのはA~Kだったり、それ以上だったりするので、配列っぽい方がいいかな、と、自分に甘くなりましたorz
でも三つくらいだったら、わざわざ変数使うより楽ですかね。
ikosamiさん>
それぞれの変数をチェックしたら、条件に該当した変数にだけ処理を加えるっていうのは難しいんですね;;
でもCreateArrayの使い方が、まだ良くわかっていなかったので随分参考になりました!
いつも、ふわふわしたレスで、本当にもうしわけないです。
どれも大変勉強になります、今後の参考にさせて頂きます。
皆様本当にありがとうございました!
a = createArray() a[0] = A a[1] = B a[2] = C b = createArray() i = 0 while i < 3 b[i] = 0 if 2<=a[i] && a[i]<5 b[i] = 1 elsif a[i] == 5 b[i] = 2 end i = i + 1 end AA = b[0] BB = b[1] CC = b[2]
「配列?の方法」ってタイトルだったので
ちょっと無理やり配列にしてみましたが、
余計ややこしいですかね?
どれにも当てはまらない場合 0 2以上5より少ない場合 1 5の場合 2
を、下にあるAA = b[0]とかの対応した変数に入れたのですが・・・
if AA == 1 && BB = 1 && CC == 1 #ABCともに変数が2以上5より少ない場合 end
でもこれでは、余計にわかりにくいし、内容によっては長くなりますね(- -;)
>fmy様
興味深いですねぇ。
>tomato様
イベントの有効条件ではなく、単純にスクリプト内容をif文で分岐させて、それぞれをつくったら良いような…
うは。長過ぎて疲れるかも…
興味深いですねぇ。
>tomato様
イベントの有効条件ではなく、単純にスクリプト内容をif文で分岐させて、それぞれをつくったら良いような…
#樹形図を紙にでも書いてみるとか if 2<=A && A<5 if 2<=B && B<5 if 2<=C && C<5 # elsif C==5 # else # end elsif B==5 if 2<=C && C<5 elsif C==5 else end else if 2<=C && C<5 elsif C==5 else end end elsif A==5 # else # end
横ヤリごめーん。
2DRPGはチュートリアルしか作った事ないけど僕も勉強したくてちょっと色々見てみましたよ。
ノベルゲームと違って、2DアクションRPGと2DRPGでは
イベントまたは敵シンボルをまずマップに配置して、
その中でイベントエディタまたはエネミーエディタの中でいろんな処理を行うんですねー。
で、「有効条件(スクリプト)」って項目と
「イベント実行内容(スクリプト)」って項目があるんですね。フムフム。
前者は、
別のイベントとかからの影響で変数とかパラメータとか変化した時に
そのイベント(キャラとか敵とか)を出現させるかどうかの条件を書くとこですか。なるほど。
後者は、
いつものスクリプトって感じだからきっと僕よりみんなの方が詳しいかな。
tomatoさんの
> それぞれの値を、一つのイベントでチェックしたい
というのはどっちで行おうとされてるんだろう?
それによって書き方が変わるんじゃないかと思います。
# ちょっと小難しい話なので以下はついて来れる人だけでおk。
# ていうかほぼ運営に対しての文章www
# 僕がチラっと気になったのは前者のヘルプ上での、
# http://rmake.jp/document/script_manual
# > ■有効条件スクリプトについて
# > スクリプトの最後の行を評価したときに真の値が返れば、
# って所が微妙に厄介かもっすねコレ。
#
# 代入先や演算結果のif文などによる使用先がなくても(コンパイラによって最適化でもされない限り)
# 演算は常にコード通りに行われている、
# というプログラムの性質?が理解できてないと把握しにくい説明かも。
#
# 例えば単純にいつもの「イベント実行内容(スクリプト)」で
# と書いたとしたら、意味はないコードではあるけれど
# 運営のプログラマさんの腕をディスる気はないがスクリプトである以上は
# 代入先や判定先は無くても計算や分析処理は行われているんだと妄想する。
# 何が言いたいかっていうと「有効条件(スクリプト)」が最後の行の評価のみであるので
# と書き込むのは正しくない。endだけが評価対象にされようとしているから。
# ここでは
# が正しい。
# が、この感覚は「イベント実行内容(スクリプト)」に慣れていると違和感があるのではないか。。。
# メイン機能ではないからいいかもしれないが、
# これを使いこなせるユーザーはどのくらい居るだろうか?
#
# もし的外れな内容だったら本当にゴメンなさい。僕が浅い証拠です(汗
2DRPGはチュートリアルしか作った事ないけど僕も勉強したくてちょっと色々見てみましたよ。
ノベルゲームと違って、2DアクションRPGと2DRPGでは
イベントまたは敵シンボルをまずマップに配置して、
その中でイベントエディタまたはエネミーエディタの中でいろんな処理を行うんですねー。
で、「有効条件(スクリプト)」って項目と
「イベント実行内容(スクリプト)」って項目があるんですね。フムフム。
前者は、
別のイベントとかからの影響で変数とかパラメータとか変化した時に
そのイベント(キャラとか敵とか)を出現させるかどうかの条件を書くとこですか。なるほど。
後者は、
いつものスクリプトって感じだからきっと僕よりみんなの方が詳しいかな。
tomatoさんの
> それぞれの値を、一つのイベントでチェックしたい
というのはどっちで行おうとされてるんだろう?
それによって書き方が変わるんじゃないかと思います。
# ちょっと小難しい話なので以下はついて来れる人だけでおk。
# ていうかほぼ運営に対しての文章www
# 僕がチラっと気になったのは前者のヘルプ上での、
# http://rmake.jp/document/script_manual
# > ■有効条件スクリプトについて
# > スクリプトの最後の行を評価したときに真の値が返れば、
# って所が微妙に厄介かもっすねコレ。
#
# 代入先や演算結果のif文などによる使用先がなくても(コンパイラによって最適化でもされない限り)
# 演算は常にコード通りに行われている、
# というプログラムの性質?が理解できてないと把握しにくい説明かも。
#
# 例えば単純にいつもの「イベント実行内容(スクリプト)」で
1+2
# と書いたとしたら、意味はないコードではあるけれど
# 運営のプログラマさんの腕をディスる気はないがスクリプトである以上は
# 代入先や判定先は無くても計算や分析処理は行われているんだと妄想する。
# 何が言いたいかっていうと「有効条件(スクリプト)」が最後の行の評価のみであるので
if hoge == 1 end
# と書き込むのは正しくない。endだけが評価対象にされようとしているから。
# ここでは
hoge == 1
# が正しい。
# が、この感覚は「イベント実行内容(スクリプト)」に慣れていると違和感があるのではないか。。。
# メイン機能ではないからいいかもしれないが、
# これを使いこなせるユーザーはどのくらい居るだろうか?
#
# もし的外れな内容だったら本当にゴメンなさい。僕が浅い証拠です(汗
tdakeikakuさん>
フラグも考えてくださってありがとうございます!
二回チェック加えるという事ですね。チェックの条件が複雑になるときや、条件を組み合わせるときは、むしろこっちの方が使い勝手がいいかもしれません。
rurun9さん>
rurun9さんはドラえもんだったんだ!ふわふわ考えていたのに近いです、ありがとうございます!ふがいないのび太で申し訳ありませんorz
それでいいんですね。変数をチェックしてa[n]に処理を加えて行く、と。
考えてみれば、もっと早くに気付いてなくちゃいけなかったorzorz
皆様のレスは全て見ながら、足りない頭でもなんとか噛み砕いて理解に努めているます。
高度なスクリプトに、こんな事も出来るのかといつも目からうろこ状態ですが、どれをとっても作者様ごとに特色が出ていて、ちょっと変な表現かもしれませんが、凄い楽しいです。
いつも素人考えにお付き合いさせてしまい、ご迷惑おかけしています。
本当にありがとうございました!