2014-01-16 3 views
0

Я создал три массива, и каждый из них имеет свои собственные вопросы. можно ли перетасовать три массива каждый раз, когда начинается игра? так что пользователю придется отвечать на разные вопросы каждый раз, когда он нажимает на новую игру.Можно ли перетасовать три массива каждый раз, когда начинается игра?

+1

Да, это возможно. – Marty

ответ

0

Смотрите, например:

Второй имеет приятный нахальный мало пользы Array.sort():

var arr:Array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 

function randomize (a:*, b:*):int 
{ 
    return (Math.random() > .5) ? 1 : -1; 
} 

trace(arr.sort(randomize)); 
+0

не понимаю сэр. скажем, я создал три таких массива. – user3161949

+0

не понимаю сэр. скажем, я создал три таких массива. var arr: array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; var arr2: array = [a, b, c, d, e, f, g, h, i, j]; var arr3: array = [a1, b2, c3, d4, e5, f6, g7, h8, i9, j9]; скажем, эти массивы содержат разные наборы вопросов, какой код я буду использовать, чтобы перетасовать эти три массива и выбрать один массив для ответов на вопросы пользователей? – user3161949

0

перетасовать 3 массивов вы может создать 3 других массива, которые w плохо служат для хранения перетасованных ценностей.

var arr1:Array = [1, 2, 3, 4, 5]; 
var sorted1:Array = new Array(arr1.length); 
var arr2:Array = [1, 2, 3, 4, 5]; 
var sorted2:Array = new Array(arr2.length); 
var arr3:Array = [1, 2, 3, 4, 5]; 
var sorted3:Array = new Array(arr3.length); 

randomPos:Number = 0; 

Вы могли бы затем создать функцию, которая принимает значение из одного массива и помещает его в новый перетасованный массив.

function shuffleArray(x, y){ 
    for(var i:int = 0; i < y.length; i++){ 
     randomPos = int(Math.random() * x.length); 
     y[i] = x.splice(randomPos, 1)[0]; 
    } 
} 

Тогда вы могли бы назвать функцию suffleArray на каждом множестве массивов:

shuffleArray(arr1, sorted1); 
shuffleArray(arr2, sorted2); 
shuffleArray(arr3, sorted3); 

Я надеюсь, что это помогает.

Смежные вопросы