为什么我的循环只看到第一个数组元素的值?
why is my loop only seeing the value of the first array element?
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;
}
}
当我开始将数组拆分为两个单独的数组时,它开始忽略除第一个元素之外的所有元素。suffleDeck[]有52张牌对象加载,我试图分割数组,以便每个玩家可以有自己的牌组。
用于调试的控制台窗口:http://puu.sh/2dqZm
我认为问题出在var ranNum = Random.Range(1,Deck.length)
。
ranNum
应该生成0到Deck.length - 1
之间的随机索引,因为数组索引从0开始(而不是1)。
问题在于这些日志语句:
Debug.Log(playerOneCards[first].img);
Debug.Log(playerTwoCards[second].img);
first
和second
是suffledDeck
的有效索引,但每个玩家的牌组只有一半的牌。尝试在两个日志语句中使用j
作为下标,而不是first
或second
。
你也应该限制你的循环到j < 26
,而不是j <= 26
。实际上,您要尝试在每个玩家的牌组中放入27张牌。
因为:
Debug.Log(playerTwoCards[second].img);
这里second
的值是1,而你的数组中只有一项是0。导致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;
}
相关文章:
- 在数组中的一个元素上设置多个值
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- Javascript 删除特定的只需要数组的第 n 个元素
- Javascript 数组随机丢失一个元素
- PHP只读取动态创建的输入数组的第一个值
- AJAX只将数组的最后一个元素传递给MVC 5控制器
- PHP:获取关联数组中最后一个元素
- 如果一个键匹配,如何删除数组元素
- 我必须创建一个函数,该函数返回传入的数组的最后一个元素
- 从javascript数组中删除一个元素
- 当数组中只有一个元素时减少对象数组
- Pentaho Spoon:JavaScript split只是在数组中放置一个元素
- 如何在javascript中获取数组的下一个元素
- Javascript 多维数组返回第一个值,然后失败
- AngularJS将项目推送到数组的第一个或0索引$scope
- 如何访问Angular JS中数组的第一个值ng-repeat
- 获取投影中数组的第一个值,使用$addToSet mongodb创建的数组
- If数组元素包含一个句号
- 获取数组的第一个值
- 为什么我的 .data() 函数返回 [ 而不是我的数组的第一个值