私はGMLでシャッフル配列関数を作ろうとしています。ここでargument0
は、この配列のサイズであるシャッフルする配列とargument1
ことで、私が試したものです:私のGMLシャッフル配列関数はいつも同じ結果を返しています
///Shuffling array function
//argument0: the array to shuffle
//argument1: the size of the array
var i;
var j;
show_debug_message("----------");
show_debug_message("Original array: ");
show_debug_message(argument0);
show_debug_message("Size: ");
show_debug_message(argument1);
for (i = 0; i < argument1; i++)
{
j = irandom_range(i, argument1 - 1);
if (i != j)
{
k = argument0[i];
argument0[i] = argument0[j];
argument0[j] = k;
}
}
show_debug_message("Result array: ");
show_debug_message(argument0);
show_debug_message("----------");
return argument0;
私はこの機能を実行すると、私はなかれ、同じ結果を得た:
----------
Original array:
{ { 1,2,3,4,5 }, }
Size:
5
Result array:
{ { 5,3,1,4,2 }, }
----------
は、あなたがこれを確認するために、より大きな配列でそれを試してみましたか?シャッフルする要素の数は限られていますが、同じ要素をランダムに繰り返し取得する可能性はわずかです。または、シャッフルを複数回呼び出すこともできます。 –