小猫钓鱼游戏(c++实现)

题目:

初始每个人手中有6张手牌

代码:

#include<iostream>
using namespace std;
struct hand
{
    int num[1000];
    int head,tail;
}a,b;
int main()
{
    int race=0;
    a.head=b.head=1;
    a.tail=7;b.tail=7;
    int t[10]={0},last=0,card;
    bool book[10]={0};
    for(int i=1;i<=6;i++)cin>>a.num[i];
    for(int i=1;i<=6;i++)cin>>b.num[i];

    while(a.head<a.tail&&b.head<b.tail)
    {
        race++;
        card=a.num[a.head];
        if(book[card]==0)
        {
            last++;t[last]=card;
            a.head++;book[card]=1;
        }
        else
        {
            a.head++;a.num[a.tail]=card;
            a.tail++;
            while(t[last]!=card)
          {
            a.num[a.tail]=t[last];
            a.tail++;book[t[last]]=0;
            last--;
          }
        }

        card=b.num[b.head];
        if(book[card]==0)
        {
            last++;t[last]=card;
            b.head++;book[card]=1;
        }
        else
        {
            b.head++;b.num[b.tail]=card;
            b.tail++;
            while(t[last]!=card)
        {
            b.num[b.tail]=t[last];
            b.tail++;book[t[last]]=0;
            last--;
        }
        }
        if(race==100&&a.head<a.tail&&b.head<b.tail)
        {
            cout<<"平局"<<endl<<"小哼当前手中的牌是";
            for(int i=a.head;i<a.tail;i++)cout<<" "<<a.num[i];
            cout<<endl<<"小哈当前手中的牌是";
            for(int i=b.head;i<b.tail;i++)cout<<" "<<b.num[i];
            if(last>0)
           {
             cout<<endl<<"桌上的牌是"; for(int i=1;i<=last;i++)cout<<" "<<t[i];
           }
            else cout<<endl<<"桌上已经没有牌了";
        }
    }
    if(a.head<a.tail)
    {
        cout<<"小哼win"<<endl<<"小哼当前手中的牌是";
        for(int i=a.head;i<a.tail;i++)cout<<" "<<a.num[i];
    }
    else
    {
        cout<<"小哈win"<<endl<<"小哈当前手中的牌是";
        for(int i=b.head;i<b.tail;i++)cout<<" "<<b.num[i];
    }
    if(last>0)
    {
        cout<<endl<<"桌上的牌是"; for(int i=1;i<=last;i++)cout<<" "<<t[i];
    }
    else cout<<endl<<"桌上已经没有牌了";
}
时间: 2024-10-11 07:30:58

小猫钓鱼游戏(c++实现)的相关文章

图灵算法群《啊哈算法》领读

