猜数字
猜数字的基本玩法
猜数字顾名思义就是要去猜这个数字。
提前准备好一个数字,然后猜数字的人报出心中所想的数字。
准备数字的人根据比较两个数的大小,给出猜数字的人大了或者小了的结论。
一直循环直到猜到数字。
制作思想
要做成一个程序,那么和我们玩猜数字的就是电脑。
首先,我们要用电脑生成一个随机数。
其次,根据判断生成的随机数和玩家猜的数字判断大小给出范围。
最后,当两数相等就可以完成游戏了。
制作步骤
1.菜单
我们需要先打印一个开始界面作为进入游戏时的选项
void menu()
{
cout << "1.开始游戏" << endl;
cout << "2.退出游戏" << endl;
}
将菜单以函数的形式呈现,方便main的清晰表达
2.随机数的生成
#include <time.h>
#include <stdlib.h>
srand((unsigned int)time(NULL));
我们通过引用time.h
和stilib.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;
}
总结
这是个十分简易的小游戏,不过对于初学者来说是个不错的练习