题目:系统随机生成一个1到100的数,用户输入数字进行猜测,系统判断后告诉玩家当前数字过大或过小,如果猜中恭喜玩家,并退出当前游戏。为了增加游戏的趣味性,可限制玩家猜测次数。
分析:
系统生成随机数k
玩家进行猜测数y
如果猜错了
反馈猜大了还是猜小了
继续进行猜测
如果猜对了
恭喜玩家
退出游戏
------ 思考一下 动手做一做 再往下翻翻看------
代码:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
//添加随机数种子
srand( (unsigned int)time(NULL) );
//生成随机数
int k = rand()%100+1;
cout << "...随机数已生成" << endl;
int y = 0;
//进入循环猜测
while(1){
cout << "请输入猜测数(1~100)" << endl;
cin >> y;
if(y>k){
cout << "你猜大了" << endl;
}else if(y<k){
cout << "你猜小了" << endl;
}else{
cout << "猜对啦!" << endl;
break; //退出当前循环
}
}
system("pause");
return 0;
}
运行结果:
如果一直猜下去,总会猜对的,那这个游戏的趣味性就低了很多,那我们如何限定猜测次数呢?
------ 思考一下 动手做一做 再往下翻翻看------
代码:
#include <iostream>
using namespace std;
#include <ctime>
int main() {
//添加随机数种子
srand((unsigned int)time(NULL));
//生成随机数
int k = rand() % 100 + 1;
cout << "...随机数已生成" << endl;
int y,a = 0;
//进入循环猜测
while(a<5) {
a = a++;
cout << "请输入猜测数(1~100),剩余猜测"<< 6-a << "次" << endl;
cin >> y;
if (y > k) {
cout << "你猜大了" << endl;
}
else if (y < k) {
cout << "你猜小了" << endl;
}
else {
cout << "猜对啦!" << endl;
break; //退出当前循环
}
}
cout << "次数用完啦~" << endl;
system("pause");
return 0;
}
运行结果:
提问环节:
1、为什么定义随机数要 rand()%100 +1?
因为通过rand()% 100取得的是范围0~99的数,距离我们需要的1~100区间的数刚好差1,所以需要+1
2、为什么使用rand函数每一次生成的数都是42?
需要添加随机数种子,利用系统时间生成随机数。注意使用时,需要添加系统时间头文件