自创打怪小游戏 -- 末日之战1:初战

上代码

#pragma warning (disable:4996)//防_getch的
#include<windows.h>
#include<time.h>
#include<cmath>
#include<vector>
#include<string>
#include<fstream>
#include<conio.h>
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int man[11][6][101], dj[11] = { 0,1,1,1,1,1,1,1,1,1,1 }, Q[11] = {}, jy[11] = {}, wendi[11] = {}, jyt[11] = {}, wq[11] = {}, fj[11] = {}, wqzb[11][5] = {}, fyzb[11][5] = {};
int whsp[11] = {};
int n, x;//x为存档地址
char b;
string name[11], cdname[11];
bool ss()//初始化
{
    for (int i = 1;i <= 10;i++)
    {
        cdname[i] = "空存档";
    }
    for (int i = 1;i <= 10;i++)
    {
        for (int j = 1, sm = 20, gj = 10, fy = 6, sd = 14, jy = 30;j <= 100;j++)
        {
            man[i][1][j] = sm;
            man[i][2][j] = gj;
            man[i][3][j] = fy;
            man[i][4][j] = sd;
            man[i][5][j] = jy;
            if (j % 5 == 0)
            {
                if (j % 10 == 0)
                {
                    sm += 8;
                    gj += 4;
                    fy += 2;
                    sd += 6;
                    jy += 100;
                }
                else
                {
                    sm += 4;
                    gj += 2;
                    fy += 1;
                    sd += 4;
                    jy += 50;
                }
            }
            else
            {
                sm += 3;
                gj += 1;
                fy += 1;
                sd += 2;
                jy += 40;
            }
        }
    }
    return 0;
}
struct shangdian
{
    string na;
    int km;
    int jg1;
}shangdian[5] = {
    {"",0},
    {"木剑",20,100},
    {"石剑",40,200},
    {"铁剑",60,800},
    {"钻石剑",80,2000}
};
struct uu
{
    string lo;
    int li;
    int jg2;
}uu[5] = {
    {"",0,0},
    {"皮甲",10,200},
    {"铁甲",25,1000},
    {"金甲",35,2000},
    {"钻石甲",50,3500},
};
struct gw
{
    string nm;
    int nhp;
    int ngj;
    int nfy;
    int nsd;
}gw[3] = {
    {""},
    {"丛林毒蝎",50,30,10,30},
    {"泰坦巨人",500,300,300,100}
}
;
void ch()//按任意键继续
{
    _getch();
}
void bg()//警告
{
    system("cls");
    cout << "请不要乱输\n";
    ch();
}
void cls()//清屏
{
    system("cls");
}
void sj()
{
    if (dj[x] <= 100)
    {
        for (int i = 1;i <= 10;i++)
        {
            if (jyt[x] >= man[x][5][dj[x]])
            {
                jyt[x] -= man[x][5][dj[x]];
                dj[x]++;
            }
        }
    }
}
/*亿些初始化*/
void keel()
{
    string nl,opl;
    cout<<"欢迎来到 荣耀之战1:初战 VS/DEV 版\n版本号 : 1.000.000.16\n按任意键开始游戏...\n";
    ch();
}
void wen()//存档
{
byo:
    cls();
    cout << "是否为存档改名?\n";
    cout << "N/n==no Y/y==yes\n";
    cout << "请输入:";
    cin >> b;
    cls();
    if (b == 'y' || b == 'Y')
    {
        cls();
        cout << "请输入新存档的名字:";
        cin >> cdname[x];
        cls();
    }
    else if (b == 'n' || b == 'N')
    {
    }
    else
    {
        bg();
        goto byo;
    }

}
void pd1()
{
    cls();
    if (shangdian[n].jg1 <= Q[x])
    {
        Q[x] -= shangdian[n].jg1;
        wqzb[x][n]++;
        cout << "购买成功" << shangdian[n].na << "+1";
        wq[x] = shangdian[n].km;
    }
    else
    {
        cout << "金币不足\n";
    }
    ch();
    cls();
}
void pd2()
{
    cls();
    if (uu[n].jg2 <= Q[x])
    {
        Q[x] -= uu[n].jg2;
        fyzb[x][n]++;
        cout << "购买成功" << uu[n].lo << "+1";
        fj[x] = uu[n].li;
    }
    else
    {
        cout << "金币不足\n";
    }
    ch();
    cls();
}
void men()//判断
{
    if (wendi[x] == 0)
    {
        cout << "请输入你的名字:";
        cin >> name[x];
        wendi[x]++;
        cls();
    }
}
void zd()
{
ks:
    system("cls");
    cout << "你要去哪里?\n";
    cout << "1.库忙谷丛林\n";
    cout << "2.神秘矿洞\n0.返回\n";
    cout << "请输入:";
    cin >> n;
    if (n == 1 || n == 2)
    {
        int gw1 = gw[n].nhp, gw2 = gw[n].ngj, gw3 = gw[n].nfy, gw4 = gw[n].nsd;
        int pl1 = man[x][1][dj[x]], pl2 = man[x][2][dj[x]]+wq[x], pl3 = man[x][3][dj[x]]+fj[x], pl4 = man[x][4][dj[x]];
        cls();
        int y;
        cout << "你遇到了" << gw[n].nm << endl;
        ch();
        while (1)
        {
            cls();
            cout << "1.攻击 2.逃跑\n";
            cout << "请输入:";
            cin >> y;
            if (y == 1)
            {
                if (pl4 >= gw4)
                {
                    if (gw3 <= pl2) {
                        gw1 = gw1 - pl2 + gw3;
                        cout << name[x] << "发起了攻击\n";
                        cout << gw[n].nm << "受到了" << pl2 -gw3  << "点伤害\n";
                        cout << "剩余生命值" << gw1 << endl;
                    }
                    else
                    {
                        gw1 = gw1 - 1;
                        cout << name[x] << "发起了攻击\n";
                        cout << gw[n].nm << "受到了1点伤害\n";
                        cout << "剩余生命值" << gw1 << endl;
                    }
                    ch();
                    cls();
                    if (gw1 <= 0)
                    {
                        cls();
                        cout << name[x] << "战胜了" << gw[n].nm << endl;
                        cout << "获得了" << gw[n].nhp /2<< "个金币\n";
                        cout << "获得了" << gw[n].nsd /2 << "点经验\n";
                        Q[x] += gw[n].nhp * 5;
                        jyt[x] += gw[n].nsd * 5;
                        ch();
                        sj();
                        goto ks;
                        break;
                    }
                    if (pl3 <= gw2)
                    {
                        pl1 = pl1 - gw2 + pl3;
                        cout << gw[n].nm << "发起了攻击\n";
                        cout << name[x] << "受到了" << gw2 - pl3 << "点伤害\n";
                        cout << "剩余生命值" << pl1 << endl;
                    }
                    else
                    {
                        pl1 = pl1 - 1;
                        cout << gw[n].nm << "发起了攻击\n";
                        cout << name[x] << "受到了1点伤害\n";
                        cout << "剩余生命值" << pl1 << endl;
                    }
                    ch();
                    if (pl1 <= 0)
                    {
                        cls();
                        cout << name[x] << "战死\n";
                        ch();
                        goto ks;
                        break;
                    }
                }
                else
                {
                    if (pl3 <= gw2)
                    {
                        pl1 = pl1 - gw2 + pl3;
                        cout << gw[n].nm << "发起了攻击\n";
                        cout << name[x] << "受到了" << gw2 - pl3 << "点伤害\n";
                        cout << "剩余生命值" << pl1 << endl;
                    }
                    else
                    {
                        pl1 = pl1 - 1;
                        cout << gw[n].nm << "发起了攻击\n";
                        cout << name[x] << "受到了1点伤害\n";
                        cout << "剩余生命值" << pl1 << endl;
                    }
                    ch();
                    cls();
                    if (pl1 <= 0)
                    {
                        cls();
                        cout << name[x] << "战死\n";
                        ch();
                        goto ks;
                        break;
                    }
                    if (gw3 <= pl2) {
                        gw1 = gw1 - pl2 + gw3;
                        cout << name[x] << "发起了攻击\n";
                        cout << gw[n].nm << "受到了" << gw3 - pl2 << "点伤害\n";
                        cout << "剩余生命值" << gw1 << endl;
                    }
                    else
                    {
                        gw1 = gw1 - 1;
                        cout << name[x] << "发起了攻击\n";
                        cout << gw[n].nm << "受到了1点伤害\n";
                        cout << "剩余生命值" << gw1 << endl;
                    }
                    ch();
                    if (gw1 <= 0)
                    {
                        cls();
                        cout << name[x] << "战胜了" << gw[n].nm << endl;
                        cout << "获得了" << gw[n].nhp /2 << "个金币\n";
                        cout << "获得了" << gw[n].nsd /2 << "点经验\n";
                        Q[x] += gw[n].nhp * 5;
                        jyt[x] += gw[n].nsd * 5;
                        ch();
                        sj();
                        goto ks;
                        break;
                    }
                }
                ch();
            }
            else if (y == 2)
            {
                goto ks;
                break;
            }
            else
            {
                bg();
            }
        }
    }
    else if (n == 0)
    {

    }
    else
    {
        bg();
        goto ks;
    }
}
void st(int u)
{
    system("cls");
    cout << "您好," << name[u] << endl;
    cout << "您剩余金币为" << Q[u] << "个" << endl;
    cout << "您的等级为" << dj[x] << "级" << endl;
    cout << "还需要" << man[u][5][dj[x]] - jyt[u] << "点经验可以升级" << endl;
    cout << "您的生命为" << man[u][1][dj[x]] << endl;
    cout << "攻击力为" << man[u][2][dj[x]] << "+" << wq[x] << endl;
    cout << "防御力为" << man[u][3][dj[x]] << "+" << fj[x] << endl;
    cout << "速度为" << man[u][4][dj[x]] << endl;
    ch();
}
void shang()
{
    system("cls");
    cout << "要去哪家商店?\n";
    cout << "1.武器商店\n";
    cout << "2.防具商店\n";
    cout << "3.道具商店\n";
    cout << "0.返回\n";
    cout << "请输入:";
    cin >> n;
    switch (n)
    {
    case 1:
    kl:
        system("cls");
        cout << "欢迎来到武器商店\n";
        for (int i = 1;i <= 4;i++)
        {
            cout << i << "." << shangdian[i].na << " " << shangdian[i].jg1 << "金币 +" << shangdian[i].km << "点攻击" << endl;
        }
        cout << "0.返回\n";
        cout << "请选择:";
        cin >> n;
        switch (n)
        {
        case 1:
            pd1();
            break;
        case 2:
            pd1();
            break;
        case 3:
            pd1();
            break;
        case 4:
            pd1();
            break;
        case 0:
            break;
        default:
            bg();
            goto kl;
            break;
        }
        break;
    case 2:
    oo:
        system("cls");
        cout << "欢迎来到防具商店\n";
        for (int i = 1;i <= 4;i++)
        {
            cout << i << "." << uu[i].lo << " " << uu[i].jg2 << "金币 +" << uu[i].li << "点防御\n";
        }
        cout << "0.返回\n";
        cout << "请选择:";
        cin >> n;
        switch (n)
        {
        case 1:
            pd2();
            break;
        case 2:
            pd2();
            break;
        case 3:
            pd2();
            break;
        case 4:
            pd2();
            break;
        case 0:
            break;
        default:
            bg();
            goto oo;
            break;
        }
        break;
    case 3:
    lo:
        cls();
        cout << "欢迎来到道具商店\n";
        cout << "1.巨人晶石 5000 金币 (加5等级)\n";
        cout << "2.经验包 4000金币 (加400点经验)\n";
        cout << 0 << ".返回\n";
        cout << "请输入:";
        cin >> n;
        switch (n)
        {
        case 1:
            cls();
            if (Q[x] >= 5000)
            {
                Q[x] -= 5000;
                dj[x] += 5;
                cout << "购买成功\n";
            }
            else
            {
                cout << "金币不足\n";
            }
            break;
        case 2:
            cls();
            if (Q[x] >= 4000)
            {
                Q[x] -= 4000;
                jy[x] += 400;
                sj();
                cout << "购买成功\n";
            }
            else
            {
                cout << "金币不足\n";
            }
            break;
        case 0:
            break;
        default:
            bg();
            goto lo;
            break;
        }
        break;
    case 0:
        break;
    default:
        break;
    }
}
void gh()
{
il:
    system("cls");
    cout << "要干什么活呢?(当前文化水平" << whsp[x] << ")\n";
    cout << "1.学习\n";
    cout << "2.乞讨 需要文化水平0\n";
    cout << "3.扫地 需要文化水平5\n";
    cout << "4.当工人 需要文化水平20\n";
    cout << "5.当白领 需要文化水平50\n";
    cout << "0.返回\n";
    cout << "请输入:";
    cin >> n;
    switch (n)
    {
    case 1:
        cls();
        cout << "学习中...\n";
        Sleep(2000);
        cls();
        whsp[x]++;
        cout << "学习完毕 文化水平+1\n";
        ch();
        goto il;
        break;
    case 2:
        cls();
        cout << "乞讨中...";
        Sleep(5000);
        Q[x] += 5;
        cls();
        cout << "乞讨完成 金币+5\n";
        ch();
        break;
    case 3:
        cls();
        if (whsp[x] >= 5) {
            cout << "工作中...";
            Sleep(5000);
            cls();
            Q[x] += 20;
            cout << "工作完成 金币+20\n";
            ch();
        }
        else
        {
            cout << "文化水平不足\n";
        }
        goto il;

        break;
    case 4:
        cls();
        if (whsp[x] >= 20) {
            cout << "工作中...";
            Sleep(5000);
            cls();
            Q[x] += 40;
            cout << "工作完成 金币+40\n";
            ch();
        }
        else
        {
            cout << "文化水平不足\n";
        }
        goto il;

        break;
    case 5:
        cls();
        if (whsp[x] >= 50) {
            cout << "工作中...";
            Sleep(5000);
            cls();
            Q[x] += 100;
            cout << "工作完成 金币+100\n";
            ch();
        }
        else
        {
            cout << "文化水平不足\n";
        }
        goto il;
        break;
    case 0:
        break;
    default:
        bg();
        goto il;
        break;
    }
}
void c()
{
    for (int i = 1;i <= 10;i++)
    {
        Q[i] = 200000000;
        dj[i] = 100;
    }
    x = 1;
}
int main()
{

    SetWindowTextA(GetConsoleWindow(), "荣耀之战1:初战 VS/DEV 版 版本号 : 1.000.000.16");
    ss();
    keel();
lop:
    cls();
    cout << "要读取那个存档呢?\n";
    for (int i = 1;i <= 10;i++)
    {
        cout << i << "." << cdname[i] << endl;
    }
    cout << "请输入:";
    cin >> x;
    switch (x)
    {
    case 1:
        wen();
        break;
    case 2:
        wen();
        break;
    case 3:
        wen();
        break;
    case 4:
        wen();
        break;
    case 5:
        wen();
        break;
    case 6:
        wen();
        break;
    case 7:
        wen();
        break;
    case 8:
        wen();
        break;
    case 9:
        wen();
        break;
    case 10:
        wen();
        break;
    case 8712:
        cls();
        cout << "开启管理员模式\n";
        ch();
        c();
        break;
    default:
        bg();
        goto lop;
        break;
    }
    men();
    while (1)
    {
        cls();
        cout << "========================================\n\n";
        cout << " 1.战斗 2.查看状态 3.商店 4.干活 5.设置\n\n";
        cout << "========================================\n";
        cout << "请输入:";
        cin >> n;
        switch (n)
        {
        case 1:
            zd();
            break;
        case 2:
            st(x);
            break;
        case 3:
            shang();
            break;
        case 4:
            gh();
            break;
        case 5:
        m:
            cls();
            cout << "=============\n";
            cout << "| 1.改名    |\n";
            cout << "| 2.切换账号|\n";
            cout << "| 0.返回    |\n";
            cout << "=============\n";
            cout << "请输入:";
            cin >> n;
            switch (n)
            {
            case 1:
                cls();
                cout << "请输入新名字:";
                cin >> name[x];
                break;
            case 2:
                goto lop;
                break;
            case 0:
                break;
            default:
                bg();
                goto m;
                break;
            }
            break;
        default:
            bg();
            break;
        }
    }
    return 0;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值