游戏规则为:系统随机生成一个1~100之间的数字,玩家进行猜测,提示玩家数字过大或过小,如果猜对则恭喜玩家胜利,并退出游戏。
代码如下:
#include<ctime>//生成随机数时需要的头文件
int main()
{
//添加随机数种子,作用:利用当前系统的时间生成随机数,防止每一次随机数都一样
srand((unsigned int)time(NULL));
//1、系统生成随机数
int num = rand() % 100 + 1; //rand()%100生成0~99的随机数
int val ; //玩家输入的值
while (1)
{
//2、玩家猜测
cout << "请输入猜测的数:" << endl;
cin >> val;
//3、判断对错
//猜对 退出游戏
//猜错 提示过大或过小 重新返回第2步
if (val > num)
{
cout << "猜测过大" << endl;
}
else if (val < num)
{
cout << "猜测过小" << endl;
}
else
{
cout << "恭喜你,猜对了!" << endl;
break; //退出当前循环
}
}
}
测试结果如下:
现考虑对该小游戏进行优化,限制玩家输入次数,这里假设限制输入次数为5次,代码如下:
#include<ctime>//生成随机数时需要的头文件
#define N 5 //限制最大输入次数为N次
int main()
{
//添加随机数种子,作用:利用当前系统的时间生成随机数,防止每一次随机数都一样
srand((unsigned int)time(NULL));
//1、系统生成随机数
int num = rand() % 100 + 1; //rand()%100生成0~99的随机数
int n = 0; //计算玩家输入的次数为n次
cout << "玩家共有5次机会" << endl;
int val; //玩家输入的值
while (1)
{
cout << "\n玩家剩余" << N - n << "次机会" << endl;
n++; //计数器+1
if (n <= N)
{
//2、玩家猜测
cout << "请输入猜测的数:" << endl;
cin >> val;
}
else
{
cout << "已达到最大输入次数,游戏结束" << endl;
break;
}
//3、判断对错
//猜对 退出游戏
//猜错 提示过大或过小 重新返回第2步
if (val > num)
{
cout << "猜测过大" << endl;
}
else if (val < num)
{
cout << "猜测过小" << endl;
}
else
{
cout << "恭喜你,猜对了!" << endl;
break; //退出当前循环
}
}
}
测试结果如下: