问题标题: 猜数游戏首个正式版出炉啦!

1
1
已解决
潘孝宇
潘孝宇
初级光能
初级光能

#include<bits/stdc++.h>
#include<synchapi.h>
#include<windows.h>
using namespace std;
struct node{
    string sl;
    int lmt;
}a[10]={
    {"",0},
    {"贼简单",10},{"简单",50},{"较简单",100},{"中等",200},
    {"稍难",500},{"困难",1000},{"地狱",5000},{"极限",10000}
};
string name;
void Out(string s){
    for(int i=0;i<=s.size()-1;i++){
        cout<<s[i];
        Sleep(20);
    }
}
int rdm(int a,int b){
    srand((unsigned)time(NULL));
    return rand()%(b-a+1)+a;
}
void home(){
    system("cls");
    cout<<"\n\n";
    cout<<"\t请选择游戏类型:\n";
    cout<<"\t1.贼简单版 难度指数:★\n";
    cout<<"\t2.简单版   难度指数:★★\n";
    cout<<"\t3.较简单版 难度指数:★★\n";
    cout<<"\t4.中等版   难度指数:★★★\n";
    cout<<"\t5.稍难版   难度指数:★★★★\n";
    cout<<"\t6.困难版   难度指数:★★★★\n";
    cout<<"\t7.地狱版   难度指数:★★★★★\n";
    cout<<"\t8.极限版   难度指数:★★★★★★(不要擅自尝试,猜错五次后关机!)\n";
    cout<<endl;
    cout<<"\t其他:";
    cout<<"\t9.振铃\n";
    cout<<"\t10.关机\n";
    cout<<"\t0.退出\n";
}
void Egg(){
    Out("恭喜发现彩蛋!");
    Sleep(2000);
    Out("你讨厌肖战吗?0.是 其他.否\n请慎重回答!\n");
    bool xz;
    cin>>xz;
    if(xz){
        while(1){
            MessageBox(NULL,"肖战给爷爬!你给爷爬!","肖战必糊!",MB_OK);
        }
    }else MessageBox(NULL,"这才对嘛,肖战本来就必糊","哦,原来是友军",MB_OK);
}
void l1(int level){
    system("cls");
    cout<<a[level].sl;
    Out("版的数据将给定在1~");
    cout<<a[level].lmt;
    Out("之间。\n");
    int ans=rdm(1,a[level].lmt),cnt=1,t;
    Sleep(2000);
    system("cls");
    Out("请猜数 -->");cin>>t;
    while(ans!=t){
        if(level==8&&cnt==6){
            cout<<"猜错次数太多,系统即将关机!\n";
            system("shutdown -s -t 3");
        }
        if(t==0)Egg();
        else if(t>ans)Out("[Answer Error]数字过大,请重试.");
        else if(t<ans)Out("[Answer Error]数字过小,请重试.");
        cnt++;
        Out("\n请猜数 -->");cin>>t;
    }Out("恭喜猜中!");
    Sleep(1000);
    system("cls");
    if(cnt==1)cout<<"一次就猜中,真NB!";
    else cout<<"还不错,继续加油!";
    Sleep(1000);
}
int main(){
    system("color 2e");
    Out("\t猜数游戏 Beta 1.1正式版 作者:潘孝宇\n");
    Out("请输入你的名字:");
    cin>>name;
    Out("加油吧,");cout<<name;Out(",奥利给!┗|`O′|┛");
    Sleep(1000);
    system("cls");
    while(1){
        home();
        short ch;
        cin>>ch;
        switch(ch){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:l1(ch);break;
            case 9:cout<<"\a";break;
            case 0:
                while(1){
                    system("cls");
                    Out("你确定要退出大厅吗?(y/n)\n");
                    char Ch;
                    cin>>Ch;
                    if(Ch=='y'||Ch=='Y'){
                        system("cls");
                        Out("您已退出大厅。\n期待下次再见!");
                        exit(0);
                    }else if(Ch=='n'||Ch=='N'){
                        break;
                    }else {
                        cout<<"[Input Error]输入必须是字符'y''Y''n''N'中的一个.";
                        Sleep(3000);
                    }
                }
                break;
            case 10:system("shutdown -s -t 5");break;
            default:cout<<"[Input Error]输入必须是一个0~10的整数.";Sleep(3000);
        }
    }
    return 0;
}

//更新日志:

// 1.修改了彩蛋;

// 2.解除了极限版的限制。

// 1.0公测版请移步至此


1
已采纳
沙宸安
沙宸安
中级启示者
中级启示者

恭喜恭喜!

建议:潘同学开发猜数游戏可以增加游戏的多样性,如:带猜数次数、自定义、皮肤、随机惩罚(减少猜数次数、改变猜的数字等),加入积分商城之类的。

0
0
0
我要回答