栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言编写——抢30游戏

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言编写——抢30游戏

由两个人玩“抢30”游戏,游戏规则是:第一个人先说“1”或“2”,第二个人要接着往下说一个或两个数,然后又轮到第一个人,再接着往下说一个或两个数。这样两人反复轮流,每次每个人说一个或两个数都可以,但是不可以连说三个数,谁先抢到30,谁得胜。

问题分析:

通过观察可知谁先抢说27谁就会赢。要抢到27,必须先抢到24。依次类推变为抢3的问题

只要第二个人控制抢到27 24 21 18 15 12 9 6 3则一定会赢

所以可知这个游戏是不公平的,偏向后开口的人,而且这些数字都能整模3

假设变为“抢50”游戏规则不变,47 44 41 38 35 32 29 26 23 20 17 14 11 8 5 2

变成抢2的游戏,也是不公平的,偏向先开口的人。而且这些数字模3都等于2

#include
#include
#include
void menu();
int people(int t);//人抢数
int computer(int s);//电脑抢数
int main()
{
    srand((unsigned)time(NULL));//用时间戳给rand初始值
    int tol = rand() % 30 + 1;//从1到30的某个数开始抢数
    menu();
    printf("          <%d>            n", tol);
    //公平起见用产生的随机值决定谁先抢数
    if (rand() % 2 == 1)
    {
        tol = people(tol);//rand产生的值模2余1,则人先抢数
    }
    while (tol!=30)
    {
        //电脑和人谁先抢到30谁赢
        if ((tol = computer(tol)) == 30)
            printf("电脑赢n");
        else if((tol=people(tol))==30)
            printf("人赢n");
    }
    printf("          游戏结束            n");
    return 0;
}
//人抢数
int people(int t)
{
    int a;
    while (1)
    {
        printf("人的抢数为:");
        scanf("%d", &a);
        if (a > t + 2 || a < t + 1)
            printf("请按抢数规则抢数,");
        else
            break;
    }
    return  a;
}
//电脑抢数
int computer(int s)
{
    int c;
    printf("电脑抢数为:");
    if ((s + 1) % 3 == 0)
        printf(" %dn", ++s);
    else if ((s + 2) % 3 == 0)
    {
        s += 2;
        printf(" %dn", s);
    }
    else
    {
        c = rand()%2 + 1;
        s += c;
        printf(" %dn", s);
    }
    return s;
}
//菜单
void menu()
{
    printf("************************************n");
    printf("          <抢30游戏>        n");
    printf("    电脑与人一起抢数谁先抢到30谁赢        n");
    printf("    游戏规则如下:                n");
    printf("    1.人的抢数不能超过给定抢数+2的值    n");
    printf("    2.人的抢数不能超过电脑抢数+2的值    n");
    printf("    3.系统给定随机值<  >开始抢数游戏    n");
    printf("          游戏开始            n");
    printf("************************************n");
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/429508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号