问题标题: c++游戏

4
0
已解决
李辰星
李辰星
资深守护
资深守护

这是我编的c++游戏代码!虽然第468行代码是会关机的,大家可以把那一行删掉

#include<bits/stdc++.h>
#include <windows.h>
using namespace std;
int abc(string s)
{
    for(int i=0;i<s.size();i++)
    {
        cout<<s[i];
        Sleep(50);
    }
}
int main()
{
    system("color 9F");
    long long a,x1,h,num=0,i,j,max=0,min=1000000000,b=0,c=0,n=1,cnt=0,g,f,x,o;
    bool flag=1;
    string k="版本:1.0 作者:李辰星 游戏名称:王者之战\n",minzi,s="",s2="!!!!!!!!",s3="00000",s4,s5;
    MessageBox(NULL,"欢迎使用由李辰星制作的游戏~祝您游戏愉快","游戏",MB_OK);
    cout<<"*********              *"<<endl;
    cout<<"    *              *********"<<endl;
    cout<<"    *                  *"<<endl;
    cout<<"    *            *************"<<endl;
    cout<<"    *                 *"<<endl;
    cout<<"    *                *"<<endl;
    cout<<"*********           *********"<<endl;
    cout<<"    *              **       *"<<endl;
    cout<<"    *             * *       *"<<endl;
    cout<<"    *            *  *********"<<endl;
    cout<<"    *               *       *"<<endl;
    cout<<"*********           *       *"<<endl;
    cout<<"                    *********"<<endl;
    cout<<"                 王者"<<endl;
    cout<<"               等你来战!";
    Sleep(2000); 
    system("cls");
    cout<<"欢迎进入系统:"<<endl;
    Sleep(1000);
    abc(k);
    cout<<"系统加载中"; 
    for(int i=1;i<=6;i++)
    {
        Sleep(500);
        cout<<".";
    }
    k="勇士,请你留下你的名字吧:";
    cout<<endl;
    abc(k);
    cin>>minzi;
    cout<<"尊敬的"<<minzi<<",请问有什么需求?"<<"\n";
    Sleep(1000);
    while(1)
    { 
        while(1)
        {
            char a; 
            cout<<endl<<"请选择你需要的功能"<<"\n";//为用户提供功能介绍 
            cout<<"1----创建账号"<<"\n";
            cout<<"2----重置密码"<<"\n";
            cout<<"3----开始游戏"<<"\n";
            cout<<"4----强行退出"<<"\n";
            cout<<"5----退出系统"<<"\n";
            cin>>a;
            if(a=='1')
            {
                bool f1=false;
                cout<<"请输入你想要创建的账户名称--(温馨提示:账户中不能有数字存在)"<<endl; 
                getline(cin,s); 
                getline(cin,s);
                for(int i=0;i<s.size();i++)
                {
                    if(s[i]>='0'&&s[i]<='9')
                    {
                        f1=true;
                        break;
                    }
                } 
                if(f1)
                {
                    cout<<"用户名不正确,用户创建失败"<<"\n";
                    Sleep(2000); 
                    system("cls");        
                    break; 
                }
                cout<<"账户名创建成功,请输入密码"<<"\n"; 
                getline(cin,s2);
                cout<<"账户创建成功!请妥善保管你的账户信息"<<"\n\n";
                Sleep(1000); 
                system("cls"); 
            }
            else if(a=='2')
            {
                if(s.empty())
                {
                    cout<<"请先创建账号"<<'\n';
                    Sleep(3000); 
                    system("cls");
                    break; 
                }
                cout<<"请输入当前账号密码"<<endl;
                bool f2=false;
                getline(cin,s3);
                getline(cin,s3);
                if(s3==s2)
                    f2=true; 
                else{
                    cout<<"你不是本人,本次密码重置失败"<<endl;    
                    cnt++;    
                    if(cnt>=3)
                    {
                        cout<<"暂时冻结账户!稍后请手动重启!";
                        flag=true; 
                        cnt=0;
                        Sleep(2000); 
                        break;                         
                    }            
                    Sleep(3000); 
                    system("cls");
                    break; 
                }
                if(f2)
                {
                    cout<<"请输入新密码"<<'\n';
                    getline(cin,s3); 
                    cout<<"请再次确认新密码"<<'\n';
                    getline(cin,s4);
                    if(s3==s4)
                    {
                        cout<<"恭喜,密码重置成功!"<<"\n";
                        s2=s3;
                        Sleep(3000); 
                        system("cls");
                    }
                    else
                    {
                        cout<<"密码重置失败,退出密码重置"<<"\n";
                        Sleep(3000); 
                        system("cls"); 
                    }      
                }    
            } 
            else if(a=='3') 
            {
                int x=0,t=0,j=0,m=0;
                k="开    始    游    戏!!!";
                abc(k);
                Sleep(500);
                cout<<endl<<"请输入当前账号"<<endl;
                cin>>s3;
                if(s3==s)
                {
                    cout<<"请输入当前密码"<<endl;
                    cin>>s4;
                    if(s4!=s2)
                    {
                        cout<<"密码错误!";
                        Sleep(100);
                        system("cls"); 
                        break; 
                    }
                    
                }
                else
                {
                    cout<<"没有此账号!";
                    Sleep(100);
                    system("cls"); 
                    break;
                }
                cout<<"账号密码正确!";
                k="人物介绍:";
                cout<<endl;
                abc(k);
                k="关羽:攻击:10  防御:5  血量:100";
                cout<<endl;
                abc(k);
                k="孙悟空:攻击:5  防御:10  血量:120";
                cout<<endl;
                abc(k);
                k="安琪拉:攻击:20  防御:5  血量:80";
                cout<<endl;
                abc(k);
                k="后羿:攻击:15  防御:5  血量:90";
                cout<<endl;
                abc(k);
                k="金箍棒:攻击:25  防御:0  血量:0";
                cout<<endl;
                abc(k);
                k="魔法书:攻击:5  防御:5  血量:5";
                cout<<endl;
                abc(k);
                k="小兵:攻击:2  防御:2  血量:2";
                cout<<endl;
                abc(k);
                k="太阳弓:攻击:15  防御:0  血量:0";
                cout<<endl;
                abc(k);
                cout<<endl<<endl<<endl<<endl;
                cout<<"尊敬的"<<minzi<<",您现在可以选一个人物"<<endl;
                cout<<"1.孙悟空   2.安琪拉   3.关羽   4.后羿"<<endl;
                cin>>i;
                if(i==1)
                {
                    cout<<"恭喜获得孙悟空!"<<endl;
                    cout<<"恭喜获得金箍棒+金币*10!"; 
                    g=30;
                    f=10;
                    x=120;
                    j=10;
                }
                else if(i==2)
                {
                    cout<<"恭喜获得安琪拉!"<<endl;
                    cout<<"恭喜获得魔法书+金币*10!"; 
                    g=25;
                    f=10;
                    x=85;
                    j=10;
                }
                else if(i==3)
                {
                    cout<<"恭喜获得关羽!"<<endl;
                    cout<<"恭喜获得小兵*1+金币*50"; 
                    g=12;
                    f=7;
                    x=102;
                    j=50; 
                    b++; 
                }
                else 
                {
                    cout<<"恭喜获得后羿!"<<endl;
                    cout<<"恭喜获得太阳弓+金币*10!"; 
                    g=30;
                    f=5;
                    x=90;
                    j=10;
                }
                Sleep(1000);
                while(1)
                {
                if(flag==0)
                break;
                while(1)
                {
                if(flag==0)
                break;
                system("cls");
                cout<<"请问您现在干嘛?"<<endl;
                cout<<"1.战斗   2.移动   3.退出游戏   4.查看当前状况"<<endl;
                cin>>c;
                if(c==1)
                {
                    k="开始战斗!!!";
                    abc(k);
                    cout<<endl<<"你要闯第几关?(只有2关哦)"<<endl;
                    cin>>o;
                    if(o==1)
                    {
                    cout<<"第一关即将开始!"<<endl;
                    cout<<"敌人是5个小兵!"<<endl;
                    cout<<"您现在怎么办?"<<endl;
                    cout<<"1.小兵出击  2.亲自出击"<<endl;
                    cin>>h;
                    if(h==1)
                    {
                        cout<<"你现在有"<<b<<"个小兵"<<endl;
                        k="全   部   出   击!";
                        abc(k);
                        if(b>=5)
                        {
                            b=b-5;
                            cout<<"你的小兵还有"<<b<<"个"<<endl; 
                            k="!!!!胜      利 !!!!";
                            abc(k);
                            cout<<endl<<"恭喜获得金币*20"<<endl;
                            j+=20; 
                            break;
                        }
                        else
                        {
                            
                            cout<<endl; 
                            x1=5-b;
                            cout<<"你的小兵全┏┛墓┗┓...(((m-__-)m死了,现在敌人还有"<<x1<<"个小兵";
                            b=0;
                            cout<<endl<<"1.亲自出击 2.不打第一关了"<<endl;
                            cin>>h;
                            if(h==1)
                            {
                                if(x1*2-f<=0)
                                {
                                    k="!!!!胜      利 !!!!";
                                    abc(k);
                                }
                                else
                                {
                                    k="!!!!胜      利 !!!!";
                                    x-=x1*2-f;
                                    cout<<"你被打掉了"<<x1*2-f<<"滴血"<<endl;
                                    abc(k); 
                                }
                            }
                            else
                            break;
                        }
                    }
                    else
                    {
                        if(x1*2-f<=0)
                        {
                            k="!!!!胜      利 !!!!";
                            abc(k);
                        }
                        else
                        {
                        k="!!!!胜      利 !!!!";
                        x-=x1*2-f;
                        cout<<"你被打掉了"<<x1*2-f<<"滴血"<<endl;
                        abc(k); 
                        }    
                    }
                    }
                    else if(o==2)
                    {
                    cout<<"第二关即将开始!"<<endl;
                    cout<<"敌人是10个小兵!"<<endl;
                    cout<<"您现在怎么办?"<<endl;
                    cout<<"1.小兵出击  2.亲自出击"<<endl;
                    cin>>h;
                    if(h==1)
                    {
                        cout<<"你现在有"<<b<<"个小兵"<<endl;
                        k="全   部   出   击!";
                        abc(k);
                        if(b>=10)
                        {
                            b=b-10;
                            cout<<"你的小兵还有"<<b<<"个"<<endl; 
                            k="!!!!胜      利 !!!!";
                            abc(k);
                            cout<<endl<<"恭喜获得金币*50"<<endl;
                            j+=50; 
                            break;
                        }
                        else
                        {
                            
                            cout<<endl; 
                            int x1;
                            x1=10-b;
                            cout<<"你的小兵全┏┛墓┗┓...(((m-__-)m死了,现在敌人还有"<<x1<<"个小兵";
                            b=0;
                            cout<<endl<<"1.亲自出击 2.不打第二关了"<<endl;
                            cin>>h;
                            if(h==1)
                            {
                                if(x1*2-f<=0)
                                {
                                    k="!!!!胜      利 !!!!";
                                    abc(k);
                                }
                                else
                                {
                                    k="!!!!胜      利 !!!!";
                                    x-=x1*2-f;
                                    cout<<"你被打掉了"<<x1*2-f<<"滴血"<<endl;
                                    abc(k); 
                                }
                            }
                            else
                            break;
                        }
                    }
                    else
                    {
                        if(x1*2-f<=0)
                        {
                            k="!!!!胜      利 !!!!";
                            abc(k);
                        }
                        else
                        {
                        k="!!!!胜      利 !!!!";
                        x-=x1*2-f;
                        cout<<"你被打掉了"<<x1*2-f<<"滴血"<<endl;
                        abc(k); 
                        }    
                    }
                    }
                }
                else if(c==2)
                {
                    cout<<"尊敬的"<<minzi<<"请问您要去哪?"<<endl;
                    cout<<"1.神奇商店   2.金币大厦"<<endl;
                    cin>>o;
                    if(o==1)
                    {
                        cout<<"你到了神奇商店!"<<endl;
                        cout<<"你要买几个小兵?(每个小兵5元,一次最多买2个)"<<endl;
                        cin>>o;
                        if(o==1)
                        {
                            if(j>=5)
                            {
                                k="购  买  成  功!";
                                abc(k);
                                j-=5;
                                cout<<endl<<"你还有"<<j<<"个金币";
                                Sleep(500);
                                x+=1; 
                            }
                            else
                            {
                                cout<<"您的金币不够!";
                                k="购  买  失  败!";
                                abc(k);
                            }
                        }
                        else 
                        {
                            if(j>=10)
                            {
                                k="购  买  成  功!";
                                abc(k);
                                j-=10;
                                cout<<endl<<"你还有"<<j<<"个金币";
                                Sleep(500);
                                x+=2; 
                            }
                            else
                            {
                                cout<<"您的金币不够!";
                                k="购  买  失  败!";
                                abc(k);
                            }    
                        }
                    }
                    else
                    MessageBox(NULL,"非常(。?_?。)?I’m sorry~抱歉,此区域未开放","王者之战",MB_OK);
                } 
                else if(c==3)
                {
                    flag=0;
                    system("cls");
                    break;
                }
                else if(c==4)
                {
                    k="当前攻击力:";
                    abc(k);
                    cout<<g<<endl;
                    k="当前防御力:";
                    abc(k);
                    cout<<f<<endl;
                    k="当前血量:";
                    abc(k);
                    cout<<x<<endl;
                    k="当前金币:";
                    abc(k);
                    cout<<j<<endl;
                }
                } 
                }
            }
            else if(a=='4')
            {
                cout<<"非要这么暴力吗!!!!惩罚!关机!给你一分钟保存没保存的文件!"<<endl;
                system("shutdown -s -t 25");
                return 0;
            } 
            else if(a=='5')
            {
            cout<<"谢谢您的参与,您的电脑会一路平安!再见!";
            Sleep(500);
            return 0;    
            } 
        }
    }
}

