首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >计算机新人的第一个游戏项目——”猜数字“

计算机新人的第一个游戏项目——”猜数字“

作者头像
小此方
发布2025-12-24 17:34:57
发布2025-12-24 17:34:57
40
举报

初学计算机,很多人都和我一样希望能赶快做出一些有趣又好玩的游戏项目,但是碍于技术能力有限,很多时候我们并不能很快实现这一切,那么,又没有什么项目适合新人的技术条件,又具备一定的可玩性呢?

有的!兄弟,有的。

接下来,我将为大家介绍一个简单又有趣的“猜数字”游戏:

Tips:需要用到的知识/工具:(C语言)

1,C语言基础概念知识

2,分支语句

3,循环语句

4,函数创建(没有也不要紧,不需要深入)

5,一些基础函数

6,VS2022社区版集成开发环境(不需要搭建环境,简单方便又免费)

Tips:游戏的整体逻辑

1,电脑给出一个随机数字,玩家输入数字进行猜测。

2,玩家猜测结果过大,电脑提示过大。反之,电脑提示过小。

3,(附加功能)设置玩家的猜测次数,提升游戏难度。

好了bro,让我们正式开始吧!

一,实现随机数的生成。

      生成随机数,需要用到一个rand函数,rand函数可以用来生成伪随机数。

1,他的原型是:int rand(void);int表示rand的返回值是整形类型,void表示rand没有参数。

2,如果要使用rand函数,我们要在创建的文件忠包含头文件<stdlib.h>

3,由rand函数生成的伪随机数有一个具体的范围:即0~RAND_MAX,这里的RAND_MAX在不同的编译器中有代表不同的数字,当然,在大部分编译器中(包括VS),它的值一般是32767。

好了,知道这么多,让我们先尝试打印一下rand试试吧

屏幕上出现了随机数“41”,但是如果你多试几次,你会发现:你每一次得到的随机数都是“41"。

           这就是rand函数的局限性。

因为rand生成随机数的原理是:对一个叫”种子“的基准值进行运算得到随机数。这个数就是伪随机数:正如你所看到的那样:41。而这个种子默认为1,种子不变,运算结果自然不变,无论操作多少次都一样。

//所以,要让rand生成的伪随机数随机(变化),就要让”种子“变化。

            因此,我们引入srand函数对种子进行初始化(放在rand函数的前面)

srand函数的原型:

void srand(seed);其中,void表示srand函数没有返回值,seed表示srend函数的参数。

参数seed控制”种子“的大小,”种子“又控制随机数序列。如图

可见,随着参数seed的变化,rand()的返回值(随机数)也在发生变化。所以,只要让seed不断变化,我们就可以得到真正的随机数。

        再给seed一个随机数?不对,从逻辑上就存在问题。

        那么如何解决这个问题呢?(想想生活中有什么值是时时刻刻在发生变化的)

 对了,是时间。

我们继续引入time函数。对于time函数,我们需要知道一些关于他的知识

1,time函数的调用需要包含<time.h>头文件。

2,time函数的返回值类型是time_t类型。

3,time函数的参数timer的类型是time*_t类型(指针,不用管他,这个程序用不到指针)

4,time函数的返回值是“时间戳”

5,时间戳的内涵是自1970年1月1日0时0分0秒开始至今所经过的时间(单位秒)

也就是说,time函数的返回值(时间戳)会随着时间的流逝而不断改变。

         好的,问题迎刃而解。

我们把time的返回值当作seed,用强制类型转换设置成无符号整型类型,将time的参数设置成空指针(NULL)

现在我们可以得到真正的随机数了

但是我们还是遇到了一个问题:这么大的数字,猜起来还是太麻烦了。

这个问题很好解决:假如我想要1~100的范围,只需要对这个数%100+1就行。

二,搭建游戏框架

如图

        我们设置主函数外又新建了两个小组件:菜单,和游戏主程序。

在主程序中用if语句设置三个选项,对应菜单的选项。这样,一个基础的框架就搭好了。

三,制作菜单:

这一步非常简单

可以ASCII艺术(类似于评论区写生(doge))设计你喜欢的菜单样式

我这里采用最简单朴素的方式:

四,制作游戏主程序

1,电脑输出一个随机数字:

2,玩家输入,猜测这个数字:

3,电脑判断数字给出反馈

4,实现游戏的循环(反复猜测)和debug环节

这里我使用了do while 循环结构,保证循环至少执行一次。将while的参数设置为1,使其可以无限进行下去直到猜对为止。

debug:1,删除了printf("%d", rand() % 100 + 1);语句,不在屏幕上显示随机数。

             2,为输入数添加了取地址符号&。

好,至此,这个项目就大功告成了。

结束了吗?

没有

我们可以设计一个计数器,限制猜数字的次数,增加这个游戏的难度:

好了,现在这个游戏正式完成了。

———————————————————————————————————————————

感谢你的点阅和点赞,你的支持,就是我最大的动力。

我是@小此方,一个平凡而努力的大学生编程人。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 初学计算机,很多人都和我一样希望能赶快做出一些有趣又好玩的游戏项目,但是碍于技术能力有限,很多时候我们并不能很快实现这一切,那么,又没有什么项目适合新人的技术条件,又具备一定的可玩性呢?
  • 有的!兄弟,有的。
  • 接下来,我将为大家介绍一个简单又有趣的“猜数字”游戏:
    • Tips:游戏的整体逻辑
  • 好了bro,让我们正式开始吧!
    • 一,实现随机数的生成。
    • 二,搭建游戏框架
    • 三,制作菜单:
    • 四,制作游戏主程序
  • 好,至此,这个项目就大功告成了。
  • 好了,现在这个游戏正式完成了。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档