猜数字游戏

       大家好,我是一个刚学习C语言的小小白,怀着激动的心情,今天第一次写博客,以后我也会坚持写代码。在写的过程中肯定会有不好的地方,但是我相信我会逐渐完善的,努力给大家带来高质量的文章,同时也希望对自己学习C语言有更大的帮助。

下面就步入正题了。今天我给大家带来的是一个比较简单的小游戏的代码,也就是猜数字游戏。在写一个代码的时候我们首先要有一个主要的构思,比如“这个游戏该怎么玩”、“内容是什么”、“有没有什么模板”等等。关于这个游戏,我们的构思是电脑随机生成一个1~100之内的数,然后我们进行猜测,当我们猜的数大于这个数,电脑提示我们猜大了;当我们猜的数小于这个数,电脑提示我们猜小了;当我们猜的数刚好等于这个数,电脑告诉我们猜对了。因为这个游戏确实很简单,所以有这些构思就可以开始写代码了,在写的时候再处理一些问题,考虑其中的细节。

1.首先我们写主函数。在主函数里,我们希望一开始就有一个游戏菜单告诉我们玩或者不玩游戏,这里我们可以用do...while函数实现,在do...while函数中我们会放入游戏的运行代码。然后我们输入一个数就可以继续接下来的操作比如说这样一个菜单:

    ******************************
    ****    1.play     0.exit   ****
    ****************************** 

 我们输1就是玩游戏,输0就是退出游戏,输0、1之外的数电脑会提示我们输入错误,再次选择,这个过程我们可以用switch函数实现。下面是主函数的代码:

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("只能选择1或0,请重新选择\n");
			break;
   }
		} while (input);
   
    return 0;
}

这是menu()函数的代码:

void menu()
{
	printf("******************************\n");
	printf("***    1.play     0.exit   ***\n");
	printf("******************************\n");
}

我会继续解释里面的相关细节:

  • 这里我们会看到一个srand函数,它是来干什么的呢?一些像我一样的小白可能刚开始并不知道这个函数的作用,其实它是和我们接下来在游戏的运行代码里的rand函数相搭配以生成一个随机数,因为我们这个游戏需要电脑刚开始生成一个随机数,然后我们再来猜数字。因为我也是小白,我就对这两个函数不做过多的解释了,以免误导大家。我直接把相关的链接留下,大家自己去看官方的解释。

       rand函数   https://zh.cppreference.com/w/c/numeric/random/rand​​​​​​​​​​​

       srand函数  https://zh.cppreference.com/w/c/numeric/random/srand 

  • 为什么while函数后面用直接用(input)。这里也算是一个小技巧吧,因为在菜单里我们用1表示进入游戏,除0、1之外的数表示输入错误。当我们输入的数不是0时,input就不是0,这样while就会判断input为真,再次进入do...while循环;当输入0时,判断input为假,跳出循环,便会达到我们的目的。

2. 在主函数里我们输入1就会进入game()函数进行游戏,这里的game()函数也相对来说比较简单,我就直接给出它的代码:

void game()
{
	int ret = 0;
	int guess = 0;
	ret = rand() % 100 + 1;

	while (1)
	{
		printf("请猜数字>:");
		scanf("%d", &guess);
		if (guess > ret)
			printf("猜大了\n");
		else if (guess < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}
  • 刚才我们非常简单地介绍了rand函数和srand函数,在这里我们知道rand函数会给电脑一个随机数 ,如果我们要这个随机数的范围在1~100之间我们需要让rand模上100在加1。为什么不直接用rand呢,因为rand给出的随机数范围是0~RAND_MAX。我也直接给出RAND_MAX的链接吧。

        RAND_MAX   https://zh.cppreference.com/w/c/numeric/random/RAND_MAX

  • 其它的我觉得应该不用再介绍了吧,如果还需要再介绍的话就是我们要注意引用rand函数和srand函数后要加上它们各自的头文件。rand的头文件是<time.h>,srand的头文件是<stdlib.h>,这些信息在链接里都能找到。

 3.下面就是游戏完整的代码:

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <stdlib.h>
#include<time.h>

void menu()
{
	printf("******************************\n");
	printf("***    1.play     0.exit   ***\n");
	printf("******************************\n");
}

void game()
{
	int ret = 0;
	int guess = 0;
	ret = rand() % 100 + 1;

	while (1)
	{
		printf("请猜数字>:");
		scanf("%d", &guess);
		if (guess > ret)
			printf("猜大了\n");
		else if (guess < ret)
			printf("猜小了\n");
		else
		{
			printf("恭喜你,猜对了\n");
			break;
		}
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		menu();
		printf("请选择>:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("只能选择1或0,请重新选择\n");
			break;
   }
		} while (input);
   
    return 0;
}
  • 因为我用的VS编译器,所以在上面加了#define _CRT_SECURE_NO_WARNINGS进行声明。 

 4.最后向各位跟我们一样刚开始学习C语言的小白分享一个学习C语言的官方网站,上面的几个链接都是来自这上面,此网站还为中文界面,对像我这样英语不好的人很是友好。

    cppreference网站  https://zh.cppreference.com​​​​​​

以上就是本次的内容,希望我们会越来越好 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值