一、游戏规则:
将一副扑克牌(假设牌面只有1~9)平均分成两份,每人拿一份。小哼先拿出手中的第一张扑克牌放在桌子上,然后小哈也拿出手中的第一张扑克牌,放在小哼刚打出的扑克牌的上面,就这样两人交替出牌。出牌时,如果某人打出的扑克牌与桌面上某张扑克牌的牌面相同,即将两张相同的扑克牌及中间所夹的牌全部取走,依次放在自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。
假如游戏开始时,小哼手中有6张牌,顺序为2、4、1、2、5、6,小哈手中也有6张牌,顺序为3、1、3、5、6、4,最终谁会获胜呢?
请编写一个程序来自动判断谁将获胜。
二、游戏分析:
1.手中的牌构成一个队列。
2.出牌和赢牌对应出队和入队两个操作。
3.桌子相当于一个栈,每打出一张牌放到桌子上相当于入栈。
游戏开始:
1.小哼先出牌。小哼亮出一张牌t,检查桌面上是否存在相同的牌面。若不存在,则此轮没有赢牌;否则此轮可以赢牌。
用数组book标记桌面上是否存在相同的牌面。
若桌面上不存在相同的牌面,则小哼出牌(t出队),将t放到桌面上(入栈),进行标记。
若桌面上存在相同的牌面,则先把t放到手中牌的末尾(先出队,再入队),然后从桌面上把压在与t相同牌面之上的扑克牌依次取走,放入手中牌的末尾,最后从桌面上把压在与t相同牌面的牌也收入手中,同时进行标记。
2.游戏如何结束。只要两人中有一人的牌用完了,游戏就结束了。