我试图制作纸牌游戏,但是当我处理纸牌时,每个玩家总会得到比他们应该少的牌。例如,如果我有4名玩家,他们将分别获得12张牌而不是13张牌。 这是我的代码
for (int j = 0; j < 52; j=j + numberOfPlayers){
for (int i=0; i < numberOfPlayers; i++){
playerspiles[i].bottom(deck[x]);
}
}
答案 0 :(得分:5)
使用更好的方法:
for(int j=0;j<52;j++){
playerspiles[j%numOfPlayers].addToBottom(deck[j]);
}
它的作用是使用模运算/环绕算术来均匀分布卡(这是使用%运算符完成的。)
答案 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]);
}