C语言编写猜数字小游戏

article/2025/10/27 6:54:11

C语言编写猜数字小游戏

经过对C语言的初步学习,为提高编程能力,可以敲一些稍费脑筋的代码,猜数字就是一个很好的选择。要想实现该游戏,那么首先我们应该知道制作的大体思路。

  1. 电脑应随机产生一个数字(为便于玩家猜的同时,增加难度和趣味性,所以选择1~100)
  2. 玩家输入所猜数字,电脑给予反馈。
  3. 玩家得知反馈后进行进一步操作。
    (如:所猜数字过大,所猜数字过小,所猜数字正确(是否重玩一局))

知道大体思路后我们就可以着手写代码了

首先玩游戏肯定要有进入界面,让别人知道这是什么游戏。

#include<stdio.h>//头文件万万不能忘
void menu()//无需返回值
{printf("*********猜数字********\n");printf("********1.PLAY********\n");printf("********0.EXIT********\n");
}

接着可以将主函数大体写出来

int main()
{srand((unsigned int)time(NULL));//产生随机数int input = 0;do//选用do—while是因为它可以先执行后判断,符合当前需求{menu();printf("请选择(1/0)\n");scanf("%d", &input);switch (input)//在此如果使用if语句有些繁琐{case 1:game();//游戏主体,下面会写到break;case 0:printf("退出游戏\n");break;default:printf("输错啦,请重新输入\n");//应对输错情况break;}} while(input);//0为假,非0为真,所以借input判断循环是否执行return 0;
}

然后就是重头戏——游戏主体
根据思路首先要产生随机数
rand
Generates a pseudorandom number.
int rand( void );
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand.

MSDN上对rand部分解释如上,我们可以知道rand的返回值在0到RAND_MAX(0x7fff,十进制为32767)之间,那么它是否可以起到产生随机数的作用呢?
经测试其确实可以产生随机数,但再次编译时不难发现,两次的数字是相同的,这就使游戏的趣味性下降了。
第一次
第二次
srand
Sets a random starting point.
void srand( unsigned int seed );

所以需要srand为其提供生成起点,但srand又需要一个变化的随机数种子来帮助rand生成随机数,所以我们引入一个时间戳的概念(时间戳:当前时间和计算机的起始时间的差值,单位是秒;计算机起始时间:1970年1月1日上午8:00:00)time()函数返回的即是时间戳,时间肯定是一直在改变的,即时间戳也是如此。因每次只需取一次随机种子,所以将该语句放在主函数中。

void game()
{int ret = rand() % 100+1;//因为rand取值范围为0~32767,所以%100并+1使其<=100int num;while (1)//只要没猜出来就一直猜{printf("猜猜看:");scanf("%d", &num);if (num > ret){printf("猜大了\n");}else if (num < ret){printf("猜小了\n");}else{printf("恭喜你猜对了\n");break;//猜对后跳出循环}}
}

最后再写一下主程序

#include<stdio.h>
#include<stdlib.h>//为使用srand
#include<time.h>//为使用time()函数
void menu()
{printf("********猜数字********\n");printf("********1.PLAY********\n");printf("********0.EXIT********\n");
}
void game()
{int ret = rand() % 100+1;//因为rand取值范围为0~32767,所以%100并+1使其<=100int num;while (1)//只要没猜出来就一直猜{printf("猜猜看:");scanf("%d", &num);if (num > ret){printf("猜大了\n");}else if (num < ret){printf("猜小了\n");}else{printf("恭喜你猜对了\n");break;}}
}
int main()
{int input = 0;srand((unsigned int)time(NULL));do//选用do—while是因为它可以先执行后判断,符合当前需求{menu();printf("请选择(1/0)\n");scanf("%d", &input);switch (input)//在此如果使用if语句有些繁琐{case 1:game();//游戏主体,下面会写到break;case 0:printf("退出游戏\n");break;default:printf("输错啦,请重新输入\n");//应对输错情况break;}} while(input);//0为假,非0为真,所以借input判断循环是否执行return 0;
}

ps:第一次写技术类博客,还有很多地方需要改正完善,望各位大佬可以指出我的不足。


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

