C语言编写——抢30游戏

C语言编写——抢30游戏,第1张

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");
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5097762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存