猜数字小游戏——c语言实现(详解)

article/2025/4/6 18:35:02

目录

一、实现目标

二、准备部分

1.1 时间戳

2.1 rand()函数 

3.1 srand函数

4.1time函数

三、随机数的实现

四、游戏菜单的实现

五、菜单功能的实现

六、游戏主体部分

七、游戏完整代码

八、游戏实现效果图

九、总结


一、实现目标

1.写一个简单菜单。

2.生成1-100的随机数。

3.游戏猜对了,游戏结束。猜错了,告诉猜大了或者猜小了,继续猜。

4.游戏可以多次玩,除非退出。


二、准备部分

1.1 时间戳

4c007a7178fd455c854bf67a56d8a050.png

时间戳是指1970年1月1日至 当前时间的秒数差

由此可以知道,时间戳是不断变化的,在本次编程中,可以用做变量使用(下面介绍)。

2.1 rand()函数 

1.在C语言标准库函数里,rand()函数是用来生成随机数的。

2.rand()函数会返回一个0-RAND_MAX(32767)的伪随机数(整数)。

3.rand()函数的头文件是<stdlib.h>。

4.rand()函数没有参数,它的返回值就是一个随机数。

4.rand函数在调用时,自动设计随机数种子为1,随机种子不变时,每次产生的随机数也会相同,如下例:  

#include<stdlib.h>
#include<stdio.h>
int main()
{int ret,i;for (i = 0;  i< 10; i++){ret = rand();printf("%d\t", ret);}
}

生成十个随机数如下:

a0bf9b765a12460f912e9c481f0d2887.png

 当再次运行一次时,随机数仍然相同:

ac81e90ded784945a116e7f1a1b5530e.png

       如果直接使用rand()函数来做成游戏,可以发现每次生成的随机数都是一样的,这样游戏玩一次后就没有意思了,所以我们需要调整代码,使生成的随机数每次都不一样,这就需要用到下面的srand()函数(随机生成器)和time函数来实现。

3.1 srand函数

1.srand函数是一个随机数生成函数,主要功能是初始化随机数生成器

2.srand和rand()配合使用产生伪随机数序列

3.srand函数的参数seed的类型为unsigned int(无符号整型)

4.调用rand函数时,会查询是否还调用过srand函数设置种子(即seed参数),若未使用,会默认seed为1,生成一系列顺序不变的伪随机数。 

4.1time函数

1.time函数的功能是获取当前的系统时间,返回的值是一个time_t类型(long int 类型),即返回时间戳。

2.time函数的头文件是<time.h>。

3.time函数的参数为时间指针,当指针不为空指针时,会将返回值赋值给time-t指针指向的空间。


三、随机数的实现

联合运用到上述time,srand,rand函数即可实现随机数的生成:

int main()
{int i;srand((unsigned int)time(NULL));int ret = rand();printf("%d\n", ret);return 0;
}

rand函数和srand函数生成随机数,time函数利用时间戳,给srand函数提供生成随机数种子。

测试结果如下: 

 

 经过多次调试,可以发现生成的随机数一直变化,即实现伪随机变为随机


四、游戏菜单的实现

自定义一个menu函数,直接打印简易菜单作选择提示:

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

五、菜单功能的实现

1.将实现打印菜单,选择游戏开始和结束的功能套入一个循环内部。由于开始即打印菜单,所以使用do while循环最为合适。

2.使用Switch语句执行选择游戏开始或结束的功能。

int main()
{int input = 0;do{menu();printf("请选择:>");scanf_s("%d", &input);switch (input){case 1:/*game();*/     /*游戏主体部分*/break;case 0:printf("退出游戏\n");break;default:printf("选择错误,请重新选择:>");break;}}while (input); return 0;
}

运行结果如下图:

 选择1时,即执行游戏主体部分,这里先跳过,进入下次循环。

选择0时,即退出游戏,结束进程。


六、游戏主体部分

void game()
{int ret = rand() % 100 + 1;    //调用rand函数,生成随机数//int guess = 0;                //任何数与100取余,结果在1-99,加1实现1-100范围//while (1){printf("请猜数字:>");     //套用while循环实现猜错了,继续猜//scanf_s("%d", &guess);if (guess < ret)        {printf("猜小了\n");     //注意大于小于符号不能写反,不然永远猜不对//}else if (guess > ret){printf("猜大了\n");}else{printf("恭喜你,猜对了\n");break;}}
}

