小游戏之猜数字

猜数字

猜数字的基本玩法


猜数字顾名思义就是要去猜这个数字。

提前准备好一个数字,然后猜数字的人报出心中所想的数字。

准备数字的人根据比较两个数的大小,给出猜数字的人大了或者小了的结论。

一直循环直到猜到数字。

制作思想


要做成一个程序,那么和我们玩猜数字的就是电脑。

首先,我们要用电脑生成一个随机数。

其次,根据判断生成的随机数和玩家猜的数字判断大小给出范围。

最后,当两数相等就可以完成游戏了。

制作步骤


1.菜单

我们需要先打印一个开始界面作为进入游戏时的选项

void menu()
{
	cout << "1.开始游戏" << endl;
	cout << "2.退出游戏" << endl;
}

将菜单以函数的形式呈现,方便main的清晰表达

2.随机数的生成
#include <time.h>
#include <stdlib.h>
	srand((unsigned int)time(NULL));

我们通过引用time.hstilib.h两个头文件来实现随机数生成的条件

stdlib.h可以提供srand()rand()函数,而time.h可以提供time()函数

通过srand()提供rand()函数所生成的随机数种子

但是这个随机数的种子会对应着一个数字,所以还需要一个随时会变的数字来控制这个随机数

所以引用了time()函数来获取当前系统时间来确定这个随机数的随机性

3.游戏的逻辑判断
void game()
{
	int num;
	int ret = rand() % 100 + 1;

	while (1)
	{
		cout << "你先猜啥数" << endl;
		cin >> num;
		if (ret > num)
		{
			cout << "小了,是格局小了。" << endl;
		}
		else if (ret < num)
		{
			cout << "格局大了,不过不错" << endl;
		}
		else
		{
			cout << "运气真好,混蛋" << endl;
			break;
		}
	}

与菜单一样通过一个函数来控制游戏的进行,以便main函数的理解

rand函数可生成的随机数范围是0~2147483647

显然并不需要这么大的数字来充当随机数

所以可以模上(%)个100以获取0~99的数,加上1即可获得1~100的数

为了增加趣味性,在用以判断范围的语句时可以加上一些有意思的话

当然为了更有人性化,还可以对这些话进行扩展十几句不同的语句

这个操作可以通过switch语句实现,可以使用rand函数随机生成不同语句

4.游戏的总体设计
int main()
{
	int  input, a = 1;
	srand((unsigned int)time(NULL));

	while (a)
	{
		menu();
		cout << "请打出你的想法" << endl;
		cin >> input;
		switch (input)
		{
		case 1:
		{
			game();
		}
		continue;
		case 2:
		{
			a--;
			break;
		}
		default:
		{
			cout << "请重新输入" << endl;
			break;
		}
		}
		cout << "游戏结束,下次多练练。" << endl;
	}


	return 0;
}

通过main函数与循环语句实现以上函数的整合

整体代码


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

using namespace std;

void menu()
{
	cout << "1.开始游戏" << endl;
	cout << "2.退出游戏" << endl;
}

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

	while (1)
	{
		cout << "你先猜啥数" << endl;
		cin >> num;
		if (ret > num)
		{
			cout << "小了,是格局小了。" << endl;
		}
		else if (ret < num)
		{
			cout << "格局大了,不过不错" << endl;
		}
		else
		{
			cout << "运气真好,混蛋" << endl;
			break;
		}
	}


}
int main()
{
	int  input, a = 1;
	srand((unsigned int)time(NULL));

	while (a)
	{
		menu();
		cout << "请打出你的想法" << endl;
		cin >> input;
		switch (input)
		{
		case 1:
		{
			game();
		}
		continue;
		case 2:
		{
			a--;
			break;
		}
		default:
		{
			cout << "请重新输入" << endl;
			break;
		}
		}
		cout << "游戏结束,下次多练练。" << endl;
	}


	return 0;
}

总结


这是个十分简易的小游戏,不过对于初学者来说是个不错的练习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值