小貓釣魚-----佇列與棧的結合
問題描述
星期天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...