Hi, all think I've done is assign a variable name to make it easier to refer to in my card game and this code traces the cards perfectly but not it's length. I am still not absolutely sure of the second's value in the aTemp array, but this doesn't make sense to me. Can anyone explain to me what's different in the showHands function?
Code:var aSuits:Array = ["oros", "copes", "espases", "bastos"];
var aValues:Array = ["Manilla", "As", "Rei", "Cavall", "Sota", "8", "7", "6", "5", "4", "3", "2"];
var aTemp:Array = new Array();
var aDeck:Array = new Array();
var playerHand:Array = new Array();
createDeck();
function createDeck():Void
{
for (i = 0; i < 4; i++)
{
for (j = 0; j < 12; j++)
{
//var oCard:Object = {sCardSuit:[i], sCardNumber:[j]};
var oCard:Object = new Object();
oCard.sCardSuit = i;
oCard.sCardNumber = j;
aTemp.push(oCard);
}
}
randomizeDeck();
}
function randomizeDeck():Void
{
while (aTemp.length > 0)
{
var r:Number = Math.floor(Math.random() * aTemp.length);
aDeck.push(aTemp[r]);
aTemp.splice(r,1);
}
createHands();
}
function createHands():Void
{
for (i = 0; i < aDeck.length; i++)
{
aTemp[i] = new Array();
aTemp[i].push(aDeck.splice(0, aValues.length));
trace("Player: " + (i + 1) + " - " + aTemp[i]);
aTemp[i][0].sortOn(["sCardSuit", "sCardNumber"],[Array.NUMERIC, Array.NUMERIC]);
}
showHands();
}
function showHands():Void
{
for (i = 0; i < aSuits.length; i++)
{
trace("Player: " + (i + 1));
for (j = 0; j < aValues.length; j++)
{
playerHand[i] = aValues[aTemp[i][0][j].sCardNumber] + " - " + aSuits[aTemp[i][0][j].sCardSuit];
trace("\t" + playerHand[i]);
}
trace(playerHand[i].length + " cards");
trace("----------");
}
}