七、游戏完整代码

#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 ret = rand() % 100 + 1;    int guess = 0;               while (1){printf("请猜数字:>");scanf_s("%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));    //在rand函数调用之前,先执行随机数种子的生成//do{menu();printf("请选择:>");scanf_s("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("选择错误,请重新选择:>");break;}}while (input); return 0;
}

八、游戏实现效果图


九、总结

1.通过编写猜数字游戏,我们掌握了最为核心的部分:随机数的生成,大致了解了rand,srand,time函数以及时间戳。

2.游戏功能的实现多次使用了循环,选择结构,do while,while循环以及Switch,if选择语句。


http://chatgpt.dhexx.cn/article/muaEpsIK.shtml

相关文章

通过游戏编程学Python(1)— 猜数字

通过游戏编程学Python 通过游戏编程学Python&#xff08;1&#xff09;— 猜数字 文章目录 通过游戏编程学Python前言一、知识点二、第一个游戏 —— 猜数字1. 玩法简介2. 游戏流程 三、程序代码三、代码详细分析1. import语句2.输入与输出3.While循环4.代码段5.变量类型转换6…

C语言实现猜数字游戏(超详解)

目录 前言 一、游戏描述 二、代码实现 1.生成游戏菜单 2.构建主函数 3.构建游戏函数 三、二分法实现猜数 代码附上: 写在最后&#xff1a; 前言 猜数字小游戏是我们大多数人学习C语言时都会了解到的一个有趣的C语言小游戏&#xff0c;下面我将详细介绍该游戏的实现和…

都说要打造个人IP,那到底什么才是个人IP?

什么是个人IP&#xff0c;它由哪些组成&#xff1f; 它由多个方面组成&#xff0c;包括个人的网络行为、习惯、兴趣爱好、位置信息&#xff0c;以及其他可以用于识别个人的数据。 目录 什么是个人IP&#xff0c;它由哪些组成&#xff1f; 第一&#xff0c;性格方面 第二&am…

一键自动修改IP小工具分享

一键自动修改IP小工具分享 1.功能介绍2. 测试环境3. 背景4. 使用方法配置文件修改 5. 补充说明电脑上有多个网卡显示当前IP 6. 参考文档7. .exe程序下载链接 1.功能介绍 功能: 1. 可以一键修改电脑的IP(包括自动获取IP和手动配置固定IP); 2. 配置文件可根据需求修改; 3. 操作简…

普通网红如何打造个人IP?个人IP打造有哪些注意事项?

不管你是做哪个行业的,你一定要把自己个人IP打造成一个爆款,做窄做小,让你的用户去对号入座。 个人IP如何打造?把自己打造成爆款? 比如你是做保险的,你不能所有保险都去做,而是只做某一类保险,只针对某一类人群的保险。 比如只做美国保险,并且只做美国个人方面的报下,针对…

网络 IP

ip地址的分类 既然每个人的ip地址都不一样&#xff0c;那一台主机怎么通过ip地址找到另一台主机的呢&#xff0c;茫茫人海&#xff0c;不可能一个个查找把&#xff0c;所以就有专门的人来管理和分配这个ip地址&#xff0c;看看以前怎么分的地址(了解) 网络号由你所连的网决定&a…

如何打造ip,打造属于自己的护城河?

最近萃见一直在考虑打造个人ip的事情。人一思考起来&#xff0c;就容易魔怔。吃饭在想&#xff0c;走路在想&#xff0c;睡前躺在那也在想。信息瞬息万变的时代&#xff0c;普通人该何去何从&#xff1f; 我记得刚接触互联网这一块的时候流量还是很好获取的&#xff0c;你就往…

如何从零到一打造你的网络个人IP(时代赚钱利器)

大家好,我是夕颜,欢迎来到夕颜聊副业 这两年个人IP和私域运营这几个词异常火热。 我们该如何正确去理解个人IP这个词和打造你的IP ? 很多人对于个人IP存在一些误导 我卖个减肥药和护肤品是不是个人IP? 答案:不是,在我认为卖产品是以你个人的名义去帮别人做品牌IP,不…

[网络] 大话IP地址

