我正在做一个 Uno Card 游戏(在 C 中),我有一个循环队列,顺序如下:
用户->播放器1->播放器2->播放器3
如果任何玩家在桌子上放一张改变游戏顺序的牌,将是相反的方向。
例如,如果用户放了“反向”卡,我将不得不让每个玩家出队,然后像这样入队:
enqueue(player3);
enqueue(player2);
enqueue(player1);
enqueue(user);
如果 player1,让每个人都出队,然后:
enqueue(user);
enqueue(player3);
enqueue(player2);
enqueue(player1);
如果 player2,让每个人都出队,然后:
enqueue(player1);
enqueue(user);
enqueue(player3);
enqueue(player2);
如果 player3,让每个人都出队,然后:
enqueue(player2);
enqueue(player1);
enqueue(user);
enqueue(player3);
太可怕了,不是吗?以这种方式说,就像任何情况下的一个“如果”。我知道当有人放“反向”卡时,首先要做的就是让每个人都出队,但在那之后,有没有更好的方法来按照上面的想法入队?