博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
纸牌游戏——队列和栈的应用
阅读量:4583 次
发布时间:2019-06-09

本文共 1907 字,大约阅读时间需要 6 分钟。

#include<stdio.h>

struct queue
{
int date[1000];
int head;
int tail;
};//将小哼和小哈的牌定为队列

struct stack

{
int date[10];
int top;
};//将桌上的牌定为栈
int main()
{
struct queue q1,q2;
struct stack s;
int i,t;
int book[10];//将桌上的牌存入,如有则为1,如没有,则为默认值0

q1.head=1;

q1.tail=1;
q2.head=1;
q2.tail=1;
s.top=0;

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

book[i]=0;//此时桌上没有牌
for(i=1; i<=6; i++)//读入少哼手中的牌
{
scanf("%d",&q1.date[q1.tail]);
q1.tail++;
}
for(i=1; i<=6; i++)//读入小哈手中的牌
{
scanf("%d",&q2.date[q2.tail]);
q2.tail++;
}
while(q1.head<q1.tail && q2.head<q2.tail)//当小哼和小哈手中的牌都不为空时
{
t=q1.date[q1.head];//小哼将手中的第一张牌打到桌上
if(book[t]==0)//如果桌上没有与小哼出的牌相同的话
{
q1.head++;//出队
s.top++;//入栈
s.date[s.top]=t;
book[t]=1;//此时桌上已有这张面值的牌了
}
else//如果桌上有与小哼出的牌相同的话
{
q1.head++;//出队
q1.date[q1.tail]=t;//将出队的牌入队,放到最后一张
q1.tail++;
while(s.date[s.top]!=t)//将桌上的牌一张一张的放入小哼的手中
{
book[s.date[s.top]]=0;//将出栈的牌置为0
q1.date[q1.tail]=s.date[s.top];//入队
q1.tail++;
s.top--;
}
book[s.date[s.top]]=0;//将最后一张与出队的牌相同面值的牌也入队到手中
q1.date[q1.tail]=s.date[s.top];
q1.tail++;
s.top--;
}
if(q1.head==q1.tail) break;//如果此时小哼手中已没有牌了,小哈获胜
//下面的与小哼同款
t=q2.date[q2.head];
if(book[t]==0)
{
q2.head++;
s.top++;
s.date[s.top]=t;
book[t]=1;
}
else
{
q2.head++;
q2.date[q2.tail]=t;
q2.tail++;
while(s.date[s.top]!=t)
{
book[s.date[s.top]]=0;
q2.date[q2.tail]=s.date[s.top];
q2.tail++;
s.top--;
}
book[s.date[s.top]]=0;
q2.date[q2.tail]=s.date[s.top];
q2.tail++;
s.top--;
}
}
if(q2.head==q2.tail)
{
printf("小哼win\n");
printf("小哼当前手中的牌是");
for(i=q1.head; i<=q1.tail; i++)
printf(" %d",q1.date[i]);
if(s.top>0)
{
printf("\n桌山上的牌是");
for(i=1; i<s.top; i++)
printf(" %d",s.date[i]);
}
else printf("\n桌上已经没有拍了");
}
else
{
printf("小哈win\n");
printf("小哈当前手中的牌是");
for(i=q2.head; i<=q2.tail; i++)
printf(" %d",q2.date[i]);
if(s.top>0)
{
printf("\n桌山上的牌是");
for(i=1; i<s.top; i++)
printf(" %d",s.date[i]);
}
else printf("\n桌上已经没有拍了");
}

return 0;

}

转载于:https://www.cnblogs.com/wudidamowang666/p/6506585.html

你可能感兴趣的文章
用Docker构建Nginx镜像
查看>>
spring注解-“@Scope”
查看>>
apache错误日志(error_log)记录等级
查看>>
通用的前端注册验证
查看>>
WPF 窗体中的 Canvas 限定范围拖动 鼠标滚轴改变大小
查看>>
django下的 restful规范 Drf框架 psotman的安装使用 及一些容易遗忘的小点
查看>>
Atitit.输入法配置说明v1 q229
查看>>
Atitit main函数的ast分析 数组参数调用的ast astview解析
查看>>
[转载]漫话:如何给女朋友介绍什么是死锁
查看>>
读书笔记——持有对象
查看>>
php header函数导出excel表格
查看>>
Jzoj1277最高的奶牛
查看>>
plsql中文乱码问题(显示问号)
查看>>
C# DataTbale详细操作
查看>>
用opencv检测人眼并定位瞳孔位置
查看>>
实现多项式的JAVA类
查看>>
Getting Started with the G1 Garbage Collector 转发
查看>>
HDU5036 Explosion(期望 bitset)
查看>>
有限自动机的构造和识别
查看>>
初试机器学习
查看>>