SRC質問掲示板Mk2
(現在 過去ログ74 を表示中)
HOME
HELP
新規作成
新着記事
トピック表示
検索
新着情報
過去ログ
[
親記事をトピックトップへ
]
このトピックに書きこむ
過去ログには書き込み不可
[ トピック内全9記事(1-9 表示) ] <<
0
>>
■13929
/ inTopicNo.1)
Re[8]: ソート
▼
■
□投稿者/ オリン
-(2004/05/21(Fri) 01:10:52)
[ID:OcScjMOD]
似たような変数名ばかり使っている為、UnSet漏れしていただけでした。
どうもすみません。
僕の作ったものは消去法を当てはめたものです。
キャラクターのレベルを一旦全て配列化(配列1)し、
ForEachで一番高い数字が格納されている要素を見つけ出します。
そしてそれを新しい配列2の一番目の要素に格納、配列1の自分の要素を消去します。
そうすると次にForEachを使った際に配列2にソートされた内容は検索されないので、
これをForで人数分繰り返すとレベル順にソートされた内容が配列2に格納されます。
数学的には効率の悪い?方法なのかもしれませんが、
人間的なルーチンとしてはシンプルなので・・・
ありがとうございました。
解決済み!
引用返信
/
返信
削除キー/
編集
削除
■13928
/ inTopicNo.2)
Re[7]: ソート
▲
▼
■
□投稿者/ TomTom
-(2004/05/21(Fri) 00:32:25)
[ID:UwDXG43Z]
>ところで順番に並べた配列を再度ソートしなおした際、
>ForEachで新しくこれを参照するとソート前の順序でループしてしまいますが、
>これは仕様でしょうか?
>UnSetはしているのですが順序を記憶してしまっているようです。
変数の引数が名前になっていると、いろいろ不都合が起きるかもしれませんね。
まず変数を「順番と名前の対応」を記録する変数
Set レベル順[1] アムロ
Set レベル順[2] シャア
Set レベル順[3] ブライト
と、「名前とレベルの対応」を記録する変数
Set 名前toレベル[アムロ] 13
Set 名前toレベル[シャア] 10
Set 名前toレベル[ブライト] 11
に分けます。で、比較するときには
If 名前toレベル[レベル順[1]] > 名前toレベル[レベル順[2]] Then
このように「名前toレベル」の中で「レベル順[1]」の引数のものと
「名前toレベル」の中で「レベル順[2]」の引数のものを比べ
ワーク変数 = レベル順[1]
レベル順[1] = レベル順[2]
レベル順[2] = ワーク変数
と、「順番と名前の対応」の変数のほうを入れ替えます。
(Info関数などを使えば「名前toレベル」は必要ないかもしれないですね)
イメージとしてはこんな感じでいいと思います。
「レベル順[アムロ]」という形にするのではなく、
「レベル順[1]=アムロ」という形にしたほうがよい、ということですね。
引用返信
/
返信
削除キー/
編集
削除
■13927
/ inTopicNo.3)
Re[6]: ソート
▲
▼
■
□投稿者/ オリン
-(2004/05/20(Thu) 23:31:29)
[ID:OcScjMOD]
アドバイスありがとうございます。
結局一人で悩んで完成させたらそれと似たようなものが出来ました。
ところで順番に並べた配列を再度ソートしなおした際、
ForEachで新しくこれを参照するとソート前の順序でループしてしまいますが、
これは仕様でしょうか?
UnSetはしているのですが順序を記憶してしまっているようです。
仕様だとすればこれお回避する方法を教えて下さい。
最後に、僕の言葉が過ぎたようですみませんでした。
質問に対し必ず目的の答えが得られるとは考えていませんが、
質問掲示板である以上レスは回答であって欲しいと思ったのです。
質問しに来ているのに回答が「自分で考えろ」では身も蓋も無いなと・・・
僕の説明不足がったのも確かですし、
昼間からレスを下さったGAMEMASTERさんには感謝しています。
ですが具体的な回答にならないレスでしたらスルーして下さっても良かったなと・・・
かなり切羽詰った状態での質問だったのでイラッと来てしまいました。
すみませんでした。
引用返信
/
返信
削除キー/
編集
削除
■13923
/ inTopicNo.4)
Re[5]: ソート
▲
▼
■
□投稿者/ TomTom
-(2004/05/20(Thu) 16:09:25)
[ID:UwDXG43Z]
TomTomです。
ソートの方法というのはいろいろと種類がありますし、
その処理方法を掲示板で説明するのはなんとも面倒なものです。
ということでヒントだけ。
ネットで一番初歩的なソート方法である「バブルソート」という単語を検索してみてください。
いろいろとアルゴリズム(考え方)やソースコードが見つかるはずです。
(もちろんSRCソースコードではありませんが、雰囲気で理解できると思います)
これらのページを研究して、ソートの処理を作ってみてください。
>質問掲示板で疑問を投げかけた答えが自分で考えろとは、
>なんとも残念です。
最後になりますが、「質問したら必ず答えが得られる」とでもいうような考えはあまりよろしくないかと思います。
また、的確な意見がほしければ「自分がどこまでのことをしたか」をハッキリ書かくべきです。
世の中の多くの人間はエスパーでもなんでもないので、画面の向こうにいる人の考えていることなどわからないのですから。
引用返信
/
返信
削除キー/
編集
削除
■13922
/ inTopicNo.5)
Re[4]: ソート
▲
▼
■
□投稿者/ オリン
-(2004/05/20(Thu) 14:47:47)
[ID:OcScjMOD]
つまり並べ替える方法が知りたかったのです。
散々試行錯誤した挙句の最後の手段としての質問だったのですが・・・
質問掲示板で疑問を投げかけた答えが自分で考えろとは、
なんとも残念です。
ありがとうございました。
引用返信
/
返信
削除キー/
編集
削除
■13921
/ inTopicNo.6)
Re[3]: ソート
▲
▼
■
□投稿者/ GAMEMASTER
@
-(2004/05/20(Thu) 14:36:02)
[ID:9FX06NOp]
http://nagoya.cool.ne.jp/gamemaster/
GAMEMASTERです。
> が、レベル以外にもソートしたいステータスがあるんです。
> 例えばEXPや、気力などはForEachでソートできません。
> 方法があれば教えて下さい。
気力や累積経験値は関数で取得出来ますので、一旦全てのパイロットを配列に記録した後関数を利用して比較と並べ替えを行わせるという処理になります。
後はご自分でお考え下さい。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信
/
返信
削除キー/
編集
削除
■13920
/ inTopicNo.7)
Re[2]: ソート
▲
▼
■
□投稿者/ オリン
-(2004/05/20(Thu) 14:13:26)
[ID:OcScjMOD]
わかりました、ありがとうございます。
が、レベル以外にもソートしたいステータスがあるんです。
例えばEXPや、気力などはForEachでソートできません。
方法があれば教えて下さい。
引用返信
/
返信
削除キー/
編集
削除
■13919
/ inTopicNo.8)
Re[1]: ソート
▲
▼
■
□投稿者/ GAMEMASTER
@
-(2004/05/20(Thu) 14:07:22)
[ID:Yd4MMKzr]
http://nagoya.cool.ne.jp/gamemaster/
お初にお目にかかります。
SRCユーザーの1人「GAMEMASTER」と申します。
> キャラのレベルの降順に、
>
> "レベル順[(キャラ名)]"
>
> のような形式の配列を作りたいのですが、どうすればいいですか?
> ForEachやForを使えばいいのはわかってるんですが。
>
> アムロ(Lv3) シャア(Lv2) ブライト(Lv1)だった場合、
> レベル順に、
>
> Set レベル順[アムロ]
> Set レベル順[シャア]
> Set レベル順[ブライト]
>
> という事をやりたいんです。
> そうするとForEachで配列でループさせた時、
> 対象パイロットに代入される順番がレベル順にソートされます。
>
> つまりForEach内でレベル順にキャラクタを対象パイロットに代入させたいだけなので、
> ほかにいい方法があったら教えて下さい。
ForEachコマンドにおいて、レベル順にパイロットを指定する書式を利用しましょう。
詳細はヘルプをご覧下さい。
参考になれば幸いです。
もう時間がないようでございますね。では、これにて退散させてもらいましょう。
引用返信
/
返信
削除キー/
編集
削除
■13918
/ inTopicNo.9)
ソート
▲
▼
■
□投稿者/ オリン
-(2004/05/20(Thu) 13:37:18)
[ID:OcScjMOD]
キャラのレベルの降順に、
"レベル順[(キャラ名)]"
のような形式の配列を作りたいのですが、どうすればいいですか?
ForEachやForを使えばいいのはわかってるんですが。
アムロ(Lv3) シャア(Lv2) ブライト(Lv1)だった場合、
レベル順に、
Set レベル順[アムロ]
Set レベル順[シャア]
Set レベル順[ブライト]
という事をやりたいんです。
そうするとForEachで配列でループさせた時、
対象パイロットに代入される順番がレベル順にソートされます。
つまりForEach内でレベル順にキャラクタを対象パイロットに代入させたいだけなので、
ほかにいい方法があったら教えて下さい。
引用返信
/
返信
削除キー/
編集
削除
トピック内ページ移動 / <<
0
>>
Pass/
HOME
HELP
新規作成
新着記事
トピック表示
検索
新着情報
過去ログ
-
Child Tree
-
-
Antispam Version
-