您当前的位置:首页 > 计算机 > 编程开发 > 数据结构与算法

猜数游戏(GAMBLER)

时间:01-14来源:作者:点击数:
CDSY,CDSY.XYZ

解题:

1.电脑要拿到一个用户不知道的数字

2.用户猜数,电脑告知数字大了,小了并在用户猜对后结束循环告知猜的次数(switch语句针对不同次数做出不同态度)

算法部分:

首先给电脑赋一个随机且有范围的值

用随机函数:

int a = rand() % n+a;

第二步:

循环猜数

用while函数循环(当用户猜对时结束循环)

while(a!=b)

{}

第三步:

根据用户猜的个数分情况表示

用switch函数

完整代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	int b=0, n = 0;
	srand((unsigned)time(NULL));
	int a = rand() % 101 + 0;
	printf("欢迎来到实力至上主义的魔塔\n");
	printf("正在进入第一层...\n");
	printf("GAMBLER:既然来到这里,不如现在就让我们玩一个猜数游戏吧,看你是新手玩家我就大发慈悲的告诉你吧:范围是[0, 100]\n");
	while (a != b)
	{
		printf("请您出招:\n");
		scanf("%d", &b);
		if (a > b)
		{
			printf("你猜错了,小了,哈哈哈\n");
			n++;
		}
		else if (a < b)
		{
			printf("你猜错了,大了,哈哈哈\n");
			n++;
		}
		else
			printf("怎么会,不可能,你居然猜中了,我不能接受,啊啊啊\n既然如此,只能接受事实了,我败给你了,勇者\n跟着我征战多年的宝物就送给你了,加油吧勇士!打败最终章的魔王吧\n");
	}
	switch (n)
	{
	case 0:
		printf("GAMBLER消失\n掉落S级物品:时间戒子\n使用对象:人类及类人类\n作用范围:仅在时间制裁领域内使用\n作用效果:延长一倍时间(冷却时间:1G_Time)\n特殊效果:可逃脱一次时间制裁(仅限一次且用完即消失)\n"); break;
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("GAMBLER消失\n掉落A级物品:奖励纽扣(特殊物品)\n使用对象:穿有自带纽扣的上衣\n使用范围:有奖励机制且获得奖励时方可使用\n使用效果:获得奖励时与GAMBLER进行猜拳游戏,获胜即可再次任意挑选低级的奖励(冷却时间:2G_Time)\n使用方法:用力拍打胸口并用爱的力量大声喊出“勇敢纽纽,不怕困难”\n"); break;
	case 6:
	case 7:
	case 8:
	case 9:
	case 10:
		printf("GAMBLER消失\n掉落B级物品:惩罚猫猫(咪咪)\n使用对象:猫猫有好感度\n使用范围:有惩罚机制时且被惩罚\n使用方法:脱下鞋用脚去熏咪咪并声情并茂地唱“我熏熏咪咪~熏熏咪咪	一个温暖的怀抱  这样的要求~算不算高”\n作用效果:二选一,选项一:免除此次惩罚;选型二:选择一位与你最近的玩家一起受到惩罚(冷却时间:2G_Time)\n"); break;
	default:
		printf("GAMBLER消失\n掉落F级物品:黄色皮肤\n使用对象:不限\n作用效果:让你的身体更鲜艳,在面对MOSTER时更加勇敢更加有力量(可能?)\n");
	}
	return 0;
}

数据结构:

a:随机给出的一个在[0,100]的数

b:用户猜的数

n:switch函数需要使用的用户猜数次数

程序使用了三个函数:

1.随机数函数:

头文件:

#include<stdlib.h>

#include<time.h>

函数:

srand((unsigned)time(NULL));

int a = rand() % 101+0;//%后面加数字是定义取值范围 int a=rand()%n+a 。a是起始值,n+a-1是终止值。所产生的数范围是[a,n+a-1]

第一行是,因为只有第二行代码显示的只是伪随机数,每次程序运行都是同一个值(它是根据一个数(种子)演算后得到的值,计算机开机后种子的值不会改变)

只有有第一行代码来破坏系统改变种子的值,最后演算后产生的才是真正的随机数(我也讲不怎么明白)

2.while函数

不做介绍,但是在改进这个程序时可以改用for()函数进行次数限定(简单说就是闯关限定次数)

3.switch函数

switch函数的实质就是进化版的if函数,繁琐的if{}else if{} else if{}改进过来的

简单说就是根据一个数值来挑选不同的路径

男生(0)走男厕(一条路径)

女生(1)走女厕(一条路径)

在我写的函数中,程序根据勇士猜数的次数来分发不同的奖励(大概是这样)

思考:

在学习C语言的过程中我发现了原来C语言和我们密切相关,以前看到什么什么游戏很火觉得这个东西很高大上,怎么会有人发明了这种东西,到底是怎么做到的

