在纸牌游戏中处理牌,玩家总是少收一张牌?

时间:2015-11-19 03:18:27

标签: java

我试图制作纸牌游戏,但是当我处理纸牌时,每个玩家总会得到比他们应该少的牌。例如,如果我有4名玩家,他们将分别获得12张牌而不是13张牌。 这是我的代码

for (int j = 0; j < 52; j=j + numberOfPlayers){



    for (int i=0; i < numberOfPlayers; i++){

      playerspiles[i].bottom(deck[x]); 


   }
}

2 个答案:

答案 0 :(得分:5)

使用更好的方法:

for(int j=0;j<52;j++){
  playerspiles[j%numOfPlayers].addToBottom(deck[j]);
}

它的作用是使用模运算/环绕算术来均匀分布卡(这是使用%运算符完成的。)

http://www.cafeaulait.org/course/week2/15.html

答案 1 :(得分:0)

你正在发牌,而不是球员。

 // First recipient
 int playerId = 0;

 // Deal from the deck, until you run out of cards.
 for (int i = 0; i < 52; i++)
 {
     playerspiles[playerId].addToBottom(deck[i]);

     // Next recipient (playerId is between 0 and numberOfPlayers-1)
     playerId = (playerId + 1) % numberOfPlayers;
 }

 // Print each player's hand 
 for (int p = 0; p < numberOfPlayers; p++)
 {
     PrintHand(playerspiles[p]);
 }