我正在用C#构建一个控制台卡牌游戏。其中包括一个庄家和四个玩家,我想让庄家和每个玩家单独进行游戏。所以,我将这些玩家放入了一个队列(Queue)中,以便按顺序为他们服务。
我的问题是,在遍历队列中的所有玩家时,当运行我的逻辑(如下所示)时,for循环只会执行两次,因为playerQueue数量减少而i变量增加。
请帮助我找到一种纠正这种情况的方法。我尝试了使用while循环,但由于我们要操作 playerQueue.Count() ,它并没有起作用。
我的问题是,在遍历队列中的所有玩家时,当运行我的逻辑(如下所示)时,for循环只会执行两次,因为playerQueue数量减少而i变量增加。
请帮助我找到一种纠正这种情况的方法。我尝试了使用while循环,但由于我们要操作 playerQueue.Count() ,它并没有起作用。
Queue<Player> playerQueue = new Queue<Player>();
int number_of_players = 4;
/// <summary>
/// Adds new player to Queue
/// </summary>
for (int i = 0; i < number_of_players; i++)
{
Player player = new Player();
playerQueue.Enqueue(player);
}
/// <summary>
/// Get the first player in the playerQueue
/// </summary>
// HERE IS THE PROBLEM
for (int i = 0; i < playerQueue.Count(); i++)
{
System.Console.WriteLine(playerQueue.Count());
System.Console.WriteLine(i);
// Get the first player in the playerQueue
Player PlayerInGame = playerQueue.Dequeue();
// Play the game with the current player in the queue
}
foreach (Player playerInGame in playerQueue)
吗? - Elaskanatorwhile (playerQueue.Any())..
- TaW