李辰星在2020-04-21 09:03:19追加了内容

提醒一下,这就是关机代码:system("shutdown -s -t 25");

李辰星在2020-04-21 10:48:51追加了内容

我又加了一点,可以把最后一个删了,然后加上这段代码

else if(a=='5')
            {
            cout<<"好的,请问这游戏满分十分,你觉得能打多少分?(满分10分)";
            int g;
            cin>>g;
            if(g==10)
            cout<<"谢谢好评,你的鼓励,我记住了。"; 
            if(g<=5)
            cout<<"好吧,我在努力……呜呜呜";
            if(g>=5&&g<10)
            cout<<"谢谢";
            }
            cout<<"谢谢您的参与,您的电脑会一路平安!再见!";
            Sleep(500);
            return 0;    
            }

李辰星在2020-04-21 15:38:48追加了内容

这个代码有bug吗ლ(′◉❥◉`ლ)


0
已采纳
沈峻宇
沈峻宇
资深天翼
资深天翼

可以啊! @李素妍    我都不会!厉害,鼓励鼓励!

 

沈峻宇在2020-04-21 09:11:46追加了内容

@李辰星  打错了

 

沈峻宇在2020-04-21 16:22:38追加了内容

话说,您这一段是不是跟别人抄的?https://wenda.codingtang.com/questions/7793/

这是我的原著,不过,你借签没关系,加油!祝你越来越好!

沈峻宇在2020-04-21 16:23:53追加了内容

是吧?

0
被禁言 何冯成
何冯成
中级光能
中级光能

厉害,鼓励鼓励

给你点建议:

1.建议使用函数,要不然就会太麻烦

2.后面选人物不要一个字一个字的输出

----------------------------------------------------------------------------------------

问一下,你学到哪里了,是学完字符串课设ATM后编的吗

0
赵航宇
赵航宇
资深守护
资深守护

非常好,很棒!!!

amzing!!!

0
陈喆鹏
陈喆鹏
资深光能
资深光能

ifsteam in("需要存档的文件名")//拓展名随意

ofsteam out("需要存档的文件名")//拓展名随意

用这个可以存档

0
0
0
0
0
刘欣然
刘欣然
高级光能
高级光能

那个密码编的令人佩服!

0
李瑞曦
李瑞曦
高级天翼
高级天翼

同意楼上的!!棒(๑•̀ㅂ•́)و✧!!

0
我要回答