C语言:小游戏之猜数字(升级版)

前言

        如果您是刚学习C语言不久,那么您完全可以用这个小游戏程序来练手!此程序包括了C语言中的循环语句等,可作为章节训练。

        那么就让我们进入正题吧!

代码呈现

废话不多说,先上代码!(VC++与VB6.0等可去掉#define行!)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
	int input = 0;
	printf("****************************\n");
	printf("********** welcome *********\n");
	printf("***** Produced by Ahao *****\n");
	printf("********** play(1) *********\n");
	printf("********** exit(0) *********\n");
	printf("****************************\n");
}
void game()
{
	int right = rand() % 100 + 1;
	int i;
	printf("请输入您所要的难度:>");
	scanf("%d", &i);
	while (1)
	{
		int guess = 0;
		printf("请输入猜测的数字(您还有%d次机会!):>",i);
		scanf("%d", &guess);
		if (guess < right)
		{
			printf("猜小了\n");
			i--;
			if (i == 0)
			{
				system("CLS");
				printf("很抱歉,次数已用完!\n");
				break;
			}

		}
		else if (guess > right)
		{
			printf("猜大了\n");
			i--;
			if (i == 0)
			{
				system("CLS");
				printf("很抱歉,次数已用完!\n");
				break;
			}
		}
		else
		{
			system("CLS");
			printf("恭喜你!猜对了!\n");
			break;
		}
	}
}
int main()
{
	srand((unsigned)time(NULL));
	int input = 0;
	do
	{
		menu();
		printf("请输入你的选择:>");
		scanf("%d", &input);
		if (input == 1)
		{
			system("CLS");
			printf("开始游戏!\n");
			game();
		}
		else if (input == 0)
		{
			system("CLS");
			printf("退出游戏!");
			break;
		}
		else printf("输入错误!请重新输入\n");
	} while (input != 0);
	return 0;
}

实现原理

分步解答一

        对于此程序需要用到time、srand、system等函数,因此我们必须引入特定的头文件,如下:

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

  注意:如果你使用的是更高级的编译软件,那么可能无法识别scanf函数,这时我们需要定义此函数,如下:

#define _CRT_SECURE_NO_WARNINGS 1

若编译器未提示出错,那么您完全可以删除这句代码!

分步解答二

        在最初,我们必须为游戏制作一个可视化的界面,这时我们完全可以用printf语句来实现:

void menu()
{
	int input = 0;
	printf("****************************\n");
	printf("********** welcome *********\n");
	printf("***** Produced by Ahao *****\n");
	printf("********** play(1) *********\n");
	printf("********** exit(0) *********\n");
	printf("****************************\n");
}

        我们把这个界面定义为菜单,为方便执行编写,我们可以将其储存在menu这个主函数中。当然,你可以编辑printf语句中的任意符号和文字。

分步解答三

        其次,为游戏的主要实现环节,这一环节非常重要,它决定着游戏的规则与机制。代码如下:

void game()
{
	int right = rand() % 100 + 1;
	int i;
	printf("请输入您所要的难度:>");
	scanf("%d", &i);
	while (1)
	{
		int guess = 0;
		printf("请输入猜测的数字(您还有%d次机会!):>",i);
		scanf("%d", &guess);
		if (guess < right)
		{
			printf("猜小了\n");
			i--;
			if (i == 0)
			{
				system("CLS");
				printf("很抱歉,次数已用完!\n");
				break;
			}

		}
		else if (guess > right)
		{
			printf("猜大了\n");
			i--;
			if (i == 0)
			{
				system("CLS");
				printf("很抱歉,次数已用完!\n");
				break;
			}
		}
		else
		{
			system("CLS");
			printf("恭喜你!猜对了!\n");
			break;
		}
	}
}

        此处,我们为了使游戏进行,必须生成一个随机的未知数,这时我们便用到了srand、time函数,这是为了让我们的随机数不会局限于固定的数,并且每次游戏都会更新(具体用法您可以搜索相关资料!)。

        之后,我们使用while循环来判断玩家输入的数是否正确,并且,我也为程序制作了剩余输入次数的设计,当然,你也可以自定义所猜数字的位数。

        同时,我们也用到了清屏代码,使我们的程序界面井井有条,锦上添花。如下:

system("CLS");

        当然,我们也要把这段代码存储到game这个主函数中。

分步解答四

        最后,我们来编译执行游戏的过程。如下:

int main()
{
	srand((unsigned)time(NULL));
	int input = 0;
	do
	{
		menu();
		printf("请输入你的选择:>");
		scanf("%d", &input);
		if (input == 1)
		{
			system("CLS");
			printf("开始游戏!\n");
			game();
		}
		else if (input == 0)
		{
			system("CLS");
			printf("退出游戏!");
			break;
		}
		else printf("输入错误!请重新输入\n");
	} while (input != 0);
	return 0;
}

        如上我们为了使游戏开始和结束,以及游戏结束后退出正常,我们编写了如上代码,同时也用到了while循环。

执行体验

C语言:小游戏之猜数字(升级版)

实验总结

        在我们正常的C语言程序制作中,不免要用到更高级的函数与语法,现在就让我们这一实验,作为我们成功路上的垫脚石吧!

感谢阅读

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿豪爱学习

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

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

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

打赏作者

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

抵扣说明:

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

余额充值