【算法】C语言实现简易的扑克牌游戏
来源:互联网 发布:淘宝电子烟店铺排名 编辑:程序博客网 时间:2024/06/05 05:36
将一副扑克牌平均分成两份,每人拿一份。a先拿出手中的第一张扑克牌放在桌上,
然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌
的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即
可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人
然后b也拿出手中的第一张扑克牌,并放在a刚打出的扑克牌
的上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即
可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人
手中的牌全部出完时,游戏结束,对手获胜。
以下是代码的实现:
#define _crt_secure_no_deprecate#include<stdio.h>#include<stdlib.h>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;}
运行的结果:
阅读全文
0 0
- 【算法】C语言实现简易的扑克牌游戏
- java实现--简易扑克牌游戏
- Java实现简易扑克牌游戏
- C语言实现简易版扫雷游戏
- 简易的扑克牌比点数游戏
- list下的简易扑克牌游戏
- JAVA简易扑克牌游戏
- 简易扑克牌游戏
- 慕课网简易扑克牌游戏
- 【C语言】简易扫雷游戏——C语言实现
- C 扑克牌随机发牌的算法实现与研究
- java编写简易扑克牌游戏
- 24点游戏的编程算法(C语言实现)
- c语言实现的简易窗口程序
- c语言简易五子棋的实现
- C语言实现简易的信贷系统
- 游戏算法-洗扑克牌
- 扑克牌游戏的设计与实现
- LintCode 关于排序问题的总结
- java 构造函数
- 网络 协议
- linux基础入门之passwd命令
- iOS开发证书说明
- 【算法】C语言实现简易的扑克牌游戏
- 软件工程学习总结
- 规范PHP代码-git hook中安装phpcs
- python推导式
- Lua Table库函数
- 1001. A+B Format (20)
- Window7+VMware Workstation+Ubuntu14.05
- TinyCrayon-iOS-SDK:强大到使人惊讶的 Mask 及切图工具库
- 继承