用C语言完成猜数字小游戏

猜数字小游戏是我人生中第一次写的游戏,通过这个游戏初步理解到了C语言的趣味性以及简单游戏的基本框架,有点激动,废话不多说先把代码贴出来:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("***************************\n");
	printf("**欢迎来到浪哥猜数字游戏***\n");
	printf("******1.进入游戏***********\n");
	printf("******2.退出游戏***********\n");
	printf("***************************\n");
	printf("***************************\n");
}
void game()
{
	int input = 0;
	int randnumber = rand() % 100 + 1;
	while (1)
	{
		printf("请输入你要猜的数字,1-100以内哦:");
		scanf("%d", &input);
		if (input < randnumber)
		{
			printf("猜小了\n");
		}
		if (input>randnumber)
		{
			printf("你猜大了\n");
		}
		if (input == randnumber)
		{
			printf("猜对了!\n正确答案就是%d!\n", randnumber);
			break;
		}
	}
}
int main()
{
	int input = 0;
		srand((unsigned int)time(NULL));
		do{
			menu();
			printf("请输入操作:");
			scanf("%d", &input);
			switch (input)
			{
			case 1:
				game();
				break;
			case 2:
				printf("退出游戏");
				break;
			default:
				printf("兄弟你到底要干嘛,进游戏输1、退游戏输2啊!\n:");
				break;
			}
		} while (1);
		return 0;
}

嘿嘿 不要太在意菜单的问题啦我本人名字里有浪这个字所以朋友都叫浪哥

废话不多说我们来看这个程序。首先C语言游戏基本都有一个框架,这个游戏在main函数里的框架就是使用了一个do-while语句来进行。这样在游戏结束完一次之后会立马重新开始,快乐不止嘿嘿嘿。

在main函数之外将各个板块用函数的形式写了出来,比如开头的menu函数,就是一个基本的菜单。其实这个菜单也可以直接写到主函数里,但是写成函数更加清楚明了而且美观。

接下来就是本游戏核心的game函数

		if (input < randnumber)
		{
			printf("猜小了\n");
		}
		if (input>randnumber)
		{
			printf("你猜大了\n");
		}
		if (input == randnumber)
		{
			printf("猜对了!\n正确答案就是%d!\n", randnumber);
			break;
		}
	}
}

对了,顺便说一下,以上的game函数和menu函数都是不需要返回值的,所以直接用void定义,省力,美观。

要想猜数字,首先得生成一个随机数字,这里我们调用了rand函数,这是一个可以生成随机数的函数,我们在MSDN或者cplusplus网站上查阅会发现包含这个函数的头文件是<stdlib.h>,那么紧随其后<time.h>是什么意义呢?

这里需要注意,在c语言中调用库函数生成随机数其实并不是真正意义上的随机,因为它每次产生的随机数都是一样的,那么这个游戏就毫无意义了,为了避免这个问题,我们就需要调用头文件<time.h>所包含的函数srand((unsigned int)time(NULL)),这个函数的目的是形成随机数的种子数,是根据1970年起的windows时间戳来进行随机了,把这个函数放在主函数里,就保证了数字的随机性。

需要注意的是srand函数参数的类型是unsigned int型,而time函数并不是,所以这里我们需要把time(NULL)的值类型强转为unsigned int型。

再多说一句,这个time函数后面的参数之所以是NULL,是因为time函数并不需要返回值。

接下来再看这个程序的主函数,开头的do-while语句就是因为要保证游戏结束后再来一遍再玩一遍啦,而在do-while语句内部使用了一个switch语句,即当玩家输入菜单中的对应选项数字之后,就会进入相应的case来调用函数,开始游戏或者退出游戏尽在掌握。

总结一下这是我写的第一个游戏,感受到了c语言的趣味性,有了小小的成就感,虽然自己写的这个游戏还有很多可以优化的地方,但是已经相当开心了,加油!希望以后可以写出更棒的游戏!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值