C语言猜数游戏的设计

本文介绍了一个使用C语言编写的猜数字游戏,通过menu函数创建菜单,do...while循环确保至少执行一次游戏。游戏内部用rand和srand生成1到100之间的随机数,玩家通过输入猜测,用if语句判断大小。同时,文章提到使用count记录猜测次数,system(cls)清屏以优化游戏体验。
摘要由CSDN通过智能技术生成

本人纯属小白,如果有技术上的失误欢迎各位大佬来指导。

第一步,我们需要做一个菜单的界面,可以用*做边界然后用printf的方式输出,可以定义一个menu的函数,而菜单往往需要用到switch..case语句来实现选择功能,而我们制作的游戏往往至少要运行一次,所以do...while是一个不错的选择。

第二步,需要定义一个game的函数来实现游戏,最难的一点就是怎样去生成随机数这里我们可以用rand函数(单用rand函数生成的随机数每次都是有规律的)和srand生成器以及利用时间戳(time函数)来生成一个随时在变化的随机数,注意不要放在game函数里面,不然每猜一个数的时候rand都在变化,就猜不到数了。然后利用if语句来实现猜大猜小的比较。

第三步,优化游戏,可以用count来记录猜数次数,然后system(“cls”)来清除每一次的游戏界面达到美观效果(个人观点及创意,如果有更好的优化方式欢迎指导)

代码如下:


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
//制作游戏界面和菜单
void menu()
{
    printf("***********************\n");
    printf("*   1.game   0.exit   *\n");
    printf("***********************\n");
    printf("Please select 1 or 0:\n");//
}

void game()
{
    int a,ret=0,count;//a是接收输入的值,ret来接收生成的随机数,count来记录输入的次数
    ret = rand()%100+1;//定义随机数的取值范围
    while(1)
    {
        scanf("%d",&a);
        if(a>ret)//大于时
        {
            printf("It's a bit big\n");
            count++;
        }
        else if(a<ret)//小于时
        {
            printf("It's a little small\n");
            count++;
        }
        else//等于时
        {
            printf("Congratulations, you guessed it\n");
            count++;
            printf("you only used %d times\n",count);
            printf("The game will restart after another 5 seconds");//提示5秒后再次游戏美化游戏界面(可以不要)
            Sleep(5000);//休息5秒(S大写)需要windows.h的头文件
            system("cls");//执行系统命令的一个函数-cls-清空屏幕
            break;
        }    
    }
}

int main()
{
    int input;//定义输入的值来选择菜单
    srand((unsigned int)time(NULL));//利用时间戳来生成随机数需要调用stdlib.h和time.h
    //至少运行一次用do...while结构循坏
    do
    {
        menu();//调用菜单界面
        scanf("%d",&input);
        switch (input)//用switch结构来制作菜单的选择
        {
        case 0:
            printf("Exit the game\n");
            break;
        case 1:
            printf("Guess a number from 1 to 100:");//一个输入提示的互动    
            game();//直接进入游戏
            break;
        default:
            printf("input error\n");  
            break;
        }
    } while (input); 
    return 0;
}

当自己设计并制作出来时,还是十分有成就感的,也可以提高自己对C语言学习的兴趣,另外还有不足之处欢迎评论给予指导!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值