由计算机随机产生一个
1~10000
以内的数字,用户根据 提示猜出该数字,功能要求如下:
(
1
)游戏结束条件:
a
)在规定时间内正确猜出该数字;
b
)规定 用时耗完。
(2)游戏提示:根据用户的输入与所产生数字的大小关系给出正 确提示,例如,随机产生数为5000
,若用户输入
6000
,则提示“高了”,若用户输入4000
,则提示“低了”。
(3)游戏结果显示:
1
)若用户在规定时间内正确猜出数字,则显 示“恭喜!正确猜出数字**,
2
)若到达规定时间但并未猜出,则显示“很遗憾,未能在规定时间内猜出正确数字,该数字为 ***。” ,其中,“
***
”表示所需猜出的随机数。
(4)游戏时间设置:可由用户灵活设置游戏时间,此部分内容应 在游戏开始前完成。
(5)游戏退出设置:在每轮游戏结束之后,给出提示语,请用户 选择是否继续游戏。
(6)
注意:考虑增加游戏中的趣味性,比如提示特定位上的数字
等
代码如下:
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
class GuessNumber
{
public:
void Game(); //游戏过程
};
/* 游戏过程 */
void GuessNumber::Game()
{
double GameTime; //规定时间
int iguess; //用户猜的数字
int imagic; //计算机随机生成的数字
clock_t start,finish; //挂钟时间
double gametime; //用户所用时间
char reply; //用户回复是否继续游戏
srand( time(NULL) ); //设置随机数种子
do
{
cout<<"请设置游戏时间: ";
cin>>GameTime;
imagic = rand() % 10001;
start = clock();
do
{
cout<<"请猜测一个数字并输入: ";
cin>>iguess;
if( iguess > imagic )
{
cout<<" 高了 "<<endl;
}
else
{
if( iguess < imagic )
{
cout<<" 低了 "<<endl;
}
else
{
cout<<"恭喜!正确猜出数字"<<imagic<<"。"<<endl;
}
}
finish = clock();
gametime = (double)( finish - start ) / CLOCKS_PER_SEC;
if( gametime >= GameTime )
{
cout<<"很遗憾,未能在规定时间内猜出正确数字,该数字为"<<imagic<<endl;
break;
}
}
while( iguess != imagic && gametime < GameTime );
cout<<"是否继续游戏( Y / y ) ";
cin>>reply;
}
while( reply == 'Y' || reply == 'y' );
}
/* 主菜单 */
void menu()
{
cout<<" 猜数字游戏 "<<endl;
cout<<"--------- ----------"<<endl;
}
int main()
{
menu();
GuessNumber gn;
gn.Game();
return 0;
}