今天在写猜数游戏时突发奇想搞了个类似以前勇士打怪拯救公主的闯关模式(粗制滥造)

写的时候很开心,被我的中二之魂笑到了,我把以前的搞笑段子加了进去(边写变笑),做完之后突然发现我挺幽默的,哈哈。可能这就是C语言的魅力吧,我可以在里面创造我自己想象的世界,这个世界是美好的充满幻想的(有种《我的世界》的感觉诶),这些让我感觉到我还是那个中二少年(不想长大),完成年少未曾实现的梦补缺不完美的记忆,里面有伙伴有家人有我喜欢的人,我们一起面对困难打败魔王,失败时我们相互安慰,成功时我们一起庆祝,生活不应该只有这些令人烦躁的东西。

我们住在同一栋大房子里面,白天我们一起去打怪,晚上我们一起在一张大圆桌上吃饭。大家吵吵闹闹,谈论今天打到什么怪啊,今天又有谁得到什么宝物还有谁谁谁又闹了笑话,打野猪被草绊倒摔倒了,外婆今天的排骨汤好美味哦,邻居的小萝莉又过来蹭饭来了......吵吵闹闹却不让人觉得心烦。我们一起唱歌啊一起笑一起哭一起闹,简简单单的时光就这样过去了......

今天咪咪生日。白天咪咪看起来心事重重,打怪的时候也不专心,被草绊倒了害的大家今天没抓到野猪(因为咪咪跌进泥沼了大家先救了咪咪然后野猪就跑了)。她看起来想要和大家说些什么事诶,张口却不知道说些什么。今天咪咪不开心。夜晚,大家像往常一样在桌子上吃饭,可是咪咪没有什么胃口,吃了几口就下桌了。在回到房间的时候她还望了一眼热闹的餐桌心里想着“热闹都是他们的,我什么都没有”。咪咪气鼓鼓。生气的咪咪回到房间闷头大睡。夜晚,咪咪被外面吵醒了,正生着闷气的咪咪迷迷糊糊地打开了房门,却被外面吓了一跳,外面全是青蓝色的光,“难道是之前我们打败的的青萤王来夜袭我们了?”咪咪赶忙跑到每个房间门前拍打门“青萤王来了,青萤王来了大家快跑啊”屋子内静悄悄,咪咪来不及多想,赶忙打开屋子的大门想着“这次就由我来保护大家吧!”

“SURPRISE”一声声带着浓厚乡村口音的英文伴随着一张张笑脸迎面扑向咪咪,咪咪被吓住了。“这到底是怎么回事,青萤王呢”咪咪清醒后脱口而出。“当然是被我打跑了”匹诺曹嬉皮笑脸的说道,“皮诺曹你的鼻子变长了”仙女笑道。“这都是我们为你举办的惊喜PARTY啦”头戴铁盔的勇者说道。

说着,香吉士将蛋糕端上来了“这上面有你最喜欢吃的圣女果和西瓜哦,我做了一个晚上呐”香吉士伸着修长的大腿边抽烟耍酷道。

“那这些萤火虫呢?该不会是青萤王送来的吧!”咪咪问道."BIGON答对了我的小可爱,青萤王的赔礼,他还躲在角落一边偷看你呢"白井黑子左手偷着上面的草莓说道。“bang”御坂美琴用力敲打黑子的头,“那么HAPPY BIRTHDAY,咪咪”。“HAPPY BIRTHDAY”大家举手高呼着。咪咪用衣袖擦着眼泪道“大家,大家,我还以为大家把我的生日忘了呢。谢谢大家,谢谢大家!” “快许愿吧咪咪,要不然路飞和匹诺曹那群家伙就要把蛋糕吃完了”仙女的脸上也有着蛋糕印却毫不脸红说教路飞他们。咪咪点了点头,闭上眼睛许愿道“我今天很开心, 我有这么一群爱我的人在我的身边,神啊,我什么都不要,我只要他们永远在我的身边就好了,我愿青春不落幕。”

今天咪咪很开心。

可能这就是我希望的人生吧。写到这里我有些感怀,原来我的人生就过去了五分之一了(如果说我能活到100岁....)很多美好的时光已经过去了,那些曾经陪伴我的人也不在身边了。他们有他们的路要走,命运的交界线什么时候才会再次到来?本以为是暂时的别离,等走了这么久之后回头看看才知道当初的再见已是再也不见。别了,朋友。

写在最后的话(嘿嘿):说实话,写这些的时候我很开心,虽然还是有点羞涩(这TM也太中二了吧!我是小学生么,怎么写出这么二的话来?)不过还是蛮满足的

最后希望屏幕前的你能静下心来多看看这世界,这个世界还是挺美的。

祝大家天天开心,开心每一天!

(一次猜中太难了就不截图了,GAMBLER就是个无情的哈哈哈机器(*^▽^*))

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门