2013-03-07 134 views
0
function Deal() 
{ 

var suffledDeck:Array; 
var playerOneCards: Array; 
var playerTwoCards: Array; 
var first:int =0; 
var second:int = 1; 

suffledDeck = new Array(); 
playerOneCards = new Array(); 
playerTwoCards = new Array(); 

//var CardLeft:int = Deck.length; 
for(var i = 0; i < Deck.length; i++) 
{ 
    Debug.Log(Deck.length); 

    var ranNum = Random.Range(1,Deck.length); 

    suffledDeck.Add(Deck[ranNum]); 

    Debug.Log("suffled deck: " + suffledDeck.length); 
} 

//var halfDeck: int = (suffledDeck.length/2); 

for(var j = 0; j <=26 ; j++) 
{  
    Debug.Log(first); 
    Debug.Log(second); 

    playerOneCards.Add(suffledDeck[first]); 
    playerTwoCards.Add(suffledDeck[second]); 

    Debug.Log(playerOneCards[first].img); 
    Debug.Log(playerTwoCards[second].img); 

    first += 2; 
    second += 2;   
} 
} 

當我開始將數組拆分成2個單獨的數組時,它開始忽略除第一個元素以外的每個元素。 suffleDeck []有52個Card對象加載進去,我試圖分割數組,以便每個玩家都可以擁有自己的套牌。爲什麼我的循環只能看到第一個數組元素的值?

調試目的控制檯窗口:http://puu.sh/2dqZm

+0

的統一標記是微軟統一。請不要濫用它。 – 2013-03-08 06:50:24

回答

0

我相信問題是var ranNum = Random.Range(1,Deck.length)

ranNum應該生成一個介於0到Deck.length - 1之間的隨機索引,因爲數組索引從0(不是1)開始。

0

問題是與這些日誌記錄語句:

Debug.Log(playerOneCards[first].img); 
Debug.Log(playerTwoCards[second].img); 

firstsecond是有效的指標爲suffledDeck,但每個玩家的甲板上只有一半的卡。在兩個日誌語句中使用j作爲下標,而不是firstsecond

你也應該限制你的循環到j < 26,而不是j <= 26。事實上,你正試圖在每個玩家的套牌中放置27張牌。

+0

但衆生的數組從0開始,這意味着當我點擊第26個元素時,它會結束 – 2013-03-07 05:37:12

+0

@JoshBanks - 您的循環當前嘗試處理27個元素:索引值0,1,2,...,26。最後一次迭代爲'j == 25',而不是'j == 26'。 – 2013-03-07 05:53:24

0

因爲:

Debug.Log(playerTwoCards[second].img); 

這裏second值我們1,而您的陣列只包含一個項目是零。導致ArgumentoutofRangeException

這樣試試:

for(var j = 0; j <=26 ; j++) 
    {  
    Debug.Log(first); 
    Debug.Log(second); 

    playerOneCards.Add(suffledDeck[first]); 
    playerTwoCards.Add(suffledDeck[second]); 

    Debug.Log(playerOneCards[j].img); 
    Debug.Log(playerTwoCards[j].img); 

    first += 2; 
    second += 2;   
    } 
+0

我感到啞巴現在我早些時候做了同樣的事情,感謝您的幫助。 – 2013-03-07 05:45:14

+0

我的快樂:)給我一個忙,請通過點擊綠色打勾和答案來接受所有問題的正確答案。它鼓勵用戶幫助你。 – 2013-03-07 05:47:50

相關問題