笔记-猜数字游戏的实现和随机数的使用-创新互联

主菜单函数:

目前创新互联公司已为上千多家的企业提供了网站建设、域名、网络空间、网站托管、企业网站设计、凤泉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
#include#include#includevoid menu()    //主菜单显示
{
    printf("********************\n");
    printf("******  1.play  ****\n");
    printf("******  0.exit  ****\n");
    printf("********************\n");
}

游戏规则函数:

程序产生随机数,玩家输入数据后判断大小,一直猜到正确为止。

void game()
{
    int random_num = rand() % 100 + 1;
    int input;
    while(1)
    {
        printf("猜猜看~\n");
        scanf("%d",&input);
        if(input< random_num)
        {
            printf("小了一点,往大了猜\n");
        }
        else if(input >random_num)
        {
            printf("接近了,有点大\n");
        }
        else
        {
            printf("聪明,猜对了!!!\n");
            break;
        }
    }
}

主函数:

int main()
{
    int input;
    srand((unsigned int)time(NULL));
    do
    {
        menu();
        printf("请选择:>");
        scanf("%d",&input);
        if(input == 1)
        {
            game();
        }
        else if(input == 0)
        {
            break;
        }
        else printf("没有此选项,请重新输入!\n");
    }while(input);
    return 0;
}

1.首先介绍一下rand()随机函数:

rand()函数会返回一个0~32767之间的随机数,头文件为#include

若直接使用rand(),执行程序发现,重新执行程序和前一次的结果相同

#include#includeint main()
{
    int a = rand();
    int b = rand();
    int c = rand();
    printf("%d\n%d\n%d\n",a,b,c);
    return 0;
}

不管执行几次程序,得到的都是一个结果:

所以我们要使用srand函数,设置一个随机数种子。

srand函数的参数为unsigned int类型,无返回类型。

起初,我们将种子设置为整形常量 --(srand(1)),此时随机数不会变。这是因为相同的种子会产生相同的随机数。

那如何产生足够随机的随机数呢?游戏中引用了时间戳的定义。

【时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,其每时每刻都在发生变化。】

所以将时间戳作为种子可以确保随机数的随机性。

time(NULL)用来获取系统的时间戳,其头文件为#include。由于srand函数的参数为unsigned int 类型,则将time(NULL)进行强制类型转换。

这就产生了如下代码:

srand((unsigned int)time(NULL));

2.采用do-while循环语句:无论怎样,先执行一次循环体,即先显示主菜单,直到玩家按下'0'退出游戏。

*注意事项:如果每次生成随机数都调用一次srand函数,并且几次调用的时间间隔较短时产生的随机数大小几乎相同,甚至相等,使随机数不够随机,所以整个程序只需调用一次srand函数即可。这就是为什么srand函数被main函数调用,而不是放在game函数中。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网站栏目:笔记-猜数字游戏的实现和随机数的使用-创新互联
URL分享:https://www.cdcxhl.com/article0/csdpoo.html

成都网站建设公司_创新互联,为您提供响应式网站网站设计外贸网站建设定制网站外贸建站搜索引擎优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名