隨意將代碼複製並粘貼到您的FLASH中。它應該能夠追蹤變量。AS3從字母數組中獲取隨機唯一字符
我正在嘗試創建一個兒童匹配遊戲。它會爲字母表選擇一個字母,並要求他們從3個選項中找到該字母。我也會隨機化他們選擇的3個字母,但它還沒有在這個代碼中。
我的問題是大部分時間是用「POP」刪除陣列變種,但有時我也得到重複,有時它出來NULL。我在這裏做錯了什麼?
import flash.events.MouseEvent;
import flash.display.*;
/// Array of the Alphabet
var Alphabet:Array = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
// Arry to hold 3 unique letters
var randArray:Array = new Array();
function getRandomElementOf(array:Array):Object
{
var idx:int=Math.floor(Math.random() * array.length);
// Supposed to remove the letter so can't be chosen again
array.pop()
// Adds 1 of 3 letters to new array
randArray.push(array[idx]);
return array[idx];
}
function testArray(evt:MouseEvent){
var One = getRandomElementOf(Alphabet);
trace(One);
var Two = getRandomElementOf(Alphabet);
trace(Two);
var Three = getRandomElementOf(Alphabet);
trace(Three);
trace("Can you find the letter " + One + "? " + randArray);
// Resets the random Array
randArray = new Array();
// Resets the letters forto be chosen again.
Alphabet = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
}
/// button to click stage to test vars
stage.addEventListener(MouseEvent.CLICK, testArray);
我仍然在上面的代碼中得到重複。你知道這可能是爲什麼嗎?我認爲這行會做到這一點Alphabet.splice(idx,1) - 但它沒有 – 2013-05-14 01:08:30
拼接'Alphabet.splice(idx,1)[0]'後採取第一個元素,並確保集合不是重置爲完整的字母表。 – 2013-05-14 01:10:51
我試過這一行,但現在我又得到了空值。 – 2013-05-14 01:13:09