当前位置: 首页 > news >正文

猜数字游戏

开始时应输入要猜的数字的位数,这样计算机可以根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需用空格或回车符加以区分,计算机会根据输入信息给出相应的提示信息:A表示位置与数字均正确的个数,B表示位置不正确但数字正确的个数,这样便可以根据提示信息进行下次输入,直到正确为止,这时会根据输入的次数给出相应的评价。

随机分配数据与核对输入数据,利用系统时钟作为随机数的种子,将每次产生的0~9之间(包含0和9)的随机数存到数组a中,将从键盘中输入的数字存到数组b中,用数组b中的所有数与数组a中的每个数比较,通过统计位置与数据均相同的个数及统计位置不同但数据相同的个数来输出提示信息。

void guess(int n)

{

    int account, bcount, i, j, k = 0, flag, a[10], b[10];

    do

    {

        flag = 0;

        srand((unsigned)time(NULL)); /*利用系统时钟设定种子*/

        for (i = 0; i < n; i++)

            a[i] = rand() % 10; /*每次产生 0~9 范围内任意的一个随机数并存到数组 a 中*/

        for (i = 0; i < n - 1; i++)

        {

            for (j = i + 1; j < n; j++)

                if (a[i] == a[j]) /*判断数组 a 中是否有相同数字*/

                {

                    flag = 1; /*若有上述情况则标志位置 1*/

                    break;

                }

        }

    } while (flag == 1); /*若标志位置为 1 则重新分配数据*/

    do

    {

        k++; /*记录猜数字的次数*/

        account = 0; /*每次猜的过程中位置与数字均正确的个数*/

        bcount = 0; /*每次猜的过程中位置不正确但数字正确的个数*/

        printf("guess:");

        for (i = 0; i < n; i++)

            scanf("%d", &b[i]); /*输入猜测的数据到数组 b 中*/

        for (i = 0; i < n; i++)

            for (j = 0; j < n; j++)

            {

                if (a[i] == b[i])/*检测输入的数据与计算机分配的数据相同且位置相同的个数*/

                {

                    account++;

                    break;

                }

                if (a[i] == b[j] && i != j) /*检测输入的数据与计算机分配的数据相同但位置不同的个数*/

                {

                    bcount++;

                    break;

                }

            }

        printf("clue on:%d A %d B\n\n", account, bcount);

        if (account == n) /*判断 account 是否与数字的个数相同*/

        {

            if (k == 1)

                printf(" you are the topmost rung of Fortune's ladder!! \n\n");

            else if (k <= 5)

                printf("you are genius!!!\n\n");

            else if (k <= 10)

                printf("you are clever!!\n\n");

            else

                printf("you need try hard!!\n\n");

            break;

        }

    } while (1);

}

main()

{

    int i, n;

    while (1)

    {

        clrscr();

        gotoxy(15, 6); /*将光标定定位*/

        printf("1.start game?(y/n)");

        gotoxy(15, 8);

        printf("2.Rule");

        gotoxy(15, 10);

        printf("3.exit\n");

        gotoxy(25, 15);

        printf("please choose:");

        scanf("%d", &i);

        switch (i)

        {

            case 1:

                clrscr();

                printf("please input n:\n");

                scanf("%d", &n);

                guess(n); /*调用 guess()函数*/

                sleep(5); /*程序停止 5 秒钟*/

                break;

            case 2: /*输出游戏规则*/

                clrscr();

                printf("\t\tThe Rules Of The Game\n");

                printf(" step1: input the number of digits\n");

                printf(" step2: input the number,separated by a space between two numbers\n");

                printf(" step3: A represent location and data are correct\n");

                printf("\tB represent location is correct but data is wrong!\n");

                sleep(10);

                break;

            case 3: /*退出游戏*/

                exit(0);

            default:

                break;

        }

    }

}

http://www.xdnf.cn/news/761599.html

相关文章:

  • WIN11 Docker Desktop 安装问题解决
  • nc、telnet、curl 命令对比
  • 战略4.3 -战略控制(预算\业绩衡量指标\数字化技术)
  • Redis缓存落地总结
  • vscode 代理模式(agent mode),简单尝试一下。
  • Linux环境基础开发工具->make/Makefile
  • VScode编译调试debug,gpu的cuda程序,Nsight
  • Java 老矣,尚能饭否?
  • 车辆检测算法在爆炸事故应急响应中的优化路径
  • Vue项目中安装插件的命令及区别
  • 22. Generate Parentheses
  • 盲盒经济2.0:数字藏品开箱是否适用赌博法规
  • 3C All-in-One Toolbox:安卓手机的全能维护专家
  • BLIP-2
  • 【C++】vector的模拟实现
  • 牛客2025年儿童节比赛
  • OpenLayers 地图标注之图文标注
  • 【第四十七周】HippoRAG 2 复现与分析(一):环境部署与代码分析
  • linux文件管理(补充)
  • 纯汇编自制操作系统(四、应用程序等的实现)
  • [Python] Python自动化:PyAutoGUI的基本操作
  • ArkTS基础
  • [PCIe]Gen6 PAM4的功耗相比Gen5 NRZ增加了多少?
  • C++测开,自动化测试,业务(第一段实习)
  • 微软常用运行库合集(VisualC++)2025.04.22
  • 阴盘奇门 api数据接口
  • Redis:安装与常用命令
  • Mybatis-Plus 学习
  • RTMP播放器谁更强?深入解析SmartPlayer与VLC、PotPlayer等方案的技术差异
  • 落石石头检测数据集VOC+YOLO格式1185张1类别