猜数字游戏

由计算机随机产生一个 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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值