用C语言写一个猜数字的小游戏

刚学了C语言的一些知识,想尝试着写一个猜数字的小游戏,可能不太完善,有错误的地方还请大佬指出。

目录

1.菜单

2.选择

3.game

4.全部代码如下


1.菜单

主函数不用写过多的内容,一般写出布局,具体的交给函数来进行即可。

既然是游戏,那就要有一个菜单来让玩家进行选择,因此可以写一个menu函数来实现

void menu()
{
	printf("**********************\n");
	printf("****  1.开始游戏  ****\n");
	printf("****  0.退出游戏  ****\n");
	printf("**********************\n");
}

因为不需要返回值,所以可以直接用void。

2.选择

玩家可以根据菜单来选择,所以需要用scanf让玩家输入,然后根据输出的值进入下一步。

do
	{
		menu();
		printf("请输入:>");
		scanf("%d", &x);//输入选择
		switch (x)
		{
		case 1: game();//game函数实现玩法
			break;
		case 0:printf("已关闭游戏");
			break;
		default: printf("输入错误,请重新输入\n");
		}
		if (x == 0)
			break;//退出游戏
	} while (1);

因为有多种输入可能,所以可以用switch来进行判断,其中game实现怎么玩。

3.game

        下面来写game函数,既然是猜数字,那就要随机产生一个数字供玩家猜测,这里涉及了一个函数-rand(),该函数可以随机产生一个数字

printf("%d\n", rand());

         但是经过测试会发现,无论怎么产生随机数,再来一次总是重复这几个数字这就需要在rand前引用srand函数,但是srand函数又需要一个随机值才能让rand生成随机值这时可以用时间戳来实现;至于时间戳,不懂得可以百度一下,它产生的数字总是在变化,所以可以放入srand中。

srand((unsigned int)time());

        

 为了可以得到1到100的数字,可以取余100加1实现;

printf("%d\n", rand()%100+1);

        

         既然已经找到了可以产生随机数的方法,接下来就可以写玩法了,其实很简单,可以用if判断来实现。

void game()
{
	int x, num;
	x = rand()%100+1;//产生随机数
	//进行猜测
	do
	{
		printf("请输入:>");
		scanf("%d", &num);
		if (num > x)
			printf("猜大了\n");
		else if (num < x)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	} while (1);

}

4.全部代码如下

//猜1-100之间的数字
#include<stdio.h>
#include<stdlib.h>
#include<time.h>


void menu()
{
	printf("**********************\n");
	printf("****  1.开始游戏  ****\n");
	printf("****  0.退出游戏  ****\n");
	printf("**********************\n");
}

void game()
{
	int x, num;
	x = rand()%100+1;//产生随机数
	//进行猜测
	do
	{
		printf("请输入:>");
		scanf("%d", &num);
		if (num > x)
			printf("猜大了\n");
		else if (num < x)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对了\n");
			break;//退出循环,回到主函数
		}
	} while (1);

}

int main()
{
	int x;
	srand((unsigned int)time(NULL));//用于产生随机数字,在rand前
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &x);//输入选择
		switch (x)
		{
		case 1: game();//game函数实现玩法
			break;
		case 0:printf("已关闭游戏");
			break;
		default: printf("输入错误,请重新输入\n");
		}
		if (x == 0)
			break;//退出游戏
	} while (1);
	return 0;
}

当然,为了美观一些;也可以用system(“cls”)和sleep()等方法来构造更完美的程序。

初学C语言,如有错误还请大佬指正。

猜你喜欢

转载自blog.csdn.net/m0_65159275/article/details/122523105