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

12 篇文章 3 订阅
订阅专栏

目录

前言

一、游戏描述

二、代码实现

1.生成游戏菜单

2.构建主函数 

3.构建游戏函数 

三、二分法实现猜数

代码附上:

写在最后:


前言

猜数字小游戏是我们大多数人学习C语言时都会了解到的一个有趣的C语言小游戏,下面我将详细介绍该游戏的实现和编程逻辑。并用二分法速通该小游戏。玩小游戏的同时,也能对C语言控制语句有更好的认识。


一、游戏描述

游戏内容

顾名思义,该程序让系统随机生成一个0-100的整数,让玩家来猜,玩家猜数字后,系统给予玩家回馈并且统计玩家猜的次数,直到玩家猜对为止。

游戏方法

1、生成游戏菜单 1. play(进入游戏) 0. exit (退出游戏)
2、使用循环语句,构建游戏框架,使玩家可以进行多次游戏,直到猜对为止。
3、设计游戏具体思路,使系统生成一个随机数,让玩家输入一个数字,然后两个数字对比,根据系统反馈信息,逐渐锁定目标。

二、代码实现

1.生成游戏菜单

(1)  void menu()

                                                                                                                                                                                                                                                                (2)效果显示

2.构建主函数 

int main()函数

使用 do--while() 循环,玩家进行多次猜数。用switch语句,控制玩游戏还是,退出游戏。

有时程序需要一个规定范围内的随机数。要将随机数的范围限制在 1 和某个最大值 max 之间的整数,可以使用以下公式:
number = rand() % max + 1;
例如,要生成 1-10 的随机数来代表骰子的点数,则可以使用以下语句:
dice = rand() % 610+ 1;
 

3.构建游戏函数 

游戏效果演示 :

三、二分法实现猜数

如果使用二分法进行猜100以内的任何一个随机数,最多七次就可以正确猜对该随机数。

二分法又可以被称为二分查找,它描述了在有序集合中搜索特定值的过程。广义的二分查找是将问题的规模尽可能的缩小到原有的一半。

程序通过 二分法不断缩小猜测范围, 直到猜中n
例如n = 93
程序第一次猜测50, 判断数值太小
第二次猜测75,判断数值太小
第三次猜测87,判断数值太小
第四次次猜测93, right
如果93不对,我们还能继续根据反馈缩小范围,最多七次就可以猜对答案

代码附上:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>//time系统时间头文件 
void menu()//创建游戏菜单 
{
	printf("**************\n");
	printf("****1.play****\n");
	printf("****0.exit****\n");
	printf("**************\n");
 } 
void playgame()
{
	int magic=rand()%100+1;//随机一个1-100的整数 
	int guess;
	int counter=0;//计数器,初始为0 
	while(1)
	{
		do{
		    printf("请猜一个数字:");//提示用户进行猜数字游戏,输入一个整数
		    scanf("%d",&guess);
		    counter++;
		    if(guess>magic)//根据比较结果,提示用户高了,低了,或是猜对了.
		    printf("太大了!\n");
		    else if(guess<magic)
		    printf("太小了!\n");
		else
		    printf("right!\n");	 
	    }while(guess!=magic);
	printf("您一共猜了%d次,你真是太棒了!\n",counter);
	}		
}
int main()
{
	int input=0;
	srand((unsigned int)time(0));//time(0)得到的是时间戳,对应头文件#include <time.h>
	do{
		menu();
	    scanf("%d",&input); 
	    switch(input)
	    {
	    	case 1:
	    		playgame();
	    		break;
	        case 0:
	        	exit(0);
	        	break;
	        default:
	        printf("输入错误!\n");
		}
	}while(input);
	return 0;
}

写在最后:

博主大一实力有限,内容仅供参考,欢迎大家在评论区和我交流!

以后会经常发有趣的小游戏,和学习心得,感兴趣的小伙伴可以点个关注支持一下

