将一副扑克牌平均分成两份,每人拿一份。a先拿出手中的第一张扑克牌放在桌上,

然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌

的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即

可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人

手中的牌全部出完时,游戏结束,对手获胜。

以下是代码的实现:

#define _crt_secure_no_deprecate

#include

#include

struct queue//定义队列的结构体

{

int data[1000];

int head;

int tail;

};

struct stack//定义栈的结构体

{

int data[10];

int top;

};

void poker()

{

struct queue q1;

struct queue q2;

struct stack s;

int arr[10];

int i, t;

q1.head = 1; q1.tail = 1;

q2.head = 1; q2.tail = 1;

s.top = 0;

for (i = 1; i <= 9; i++)

{

arr[i] = 0;//对数组进行初始化,全部为0

}

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

{

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)

{

t = q1.data[q1.head];

if (arr[t] == 0)

{

q1.head++;

s.top++;

s.data[s.top] = t;

arr[t] = 1;

}

else

{

q1.head++;

q1.data[q1.tail] = t;

q1.tail++;

while (s.data[s.top] != t)

{

arr[s.data[s.top]] = 0;

q1.data[q1.tail] = s.data[s.top];

q1.tail++;

s.top--;

}

}

t = q2.data[q2.head];

if (arr[t] == 0)

{

q2.head++;

s.top++;

s.data[s.top] = t;

arr[t] = 1;

}

else

{

q2.head++;

q2.data[q2.tail] = t;

q2.tail++;

while (s.data[s.top] != t)

{

arr[s.data[s.top]] = 0;

q2.data[q2.tail] = s.data[s.top];

q2.tail++;

s.top--;

}

}

}

if (q2.head == q2.tail)

{

printf("a赢\n");

printf("a当前手中的牌是:");

for (i = q1.head; i <= q1.tail - 1; i++)

{

printf(" %d", q1.data[i]);

}

if (s.top > 0)

{

printf("\n桌上的牌是:");

for (i = 1; i <= s.top; i++)

{

printf(" %d", s.data[i]);

}

printf("\n");

}

else

{

printf("\n桌上已经没有牌了");

}

}

else

{

printf("b赢\n");

printf("b当前手中的牌是:");

for (i = q2.head; i <= q2.tail - 1; i++)

{

printf(" %d", q2.data[i]);

}

if (s.top > 0)

{

printf("\n桌上的牌是:");

for (i = 1; i <= s.top; i++)

{

printf(" %d", s.data[i]);

}

printf("\n");

}

else

{

printf("\n桌上已经没有牌了");

}

}

}

int main()

{

poker();

system("pause");

return 0;

}

运行的结果:

简单扑克牌游戏C语言,【算法】C语言实现简易的扑克牌游戏相关推荐

  1. mcem r语言代码_一个简单文本分类任务-EM算法-R语言

    一.问题介绍 概率分布模型中,有时只含有可观测变量,如单硬币投掷模型,对于每个测试样例,硬币最终是正面还是反面是可以观测的.而有时还含有不可观测变量,如三硬币投掷模型.问题这样描述,首先投掷硬币A,如 ...

  2. 学校门口的树C语言算法,C语言校园导游程序设计汇报.doc

    C语言校园导游程序设计汇报 <应用程序设计 课程设计>报告 班级: 学号: 姓名: 指导教师: 成绩评定: 目录 题目: 设计一个校园导游程序,为来访的客人提供各种信息查询服务 一.需求分 ...

  3. 田忌赛马c语言算法,C语言里关于田忌赛马的问题

    C语言里关于田忌赛马的问题0 limmettle2014.10.24浏览83次分享举报 这是题目 题目描述 赛马是一古老的游戏,早在公元前四世纪的中国,处在诸侯割据的状态,历史上称为"战国时 ...

  4. 必背C语言算法 C语言小写转大写

    算法思想 在计算机中,大小写字母的ASCII值差32,字符a的ASCII值为97,字符A的ASCII值为65. 程序代码 #include <stdio.h> int main() {ch ...

  5. 加法接力赛C语言算法,C语言循环结构

    <C语言循环结构>由会员分享,可在线阅读,更多相关<C语言循环结构(47页珍藏版)>请在人人文库网上搜索. 1.UML和需求建模,第六章,循环控制,UML和需求建模,主要内容, ...

  6. 输出每行坐标的的c语言算法,C语言输出空心菱形的实现

    http://www.cnblogs.com/liutogo/archive/2013/05/31/3110394.html 输出空心菱形是c语言初学者经常遇到的问题,由于涉及c语言的基础知识较多,也 ...

  7. mm1模型的c语言算法,C语言动画程序源码(1).pdf

    C 语言动画程序 #include #include #include #include #define pi 3.1415926535 double ca3mm1(double m1,double ...

  8. 必背C语言算法 C语言求自然底数e

    自然底数 e=2.718281828-,e 的计算公式如下: e=1+1/1!+1/2!+1/3!+- 要求当最后一项的值小于 10-10 时结束. 算法思想 使用循环实现累加求和,并在求和后计算下一 ...

  9. 残缺棋盘问题c语言算法,c语言算法--分而治之算法---残缺棋盘

    残缺棋盘(defective chessboard)是一个有2k×2k 个方格的棋盘,其中恰有一个方格残缺.图2 - 3给出k≤2时各种可能的残缺棋盘,其中残缺的方格用阴影表示.注意当k= 0时,仅存 ...

  10. 一个简单的c 游戏编程语言,编程达人 c语言写一个简单的小游戏-推箱子

    在学习C语言之后,写了一个简单的小游戏来锻炼自己的代码以及C语言知识的掌握能力. 推箱子作为手机上最常见的简单游戏,其代码也相对简单,想法也比较简单,下面为其代码和运行图. /************ ...

最新文章

  1. Linux下查看nginx apache mysql php的编译参数
  2. 蓝桥杯-矩阵乘法(java)
  3. C++基于多态实现依赖颠倒原则附源码
  4. boost::mpi模块指针序列化测试
  5. 【HDU 1711】Number Sequence(裸KMP算法)
  6. java导出生成word(类似简历导出)
  7. piwik抓取用户交互行为
  8. ORACLE利用STANDBY端RMAN备份进行数据恢复
  9. python单行箭头_在Python中,如何让箭头尖在指定的坐标处开始/结束?
  10. 【数据库实验课堂】实验二 使用SQL Server管理数据表
  11. Python中列表的del,remove和pop函数之间的区别
  12. 搜狗浏览器中如何删除自带工具 搜狗浏览器删除自带工具的方法步骤
  13. 机器人走进开放源代码
  14. cad怎么导出jpg图片格式?
  15. 音量控制 单片机c 语言,(封贴)请大神代写音响音量控制程序(有偿代写)单片机加TDA7313控制...
  16. postfix搭建纯邮件转发服务器
  17. 在Azure上搭建SQL云数据库
  18. 鸿蒙石之鉴老猴死了怎么办,智取芭蕉扇那个剧情选分支1过不了怎么办
  19. 北海屠龙记------一
  20. Arduino基础入门篇01—进入Arduino的世界

热门文章

  1. 当今社会到底更需要专才还是通才
  2. Android studio中使用百度地图
  3. CVPR 2021 | 自监督学习新思路!S2-BNN:基于蒸馏的自监督学习算法
  4. android动态style,Android控件动态设置style的问题
  5. JavaScript全栈开发-工具篇
  6. 基于PHP的超市进销存管理系统
  7. 基于美国人口数据分析
  8. 无法将数值apsdaemon写入键
  9. Android 键值映射
  10. 设计32信道的多相滤波结构数字接收机