相关文章

C语言编写2048小游戏

一、原理 这里以向上移动为例&#xff0c;其他方向的移动类似。 因为纵向移动不会横向变化&#xff0c;所以可以单独拿出某一列来分析。 我们先假设一个具有代表性的例子&#xff0c;假设当前某列数据是【2】【0】【2】【8】&#xff08;0代表空白&#xff09;&#xff0c;如…

Linux C语言编写2048小游戏

2048 2048小游戏是用Linux C语言写的&#xff0c;运行在Ubuntu系统上&#xff0c;其中Ubuntu链接Ncuses库。首先&#xff0c;我们简单了解一下Ncurses。 Ncurses库是由原CURSES库发展而来的&#xff0c;这个库提供了C/C对屏幕以及光标、鼠标访问的特性。使得C/C简易写屏成为可能…

C语言编写小游戏:MinesWeeper(扫雷)闯关版

《扫雷》&#xff1a;大众类的益智小游戏&#xff0c;游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子&#xff0c;同时避免踩雷&#xff0c;踩到一个雷即全盘皆输。 话不多说&#xff0c;我们直接进入正题。 首先&#xff0c;我们得给用户显示一个菜单栏&…

(C语言)用C语言编写小游戏——三子棋

目录 三子棋效果展示 三子棋的功能实现 1、初始化棋盘格 2、打印棋盘 3、玩家下棋 4、电脑下棋 5、判断输赢&#xff08;玩家赢/电脑赢/平局&#xff09; 完整代码展示 三子棋小游戏的代码实现分为三个文件&#xff0c;test.c&#xff08;测试游戏功能&#xff09;、ga…

c语言编写的小游戏(c语言编写小游戏入门)

C语言编写是要注意什么&#xff1f; 因此&#xff0c;在编写选择语句之前&#xff0c;应该首先明确判断条件是什么&#xff0c;并确定当判断结果为“真”或“假”时应分别执行什么样的操作(算法) c语言编写小游戏请提供俄罗斯方块&#xff0c;坦克大战之类的小游戏的程序的c 应…

(C语言)用C语言编写小游戏——扫雷

目录 扫雷效果展示 扫雷的功能实现 1、初始化棋盘格 2、 打印棋盘 3、布置雷 4、排查雷 完整代码展示 扫雷小游戏的代码实现分为三个文件&#xff0c;test.c&#xff08;测试游戏功能&#xff09;、game.h&#xff08;头文件的包含和函数的声明&#xff09;、game.c&…

详解5个C语言简单易懂小游戏

文章目录 前言一、准备工作二、游戏菜单三、游戏内容1.猜数字2.三子棋3.扫雷4.五子棋5.飞行棋 总结 前言 我们通过5个简单易懂的小游戏来加强我们对C语言的认识&#xff0c;这五个小游戏不仅有单人&#xff0c;还有人机对战和人人对战。让我们在学习之余来上一局紧张刺激的小游…

C语言趣味小游戏——扫雷(详解版)

前言 ​ 全篇无任何废话&#xff0c;本文的解释大多数都在代码段中&#xff0c;所以一定要看代码&#xff0c;边看边学边理解。 这只是初学者入门的一个小游戏&#xff0c;不难懂&#xff0c;没有什么复杂的内容 可以先学习一下比扫雷还简单的猜数字和三子棋 C语言趣味小游戏—…

C语言小程序游戏

c语言小程序游戏 ​ 本代码是我大一刚学完c语言自己编写的&#xff0c;三个游戏分别是飞机竞速、走迷宫和魔塔&#xff0c;满满的都是回忆。 1、不可能的任务-飞机竞速 ​ 这种游戏在以前小时候玩的游戏机里面玩过&#xff0c;那时抱着个游戏机一玩就是一下午&#xff0c;如…

C语言简易小游戏

文章目录 前言一、猜数字游戏二、旋转光标三、多个字符从两端移动&#xff0c;向中间汇聚四、恶搞&#xff1a;关机小程序五、闪烁的五彩爱心六、扫雷七、三子棋 前言 本篇博客将带领大家自己动手写一下一些C语言小游戏&#xff1b;以增加对于C语言的兴趣&#x1f600;&#x…

