欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)紙牌游戲(小貓釣魚)

 更新時間:2020年10月11日 17:08:13   作者:齊123  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)紙牌游戲,小貓釣魚游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

C語言使用隊列和棧實現(xiàn)紙牌游戲–小貓釣魚,供大家參考,具體內(nèi)容如下

C語言:

//紙牌游戲--小貓釣魚--隊列 棧--(所謂的拉火車) 
#include <stdio.h>

struct queue   //隊列 
{
 int data[1000];
 int head;
 int tail;
}; 
struct stack   //棧 
{
 int data[10];
 int top;
};

int main(void)
{
 struct queue q1, q2; //小哼 q1 和小哈 q2 的隊列 
 struct stack s;  //棧 
 int book[10];   //記錄,判斷是否第二次出現(xiàn) 
 int i, t;
 
 q1.head = 1, q1.tail = 1;  //初始化隊列 
 q2.head = 1, q2.tail = 1; 
 
 s.top = 0;     //初始化棧 
 
 for(i = 1;i <= 9;i++)  //初始化出現(xiàn)次數(shù)為 0 
 book[i] = 0;
 
 for(i = 1; i <= 6; i++) {  //這里給定一個人 6 張牌 
 scanf("%d", &q1.data[q1.tail]);
 q1.tail++;
 }
 for(i = 1;i <= 6;i++) {
 scanf("%d", &q2.data[q2.tail]);
 q2.tail++;
 } 
 
 while(q1.head < q1.tail && q2.head < q2.tail ) {  //當(dāng)隊列不為空的時候執(zhí)行循環(huán) 
 t = q1.data[q1.head];   //小哼(先)出牌 
 if(book[t] == 0){    //當(dāng)桌上無此牌時 
 q1.head++;    //將此牌出隊
 //s.top++;
 s.data[++s.top] = t;  //將打出的牌入棧 
 book[t] = 1;    //標(biāo)記此牌桌上已有 
 }else{      //此牌桌上已有,小哼能贏
 q1.head++;    //將打出的此牌出隊
 q1.data[q1.tail] = t; //將此牌入隊尾 
 q1.tail++;
 
 while(s.data[s.top] != t) { //把桌子上贏的牌收回去, 此處沒有收最后一根牌 t 
 book[s.data[s.top]] = 0;   //取消標(biāo)記
 q1.data[q1.tail] = s.data[s.top]; //依次放在隊尾 
 q1.tail++;
 s.top--;       //棧中少了一張牌,所以- 1 
 }
 //收回桌上的 t 牌 
 book[t] = 0;
 q1.data[q1.tail] = t;
 q1.tail++;
 s.top--; 
 }
 
 if(q1.head == q1.tail )   //如果小哼牌打完了,游戲結(jié)束 
 break; 
 
 //輪到小哈出牌了,和小哼一樣判斷 
 t = q2.data[q2.head];
 if(book[t] == 0) {
 q2.head++;
 s.top++;
 s.data[s.top] = t;
 book[t] = 1;
 } 
 else {
 q2.head++;
 q2.data[q2.tail] = t;
 q2.tail++;
 
 while(s.data[s.top] != t) {
 book[s.data[s.top]] = 0;
 q2.data[q2.tail] = s.data[s.top];
 q2.tail++;
 s.top--;
 } 
 
 book[t] = 0;
 q2.data[q2.tail] = t;
 q2.tail++;
 s.top--;
 } 
 } 
 
 if(q2.head == q2.tail ) {
 printf("小哼 win \n");
 printf("小哼當(dāng)前手中的牌是 ");
 for(i = q1.head;i < q1.tail;i++)
 printf(" %d",q1.data[i]);
 
 if(s.top) {  //如果桌子上有牌的話 
 printf("\n桌子的牌是");
 for(i = 1;i <= s.top;i++)
 printf(" %d",s.data[i]);
 printf("\n"); 
 }
 else
 printf("\n桌子上已經(jīng)沒有牌了");
 } else {
 printf("小哈 win \n");
 printf("小哈當(dāng)前手中的牌是 ");
 for(i = q2.head;i <= q2.tail-1;i++)
 printf(" %d", q2.data[i]);
 
 if(s.top) {  //如果桌子上有牌的話 
 printf("\n桌子的牌是");
 for(i = 1;i <= s.top;i++)
 printf(" %d",s.data[i]);
 printf("\n"); 
 } else
 printf("\n桌子上已經(jīng)沒有牌了");
 } 
 
 return 0;
} 
/*Code Running Results
1 2 3 4 5 6
3 2 1 5 2 6
小哈 win
小哈當(dāng)前手中的牌是 5 6 2 3 1 3 2 5 2
桌子的牌是 4 6 1
*/

該程序使用隊列來實現(xiàn)玩家的手中的牌(玩家的牌只能前面出牌,贏得牌依次放后面),用棧實現(xiàn)桌子上的牌(出牌放在末端,贏牌也是從末端拿走)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++設(shè)計模式中的觀察者模式一起來看看

    C++設(shè)計模式中的觀察者模式一起來看看

    這篇文章主要為大家詳細介紹了C++觀察者模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++實現(xiàn)簡單學(xué)生成績管理系統(tǒng)

    C++實現(xiàn)簡單學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池詳解

    為了提高MySQL數(shù)據(jù)庫的訪問的瓶頸,除了在服務(wù)器端增設(shè)緩存服務(wù)器緩存常用的數(shù)據(jù)之外(如redis),還可以增加數(shù)據(jù)庫連接池,來提高MySQL Server的訪問效率,這篇文章主要給大家介紹了關(guān)于如何利用C++實現(xiàn)mysql數(shù)據(jù)庫的連接池的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • C/C++練習(xí)題之合并k個已排序的鏈表

    C/C++練習(xí)題之合并k個已排序的鏈表

    這篇文章主要給大家介紹了關(guān)于C/C++練習(xí)題之合并k個已排序的鏈表的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用C/C++具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-06-06
  • OpenCV實現(xiàn)馬賽克功能

    OpenCV實現(xiàn)馬賽克功能

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)馬賽克功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Qt實現(xiàn)驗證碼相關(guān)功能的代碼示例

    Qt實現(xiàn)驗證碼相關(guān)功能的代碼示例

    驗證碼的原理基于人類視覺和計算機視覺的差異性,通過給用戶顯示一些難以被機器識別的圖形或文字,讓用戶進行人機交互,確認自己的身份,這樣可以有效保護網(wǎng)站安全,所以本給大家介紹了Qt實現(xiàn)驗證碼相關(guān)功能的代碼示例,感興趣的朋友可以參考下
    2024-01-01
  • c++ 移動構(gòu)造相關(guān)總結(jié)

    c++ 移動構(gòu)造相關(guān)總結(jié)

    這篇文章主要介紹了c++ 移動構(gòu)造的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-02-02
  • C/C++高精度運算(大整數(shù)運算)詳細講解

    C/C++高精度運算(大整數(shù)運算)詳細講解

    高精度算法的本質(zhì)是把大數(shù)拆成若干固定長度的塊,然后對每一塊進行相應(yīng)的運算,下面這篇文章主要給大家介紹了關(guān)于C/C++高精度運算(大整數(shù)運算)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 基于C++自動化編譯工具的使用詳解

    基于C++自動化編譯工具的使用詳解

    本篇文章是對C++中自動化編譯工具的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實現(xiàn)猜數(shù)字大小的游戲

    C語言實現(xiàn)猜數(shù)字大小的游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)猜數(shù)字大小的游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評論