本文说的IP是指IPv4,IPv6不在本文的讨论范围之内。 IP是由32位2进制组成,通常为了表示方便,用4组十进制数字表示, 如果两个IP地址,它的Net_ID相同,只有Host_ID不同,表示它们在同一个网段内,在局域网内,同一个网段的数据可以通过广播传递,而不同网段则必须通过路由器…

世界上最百变的人不是女友,竟然是......

问&#xff1a;“这世上最百变的人是谁&#xff1f;” 答&#xff1a;“女友。” 不好意思你出局了。 正确答案是&#xff1a;“老妈&#xff01;” 老妈才是走在朋友圈前端的弄潮儿。 我的老妈造型百变&#xff0c; 丝巾、墨镜、高跟鞋&#xff0c; 可以几十套衣服不重样。 我…

个人 IP 打造方法

什么是个人ip&#xff1f; “个人ip&#xff0c;网络用语&#xff0c;指个人对某种成果的占有权&#xff0c;在互联网时代&#xff0c;它可以指一个符号、一种价值观、一个共同特征的群体、一部自带流量的内容。每个人都是产品&#xff0c;把自己当成这辈子最好的产品去打造。…

新手如何打造个人IP?

最近经常有人在抖音和微博上问我&#xff0c;对于不熟悉自媒体的互联网新手&#xff0c;是否有可能打造个人IP呢&#xff1f;对于准备打造个人IP的新手&#xff0c;需要做哪些准备&#xff1f;从何处开始着手呢&#xff1f; 目录 自媒体新手打造个人IP的三个重要步骤。 第一…

手把手教你打造个人IP

现在的职场环境对个人发展实在太不友好&#xff0c;尤其是互联网人&#xff0c;随着年级的增长&#xff0c;有很大概率遭遇职场中年危机&#xff0c;基于此&#xff0c;建议每个人都要开启自己的副业&#xff0c;从而分担风险。 对个人来说&#xff0c;最好的副业就是自媒体&am…

打造个人IP,利用IP知识变现的万能方法

打造个人IP&#xff0c;利用IP知识变现的万能方法 &#xff08;本文首发公号【跟海哥学知识变现】&#xff0c;移步公号和100万小伙伴一起学知识变现&#xff0c;立马领取【知识变现】电子书一本&#xff09; 个人IP可能是未来五年&#xff0c;甚至是未来10年里最大的风口之一…

个人ip如何打造

目录 一、起号的基础逻辑 二、为什么新开的账号在10天之内一定会推出畅销产品&#xff1f; 三、详细说明操作步骤 ​四、抖音玩法儿讲解 模仿 投放 ​创新 五、为什么新账户在10天内一定会发布畅销产品呢&#xff1f; 六、官方的基础技巧。 第一步&#xff0c;准备5到…

如何打造属于自己的个人IP?

在当今信息爆炸的时代&#xff0c;个人 IP 已经成为人们在网络世界中的独特标签。无论是在职场上、创业中&#xff0c;还是在社交生活中&#xff0c;拥有个人 IP 的人都能脱颖而出&#xff0c;吸引更多的关注和机会。那么&#xff0c;如何打造属于自己的个人 IP 呢&#xff1f;…

​互联网小白打造个人IP实操指南

怎样打造个人IP呢? 1&#xff1a;精准定位 先有定位&#xff0c;后有人设。你是面对的实体行业的粉丝&#xff0c;还是互联网的粉丝&#xff0c;是剖析项目&#xff0c;还是揭秘骗局&#xff0c;还是教人实操项目的&#xff0c;这些你都得提前为自己谋划好。领域不怕细分&am…

怎么打造个人IP?(打造超级赚钱的个人IP终极干货)

打造个人IP需要以下几个步骤&#xff1a; 定位自己&#xff1a;首先要明确自己的定位和目标&#xff0c;确定自己要成为什么样的人&#xff0c;以及如何让别人认识和了解自己。 建立专业形象&#xff1a;通过建立个人网站、博客、社交媒体账号等方式&#xff0c;打造自己的专业…

个人IP打造全过程:如何打造出属于自己的个人IP?

随着互联网的快速发展&#xff0c;个人IP已经逐渐成为一个热门话题。拥有自己的个人IP可以为你带来更多的机会和收益&#xff0c;让你在竞争激烈的市场中脱颖而出。但是&#xff0c;要想打造自己的个人IP并不是一件容易的事情。本文将为你介绍如何打造属于自己的个人IP。#IP# 一…