c语言成绩管理系统(链表)

C语言实现了学生成绩管理系统&#xff0c;可以进行学生成绩的增加&#xff0c;删除&#xff0c;修改&#xff0c;查询&#xff0c;计算平均成绩和展示。 开发语言&#xff1a;C语言 开发工具&#xff1a;Dev c 开发者&#xff1a;呵呵up 创建学生成绩信息 2. 插入学生信息 3.…

C语言实现学生成绩管理系统设计

本系统有增加学生记录、修改学生记录、删除学生记录、按姓名查询学生记录、按C语言成绩对学生进行排序、退出系统6大功能。 能够对学生的姓名&#xff0c;学号&#xff0c;c语言成绩做相应的操作。 在检测到输入成绩大于55时&#xff0c;会自动加上5。 该管理系统设计功能模块…

c语言成绩管理系统常见错误,求教 学生成绩管理系统出错

已结贴√ 问题点数:20 回复次数:5 求教 学生成绩管理系统出错 小弟刚做了个学生成绩管理系统 编译无错误 但是运行的时候连选择函数都不能 特来求教 望高手解释 代码如下: #include #include #define N 20 #define M 100 struct score {int scr1; int scr2; int scr…

c语言课程设计 学生成绩管理系统

学生成绩管理系统要求&#xff1a; 1、系统功能以菜单方式工作&#xff1b; 2、数据的输入&#xff1b; 3、数据的插入&#xff1b; 4、数据的输出&#xff1b; 5、数据的删除&#xff1b; 6、数据的查找&#xff0c;通常以两种方式进行查找&#xff0c;如姓名、学号&#xff1…

C语言学生成绩管理系统详解

文章目录 一、系统概述二、数据类型三、自定义函数说明四、运行界面五、源代码 源代码请直接跳到最后 引言&#xff1a;最近写了C语言的大作业&#xff0c;感觉做得还行&#xff0c;记录一下&#xff0c;给后人一些参考&#xff0c;给自己留更深印象方便后续改进&#xff01; …

学生成绩管理系统 C语言

基础篇问题&#xff1a; 1.输出如下菜单&#xff1a; *********************学生成绩管理系统******************* * 1 成绩录入 2 成绩查询 3 计算平均分 * * 4 计算最高分 5 排名 6 退出 * ******************************…

C语言编程学生成绩管理系统

目录 一、介绍 二、功能 1.录入学生 2.删除学生信息 3.修改学生信息 4.查询学生信息 5.所有学生信息 6.成绩排序 7.退出程序 三、代码 1.主函数 2.头文件 3.函数封装库 一、介绍 利用C语言&#xff0c;运用链表、指针、封装函数等基本知识实现一个学生管理系统。通…

C语言学生成绩管理系统

制作学生成绩管理系统&#xff0c;可以实现以下功能&#xff1a; 每条记录包括&#xff1a;学号、姓名、专业和5门课程的成绩&#xff1b;能够实现添加、删除、修改功能&#xff1b;能够计算某学生的总分和平均分&#xff1b;能按照总分排序输出&#xff1b; 利用C语言的基本…

c语言成绩管理系统

关注微信公众号每日新觉&#xff0c;私聊作者获取提取密码点击下面链接&#xff0c;私聊作者获取提取密码。https://mp.weixin.qq.com/s/QgRQ3YB2JqCvNOGQHQ57rA 作者每日新觉&#xff0c;是一名热爱技术和编程的年轻程序员。他在计算机科学和软件工程领域有着广泛的研究和实践…

c语言成绩管理系统1.0,c语言成绩管理系统完整附源码v1.0 免费版

c语言成绩管理系统拥有和hello word一样的江湖地位&#xff0c;初学C语言的朋友基本都会从管理系统开始入手学习&#xff0c;对于很多大学生来说更是如此&#xff0c;今天为大家带来的这款系统以及源码希望能对大家学习学C语言有所帮助&#xff0c;欢迎下载使用。 C语言介绍 C语…