[過去ログ] WOLF RPGエディター 質問スレ 其の11 [無断転載禁止]©2ch.net (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
211: 名前は開発中のものです。 [sage] 2018/02/12(月) 17:51:23.28 ID:C3neVWcI(1/2) AAS
なんか大喜利みたいになってんな
とりあえず簡単に解説しとくと

>>206
206(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 15:55:39.18 ID:L+vp/Ay0(1) AAS
簡単にやる方法ねぇぞ。やっていると思うけど、やるとしたら、こんな感じじゃあない?
WoditorEvCOMMAND_START
[121][4,0]<0>(1600010,1600020,0,4)()
[179][1,0]<0>(9)()
[170][0,0]<1>()()
[121][4,0]<2>(1600010,1,9,24592)()
[121][4,0]<2>(1600016,1600010,0,32)()
[121][4,0]<2>(1600011,1600010,1600020,4104)()
[121][4,0]<2>(1600012,0,0,0)()
[121][4,0]<2>(1600015,0,0,0)()
[179][1,0]<2>(1600011)()
[121][4,0]<3>(1600013,1600020,1600012,4)()
[121][4,0]<3>(1600014,1600013,0,32)()
[111][4,0]<3>(1,1600014,1600016,2)()
[401][1,0]<3>(1)()
[121][4,0]<4>(1600015,1,0,0)()
[499][0,0]<3>()()
[121][4,0]<3>(1600012,1,0,256)()
[498][0,0]<2>()()
[111][4,0]<2>(1,1600015,0,2)()
[401][1,0]<2>(1)()
[171][0,0]<3>()()
[499][0,0]<2>()()
[498][0,0]<1>()()
[121][4,0]<1>(1600010,1,0,256)()
[498][0,0]<0>()()
[106][0,1]<0>()("\cself[20] \cself[21] \cself[22] \cself[23] \cself[24] \cself[25] \cself[26] \cself[27] \cself[28]")
WoditorEvCOMMAND_END
変数に1~9のランダムな数を入れる
今まで入れた変数と中身が被ったらもう一度ランダムな数を入れ直す
被らなかったら次の変数へ

>>207
207(2): 名前は開発中のものです。 [sage] 2018/02/12(月) 16:14:10.17 ID:YFoiOVmL(1) AAS
WoditorEvCOMMAND_START
[121][4,0]<0>(1600010,1600020,0,4)()
[121][4,0]<0>(1600011,1,0,0)()
[179][1,0]<0>(9)()
[121][4,0]<1>(1600010,1600011,0,16)()
[121][5,0]<1>(1600010,1,0,65792,1)()
[498][0,0]<0>()()
[179][1,0]<0>(50)()
[121][5,0]<1>(1600012,1600020,1600028,90124,1)()
[121][4,0]<1>(1600014,1600012,0,32)()
[121][4,0]<1>(1600012,1600013,0,48)()
[121][4,0]<1>(1600013,1600014,0,16)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[106][0,1]<0>()("\cself[20] \cself[21] \cself[22] \cself[23] \cself[24] \cself[25] \cself[26] \cself[27] \cself[28]")
WoditorEvCOMMAND_END
9つの変数に1~9の数を順番に入れておく
無作為に選出した変数同士の中身を入れ替える。十分な回数シャッフルすればきちんと混ざるだろうという理屈

>>208
208(1): 名前は開発中のものです。 [sage] 2018/02/12(月) 16:43:53.35 ID:YlGMwymp(1/2) AAS
▼ 初期設定
■変数操作: CSelf10[配列数] = 9 + 0
■変数操作: CSelf11[配列先頭[vPtr]] = 1600050 + 0
▼ 配列に1〜9の値を順番に入れておく
■変数操作: CSelf20[i] = 0 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: V[CSelf30[tmp]] = CSelf20[i] + 1
|■変数操作: CSelf20[i] += 1 + 0
◇ループここまで◇◇
▼ fisher-yatesによるシャッフル
■変数操作: CSelf20[i] -= 1 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = 0 〜 CSelf20[i]
|■変数操作: CSelf37[配列1[vPtr]] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: CSelf38[配列2[vPtr]] = CSelf11[配列先頭[vPtr]] + CSelf30[tmp]
|■変数操作: CSelf39[HOLD] = V[CSelf37[配列1[vPtr]]] + 0
|■変数操作: V[CSelf37[配列1[vPtr]]] = V[CSelf38[配列2[vPtr]]] + 0
|■変数操作: V[CSelf38[配列2[vPtr]]] = CSelf39[HOLD] + 0
|■変数操作: CSelf20[i] -= 1 + 0
◇ループここまで◇◇
▼ 確認
■変数操作: CSelf20[i] = 0 + 0
■回数付きループ [ CSelf10[配列数] ]回
|■変数操作: CSelf30[tmp] = CSelf11[配列先頭[vPtr]] + CSelf20[i]
|■変数操作: CSelf30[tmp] = V[CSelf30[tmp]] + 0
|■デバッグ文:cself[\cself[20]] = [\cself[30]]
|■変数操作: CSelf20[i] += 1 + 0
◇ループここまで◇◇
■デバッグ文:------------------------
基本的な考え方は207と同じ
順番に選ばれた変数と無作為に選ばれた変数を入れ替える。必ず全ての変数がシャッフル対象に選ばれるのが特徴

>>210
変数を基準に数字を無作為に選ぶ207と逆に、数字を基準に変数を無作為に選ぶ。既に選出された変数を選んだ場合はもう一度変数を選び直す
ただこれは変数を初期化していないので、初回以外はループを抜け出せない。実際に使う場合は変数を初期化する処理を追加しておくように
212: 名前は開発中のものです。 [sage] 2018/02/12(月) 19:02:01.29 ID:C3neVWcI(2/2) AAS
× 変数を基準に数字を無作為に選ぶ207
○ 変数を基準に数字を無作為に選ぶ206
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s