用C语言写一个猜数字游戏

文章介绍了如何使用C语言编写一个简单的猜数字游戏。游戏包含打印菜单,用户输入选择,以及游戏内容(生成随机数并让用户猜测)。通过do-while循环实现菜单的重复显示,直到用户选择退出。游戏部分使用rand()和srand()函数生成1到100之间的随机数,并提示用户进行猜测,根据用户输入给出反馈。
摘要由CSDN通过智能技术生成

首先制作一个游戏要规划出大概框架

  1. 打印菜单

  1. 用户输入选择

  1. 游戏内容

  1. 创建随机变量

#include<stdio.h>
int main()
{
    //打印菜单

    //游戏内容

    

    return 0;
}

大体框架

接下来进入打印菜单内容:

如果打印菜单肯定就是要上来就先打印,那就要用到我们的do while 循环了

这里方便修改,而且便于观看,我们主函数不要过多写代码实现,把代码实现放在自定义函数内

那么为了输入能够结束游戏,我们把输入0作为游戏结束的标志,即把输入放在while循环的判断条件处

实例如下:

void menu()
{
    printf("*****************\n");
    printf("**** 1、play ****\n");
    printf("**** 0、exit ****\n");
    printf("*****************\n");
}


do
{
    menu();
}while(input)

用户输入选择:


int main()
{
    int input = 0;
    do
    {
    menu();
    scanf("%d\n", &input);
    printf(“请输入>:”);
    switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("输入错误,重新输入\n");
        }
    }while(input)
}

游戏内容:

void game()
{
    //创造随机数字
    int num = 0;
    int ret = rand() % 100 + 1;
    //printf("%d", ret);
    //猜数字
    
    while (1)
    {
        printf("请输入猜的数字>:");

        scanf("%d", &num);
        if (num > ret)
        {
            printf("猜大了\n");
        }
        else if (num < ret)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("恭喜你猜对了\n");
            break;
        }
    }

}

这里最重要的是如何创建随机值:那就要用到C语言的内置函数

包括 : rand()函数、srand()函数、time()函数、

另外还涉及到时间戳这个小知识,时间戳就是一个类似于秒表的东西,时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。##### 时间戳 #####

由于不需要一直给rand()函数提供随机值,因此,只需把srand()函数放在主函数里给rand()函数,玩一次传一次就可以了。

这里如果还想具体了解函数使用可以进入这个CPlusPlus网站内了解相关函数C PlusPlus

最终代码实现 :

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu()
{
    printf("********************\n");
    printf("****** 1、play *****\n");
    printf("****** 0、exit *****\n");
    printf("********************\n");

}

void game()
{
    //创造随机数字
    int num = 0;
    int ret = rand() % 100 + 1;
    //printf("%d", ret);
    //猜数字
    
    while (1)
    {
        printf("请输入猜的数字>:");

        scanf("%d", &num);
        if (num > ret)
        {
            printf("猜大了\n");
        }
        else if (num < ret)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("恭喜你猜对了\n");
            break;
        }
    }

}
int main()
{
    srand((unsigned int)time(NULL));
    int input = 0;
    //打印菜单
    do
    {
        menu();
        //游戏内容
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("输入错误,重新输入\n");

        }
    } while (input);

    return 0;
}

实现实例 :

最后,创作不易,请看官喜欢请点点赞支持一下!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值