C语言——数字游戏
卷成小麻花的博客
10-16 2万+
用C语言写一个简单的数字游戏
C语言实现数字游戏
12-31
数字游戏。 二、 程序 使用srand((unsigned)time(NULL)),产生随机数种子。 int random = rand() 0 + 1,产生0~100之间的随机数。 应加上头文件#include #include #include #include void menu(){ printf(######...
C语言数字游戏详解
weixin_67913271的博客
08-19 1万+
1.我们需要电脑生成一个随机数2.玩家进行数字3.玩过一次可以再玩一次,那么至少要进去一次,可以使用do...while循环。
提供几种流行编程语言中的简单“数字游戏代码示例。
最新发布
SherryMacadam的博客
05-04 248
System.out.printf("恭喜你,对了!Console.WriteLine($"恭喜你,对了!guess = parseInt(prompt("一个1到100之间的数字:"));System.out.print("一个1到100之间的数字: ");guess = int(input("一个1到100之间的数字: "))Console.Write("一个1到100之间的数字: ");System.out.println("太小了!System.out.println("太大了!
C语言入门小游戏——数字游戏详解
十一要变强
12-01 2179
在做数字游戏之前我们先来了解rand函数:rand函数是专门用来生成随机数的,他对应的头文件是 rand函数返回的是0-rand_MAX(0-32767)之间的一个随机数。
【C语言游戏数字游戏
青色_忘川的博客
10-28 4926
数字游戏的7000字详细讲解
【c语言】c语言实现数字游戏
m0_74791604的博客
01-23 866
c语言实现数字游戏
C语言程序设计————数字游戏
m0_74921799的博客
10-31 740
这是因为rand函数生成的是伪随机数,不是真实的随机数,它是一个叫"种子"的基准值运算生成的随机数。程序在调用rand函数之前先调用srand函数,通过srand函数的参数seed来设置rand的种子,这样种子发生了改变,就可以生成真实的随机数。通过上述函数生成的随机数的范围是0到32767,要想得到0到100的随机数,可以使生成的随机数除100得到的余数加1,即随机数%100+1。数字比随机数小,在屏幕上打印"小了″,数字与随机数相等,在屏幕上打印"恭喜你,对了″。
C语言实现 数字 游戏程序
04-24
C语言实现 数字 游戏程序。本程序包含两份源程序,一类是函数+评星级程序,一类是函数+文字提示描述程序,可供选择。
C语言实现数字游戏
12-23
本文实例为大家分享了C语言实现数字游戏的具体代码,供大家参考,具体内容如下 代码如下 #include #include #include //rand为产生随机数的函数 void game() { srand((unsigned)time(NULL)); int key = (int...
c语言实现数字游戏
07-29
本文给出用c语言实现数字的小游戏,感性趣的朋友可以参考下。
游戏的C语言
07-02
C语言的编程,游戏三次没中就结束!
C语言没程序设计数字游戏源代码
06-24
计算机随机产生一个四位数,然后玩家这个四位数是什么。每一个数,计算机都会告诉玩家对几个数字,其中有几个数字在正确的位置上。
用C语言实现数字游戏
12-16
本文实例为大家分享了C语言实现数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行数字,当用户错时,提醒用户高/低,直到用户数字与计算机给的随机数一致时,提示...
用C语言实现数字游戏(代码+注释)
Russ_Leo的博客
07-27 382
【代码】用C语言实现数字游戏(代码+注释)
Python代码实现一个简单的数字游戏
billjiang2008的专栏
05-06 7851
运行代码后,程序会随机生成一个1到100之间的数字,然后提示用户这个数字是多少。用户每次测后,程序会告诉用户数字是大了还是小了,直到用户对为止。对后,程序会显示用户了多少次,并结束游戏。guess = int(input("你这个数字是多少?print("你了", tries, "次。print("我已经想好了一个1到100之间的数字。print("小了。print("大了。print("恭喜你!print("欢迎来到数字游戏!print("游戏结束。
Java实现数字游戏 简明 易懂 完整代码
热门推荐
qq_50916191的博客
01-06 4万+
生成随机数Random() 用户输入Scanner() 实现进入游戏的选择菜单
C语言习题练习2--循环
m0_47017197的博客
11-05 837
4. 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则 提示登录成,如果三次均输入错误,则退出程序。//break只跳出循环,不跳出if,break跳出了while。1)编写代码,演示多个字符从两端移动,向中间汇聚。1. 能被4整除,并且不能被100整除是闰年。对了,程序员会告诉你:恭喜你,对了。2)程序员生成一个1-100的随机数。小了,程序会告诉你小了,继续大了,程序会告诉你大了,继续。1. 计算n的阶乘。2)实验法--计算量大。
数字游戏的代码及总结
m0_61438674的博客
05-23 406
数字游戏
用c语言进行数字游戏
06-11
好的,数字游戏的规则是这样的: 1. 程序会随机生成一个1到100之间的整数,玩家需要出这个数字是多少。 2. 玩家每次可以输入一个1到100之间的整数,程序会告诉玩家的数是偏大还是偏小。 3. 如果玩家中了这个数字,程序会告诉玩家对了,并且显示玩家了多少次。如果玩家没有在10次内中,程序会提示玩家失败,并显示正确的数字。 下面是用C语言实现数字游戏的代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int target, guess, count = 0; srand(time(NULL)); // 设置随机种子 target = rand() % 100 + 1; // 生成1~100之间的随机数 printf("数字游戏开始!\n"); do { printf("请一个1~100之间的整数:"); scanf("%d", &guess); count++; // 测次数加1 if (guess > target) { printf("的数偏大了!\n"); } else if (guess < target) { printf("的数偏小了!\n"); } } while (guess != target && count < 10); // 中或者测次数过10次就退出循环 if (guess == target) { printf("恭喜你对了!你了%d次。\n", count); } else { printf("很遗憾,你没有在10次内数字%d。\n", target); } return 0; } ``` 注意:此代码只是一个简单的实现,没有做输入错误的处理和游戏结束后是否继续的判断等。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C语言基础期末复习题(带详解答案) 70390
  • C语言实现猜数字游戏(超详解) 53161
  • 纯HTML+CSS网页设计期末作业 13561
  • C语言实现关机功能(超详解) 10225
  • 简述JDK,JRE,JVM的关系 8819

分类专栏

  • 个人成长 1篇
  • c语言期末考试快速复习 5篇
  • JAVA基础 8篇
  • C语言经典例题 13篇
  • C语言基础 12篇

最新评论

  • 纯HTML+CSS网页设计期末作业

    2301_80390606: 哥 可以发一下源代码吗

  • 纯HTML+CSS网页设计期末作业

    Patient.490: 私信了求源代码

  • C语言基础期末复习题(带详解答案)

    橘子味的日落95: 是的c语言用的是边界对齐,底层不是总和

  • C语言每日一练- - -猴子摘桃

    楠苑花开: 应该得循环10次,1534是第一天剩下来的桃子数

  • C语言实现关机功能(超详解)

    2301_79797175: 我问一下,为什么,我不能输入中文?把时间调久一点才能用中文输入法

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 纯HTML+CSS网页设计期末作业
  • java简单例题实现工厂设计模式
  • 简述java递归实现汉诺塔
2022年35篇

目录

目录

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱德苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

聚圣源玩具文具零食怎么起店名保利华都户型图城起名给小孩怎么起名yahoojapan五福是哪五福一劳永逸给孩子起小名叫什么好b血型清洁公司起什么名好给wifi起个拉风名字给姓潘的女孩起名苹果7屏幕尺寸微师长相厮守女孩起名字大全2017清真面馆起名孝义新闻环保企业起什么名称好河南电视台民生频道直播高清如何从诗经楚辞中起名大全孩子起名黄安娜情欲史用水木起名字给男孩女孩起名字大全集微商怎样起店名当下的力量pdf商细蕊原型2013年2月9日给男宝宝起名孙淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化