--图灵算法群阅读计划(第一期) 领读人:Zoctopus·Lian 本书特色 一本充满智慧和趣味的算法入门书.没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点. 书中涉及到的数据结构有栈.队列.链表.树.并查集.堆和图等:涉及到的算法有排序.枚举.深度和广度优先搜索.图的遍历,当然还有图论中不可以缺少的四种最短路径算法.两种最小生成树算法.割点与割边算法.二分图的最大匹配算法等. 书中通过幽默的语言配以可爱的插图来讲解算法,使用C语言实现. 适合读者 适合算法零基础入门和喜爱编程的朋友(

纸牌游戏——小猫钓鱼

游戏规则: 将一副扑克牌平均分成两份,每人拿一份.小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张扑克牌,并放在小哼刚打出的扑克牌的上面,就像这样两人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾.当任意一人手中的牌全部出完时,游戏结束,对手获胜.(小哼和小哈手中牌的牌面只有1~9) 分析: 小哼和小哈有两种操作,分别是出牌和赢牌,这恰好对应队列的两个操作,出牌就是出队,赢牌就是入队. 桌子就是一个

纸牌游戏-小猫钓鱼

扑克游戏: 将一副扑克牌平均分成两份,每人拿一份.小哼先拿出手中的第一张扑克牌放在桌上,然后小哈也拿出手中的第一张放在桌上,就这样两人交替出牌. 出牌时,若某人打出的牌与桌面上的某张牌面相同,即将两张相同的牌以及中间的全部取走,并依次放在自己手中牌的末尾.当任意一人手中的牌全部取完时,游戏结束,对手获胜. #include<stdio.h> struct queue { int data[1000]; int head; int tail; }; struct stack { int data

python数据结构与算法——小猫钓鱼(使用队列)

按照<啊哈>里的思路实现这道题目,但是和结果不一样,我自己用一幅牌试了一下,发现是我的结果像一点,可能我理解的有偏差. # 小猫钓鱼 # 计算桌上每种牌的数量 # 使用defaultdict类,并设置默认类型为int型,即默认值为0 # cardcounts = defaultdict(int) # 不过deque有对应的方法 def henhenhaahaa(): from collections import deque hen = deque() # hen的手牌 haa = deque

自己设置的纸牌游戏(简单数组栈和队列的设计)

星期天小白与小婷约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏--"小猫钓鱼".游戏的规则是这样的:将一副扑克牌平均分成俩份,每人拿一份.小白先拿出手中的第一张扑克牌放在桌上,然后小婷也拿出手中的第一张扑克牌,并放在小白刚打出的扑克牌上面,就像这样俩人交替出牌.出牌时,如果某人打出的牌与桌上某张牌的牌面相同,即可将俩张相同的牌以及中间所夹着的牌全部取走,并依次放到自己手中牌的末尾.当任意一个人的牌全部出完时,游戏结束,对手获胜! 现在,我为了方便测试只涉及一组数据,因为数据如果不对的

20170913自制猜数字游戏

/* 猜数字:系统随机生成一个四位数,请根据下列判断猜出来 A:数值正确,位置正确 B:数值正确,位置不正确 C:数值不正确 */ #include<stdio.h> #include<time.h> #include<stdlib.h> #pragma warning (disable:4996) #define pUCharHead unsigned char * //以数组形式返回n个无重复的随机数,范围可指定[min,max] pUCharHead GenNoR

洛谷P1199 三国游戏

题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之间有一个"默契值",表示若此两位武将作为一对组合作战时,该组合的威力有多大.游戏开始前,所有武将都是自由的(称为自由武将,一旦某个自由武将被选中作为某方军队的一员,那么他就不再是自由武将了),换句话说,所谓的自由武将不属于任何一方. 游戏开始,小涵和计算机要从自由武将中挑选武将组成自己的军

游戏开发 系统app开发游戏定制开发找谁

梦幻珍珠港理财拆分游戏系统软件开发怎么做?找[江生:185-2911-8412 微电]. 梦幻珍珠港拆分游戏平台开发.梦幻珍珠港理财全网模式开发.梦幻珍珠港收益模式介绍开发. 梦幻珍珠港拆分游戏系统源码搭建平台!!我们是软件开发,玩家勿扰!非平台客服,玩家勿扰!] 游戏规则: 一.开发新会员要从您的库房扣除3 03颗珍珠,体系扣除5颗珍珠,新会员有298颗珍珠. 二.推荐老友,推荐人能够得到第一代会员的2%,第二代会员的1%,第三代会员的0.5%,一代的收益就是5.96颗珍珠奖赏(可转换为等量可

游戏服务器开发需要学习的技术

一,游戏服务器编程语言的选择 所谓的游戏服务器编程语言其实有很多,基本上任何一种语言都可以作为游戏服务器的编程语言.这需要根据自己游戏的类型和要求加以选择.比如C++,Java ,Erlang,go等等.目前我用过的只有C++和Java.但是以Java为主.所以接下来就以自己的经验,谈谈以Java为核心的游戏服务器开发技术体系. Java目前作为游戏服务器开发语言已经很是普遍.但是大多数是作为页游或手游的服务器,而端游戏一般选择C++,因为端游对服务器的性能要求相对比较高一些.两种语言各有利弊.