猜数字程序

1. 猜数字: 由计算机随机产生一个 1~10000 以内的数字,用户根据
提示猜出该数字,功能要求如下:
1 )游戏结束条件: a )在规定时间内正确猜出该数字; b )规定
用时耗完。
2 )游戏提示:根据用户的输入与所产生数字的大小关系给出正
确提示,例如,随机产生数为 5000 ,若用户输入 6000 ,则提示“高
了”,若用户输入 4000 ,则提示“低了”。
3 )游戏结果显示: 1 )若用户在规定时间内正确猜出数字,则显
示“恭喜!正确猜出数字 *** 。” ; 2 )若到达规定时间但并未猜
出,则显示“很遗憾,未能在规定时间内猜出正确数字,该数字为
*** 。” ,其中,“ *** ”表示所需猜出的随机数。
4 )游戏时间设置:可由用户灵活设置游戏时间,此部分内容应
在游戏开始前完成。
5 )游戏退出设置:在每轮游戏结束之后,给出提示语,请用户
选择是否继续游戏。
6 注意:考虑增加游戏中的趣味性,比如提示特定位上的数字
等。
代码示例

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <chrono>
#include <thread>

using namespace std;

int main()
{
    do
    {
    int stime;
    cout<<"请输入游戏的时间限制(秒):";
    cin>>stime;
    cout<<"猜数字游戏开始!"<<endl;
     cout<<"请在规定的时间内猜出数字,数字范围为1~10000"<<endl;
    int count=0;
        int number,guess;
        //将当前系统时间作为随机种子传递给srand函数
        //可以确保每次程序运行时都有不同的随机数序列生成
        srand(static_cast<unsigned int>(time(nullptr)));
        //生成一个数字范围为1~10000的随机数
        number = rand() % 10000 + 1;
        //获取当前的时间点,并将其存储在startTime变量中
        auto startTime = std::chrono::steady_clock::now();
        do{
        cout<<"请输入您猜测的数字:";
        cin>>guess;
        if(guess<number)
            cout<<"低了"<<endl;
        else if(guess>number)
            cout<<"高了"<<endl;
        else
        {
            //获取当前的时间点,并将其存储在endTime变量中
            auto endTime=std::chrono::steady_clock::now();
            //计算两个时间点之间的时间间隔,并将其转换为以秒为单位的时间间隔表示
            auto duration = std::chrono::duration_cast<std::chrono::seconds>(endTime - startTime);
            if(duration.count() <=stime)
            {
                cout<<"恭喜!正确猜出数字:"<<number<<endl;
            }
            else
            {
                cout<<"很遗憾,未能在规定时间内猜出正确数字,该数字为:"<<number<<endl;
            }
            cout<<"请选择是否退出游戏(1是2否):";
            int x;
            cin>>x;
            if(x==1)
            {
                cout<<"游戏结束"<<endl;
                return 0;
            }
            else
                break;
        }
    if((++count)==5)
        cout<<"由于您猜错次数太多,提示您该数字的个位为:"<<number%10<<endl;
        }while(1);

    }while(1);

    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值