C语言猜数游戏的设计

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

第一步,我们需要做一个菜单的界面,可以用*做边界然后用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语言学习的兴趣,另外还有不足之处欢迎评论给予指导!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值