小貓釣魚 佇列與棧的結合

2021-09-05 01:14:18 字數 1263 閱讀 7969

小貓釣魚-----佇列與棧的結合

問題描述

星期天xiaoheng和xiaoha約在一起玩桌遊,他們正在玩乙個非常古怪的撲克遊戲–「小貓釣魚」

遊戲的規則是這樣的:將一副撲克牌平均分成兩份,每人拿乙份。xiaoheng先拿出手中的第一張撲克牌放在桌上,然後xiaoha也拿出手中的第一張撲克牌,並放在xiaoheng剛打出的撲克牌上面,就像這樣兩人交替出牌。出牌時,如果某人打出的牌與桌上的牌面相同,即可將兩張相同的牌及其中間所夾的牌全部取走,並依次放到自己手中牌的末尾。當任意一人手中的牌全部出完時,遊戲結束,對手獲勝。

假如遊戲開始時,xiaoheng手中有6張牌,順序為2 4 1 2 5 6,xiaoha手中有6張牌,順序為3 1 3 5 6 4

最終誰會獲勝呢?現在你可以拿出來試一試。

接下來請你寫乙個程式來自動判斷誰將獲勝。這裡我們做乙個約定,xiaoheng和xiaoha手中拍的牌面只有1~9。

輸入只有兩行數,每行6個數字(1~9)

輸出第一行:獲勝者的名字xiaoha或xiaoheng

第二行:獲勝者手裡的牌

第三行:桌面剩下的牌

樣例輸入

2 4 1 2 5 6

3 1 3 5 6 4

樣例輸出

xiaoha

1 6 5 2 3 4 1

3 4 5 6 2

#include#includeusing namespace std;

int main()

for(int i=1;i<=6;i++)

while(!xheng.empty()&&!xha.empty())//只要其中一人佇列不為空就繼續迴圈

}if(xheng.empty())//此時如果xiaoheng的隊列為空,跳出迴圈

// xiaoha出牌 //

int t2; //xiaoha出牌方式與xiaoheng一樣不在贅述

t2=xha.front();

xha.pop();

temp[++c]=t2;

size=c-1;

for(int i=1;i<=size;i++)

}if(xha.empty())

}if(xheng.empty()) //判斷如果xiaoheng隊列為空則xiaoha贏

}else if(xha.empty()) 判斷如果xiaoha隊列為空則xiaoheng贏

}cout

cout<}

紙牌遊戲 小貓釣魚(佇列與棧綜合)

某一天張兵和小明在一起玩撲克牌,每個人各自拿取乙份撲克牌,張兵先把一張撲克牌放在桌子上,小明再放一張,出牌時 如果某人打出的牌與桌上的某張牌的牌面相同,即可將兩張相同的牌及其之間所夾的牌全部取走,並依次放到自己手牌的 末尾,當任意一人的手牌全部出完後,遊戲結束,對手獲得勝利。我們先來分析遊戲中的幾種...

紙牌遊戲 小貓釣魚 棧與佇列合用實現

遊戲規則 將一副撲克牌平均分為兩份,每人拿乙份,a先拿出手中的第一張撲克牌放在桌上,然後b也拿出手中的第一張撲克牌,並放在a剛打出的撲克牌的上面,就像這樣兩人交替出牌.出牌時如果某人打出的牌與桌上某張牌的牌面相同時,即可將兩張相同的牌及其中間所夾的牌全部取走,並依次放到自己手中牌的末尾,當其中一人手...

棧和佇列的實際應用 小貓釣魚

include include include struct queue struct stack int main else book s.data s.top 0 q1.data q1.tail s.data s.top 先判斷一下小哈手中的牌,如果此時小哈手中已無牌,遊戲結束 if q1.he...