C语言深入剖析-猜数字游戏的逻辑框架

一、首先我们想到的是游戏的主界面目录

设置一个 void menu()

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

二、其次我们设置游戏的进入和退出等。

1、采用do while循环,保证至少执行一次。

    do
    {
        menu();
        printf("请选择>:");
        scanf("%d",&input);
        switch (input) //判断input的值
        {
        case 1:
            game();//猜数字的过程
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误\n");
            break;
        }
        //switch 语句判断完了以后进入do while语句。
    } while (input);  //当input等于0的时候,为假直接退出循环。

2、内置 switch语句,对input的输入值进行判断,输入1就是进入,输入零就是退出,

三、对游戏内容设置一个game函数。

  1、猜数字,需要先自动生成一个随机数给我们来猜。

       这里随机数生成运用了时间戳的概念。

     srand((unsigned int)time(NULL)); //null空指针

  2、采用while循环来进行重复猜数字游戏。

3、 内嵌 if 语句,作为猜大或猜小的提醒。

    直到猜对了,跳出循环。

/*猜数字游戏
1、电脑会生成一个随机数
2、猜数字
3、游戏至少运行一次,因此可以用do while循环*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//RAND_MAX 32767
//创建函数
void menu()
{
    printf("**********************\n");
    printf("***1. play  0.exit****\n");
    printf("**********************\n");
}
void game()
{
    //1.生成随机数
    int ret = 0;
    int guess = 0; //接收猜的数字
    //拿时间戳获取随机数。
    //当前计算机的时间-计算机起始时间=(秒)
    //time_t time(time_t *timer),本质长整形
    ret = rand()%100+1; //模100的余数是0-99,加1就是0-100
    //printf("%d\n",ret);
    //2.猜数字
    while (1)
    {
        printf("请猜数字:>");
        scanf("%d",&guess);
        if (guess>ret)
        {
            printf("猜大了\n");
        }
        else if (guess<ret)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("恭喜你,猜对了\n");
            break;          
        }
        
    }
    
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL)); //null空指针
    do
    {
        menu();
        printf("请选择>:");
        scanf("%d",&input);
        switch (input) //判断input的值
        {
        case 1:
            game();//猜数字的过程
            break;
        case 0:
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误\n");
            break;
        }
        //switch 语句判断完了以后进入do while语句。
    } while (input);  //当input等于0的时候,为假直接退出循环。
    
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值