LlListRandomize/ja

From Second Life Wiki
< LlListRandomize
Revision as of 07:14, 25 February 2016 by SakuraNoel Fayray (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

要約

関数: list llListRandomize( list src, integer stride );

src をランダムにシャッフルしたリストを list で返します。

• list src ランダムにシャッフルしたいリスト
• integer stride シャッフルする要素間の間隔

この関数は 飛び石リスト (ストライド リスト) を扱えます。

仕様

リストの全要素の位置をシャッフルしたい場合は、stride に 1 を指定してください。これは最も一般的な設定でしょう。

stride がリストの長さの約数でない場合、リスト src が返ります。言い換えれば、 src.length() % stride は 0 にならなければなりません。

概念的には、このアルゴリズムはリストを "リストの長さ ÷ 間隔" 個の塊に切り分けます。そしてそれぞれの塊どうしが互いにシャッフルされます。

サンプル

list dice = ["2", "4", "1", "6", "3", "5"];

default
{
    touch_start(integer num_detected) {
        list shuffled = llListRandomize(dice, 1);
        llOwnerSay(llList2CSV(shuffled));
    }
}


list list01 = ["Cold", "pizza", "in", "the", "early", "morning"];

list list_random = llListRandomize(list01, 2);

list_random の結果としてあり得るのは以下です:

  1. ["Cold", "pizza", "in", "the", "early", "morning"]
  2. ["Cold", "pizza", "early", "morning", "in", "the"]
  3. ["in", "the", "Cold", "pizza", "early", "morning"]
  4. ["in", "the", "early", "morning", "Cold", "pizza"]
  5. ["early", "morning", "Cold", "pizza", "in", "the"]
  6. ["early", "morning", "in", "the", "Cold", "pizza"]

間隔 (stride) に 2 が指定されたので、元のリストで隣り合っていた二個の要素が、常に離れずにいる点に注意してください。

list list_random = llListRandomize(list01, 6);
このインスタンスの list_random は元々のリストで、既に並んでいた通りに並んでいます。なぜなら 6 個の要素を一緒にしておくように指定して、リストの中に 6 個しか要素がないからです。

注意点

元のリストは変更されず、新しい配列が返される点に留意してください。従って (戻り値を直接処理するのでないならば) 戻り値を変数に収めることが重要です。

関連項目

関数

•  llListSort
•  llFrand

特記事項

Search JIRA for related Issues

ソース

lsa_randomize(): 'linden\indra\lscript\lscript_library\lscript_alloc.cpp'

Signature

function list llListRandomize( list src, integer stride );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。