c++野外生存

c++野外生存,第1张

c++野外生存
//转自:https://www.luogu.com.cn/team/32221#main
//收藏者的温馨提示:部分情节作者没有更完就咕咕咕啦
//如果你编译报错,请点击工具-编译选项-勾选编译时加入以下命令,在下面的框中输入:-std=c++11,确定即可
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
struct thing
{
    string type;
    string name;
    int attack;
    int defense;
    int health;
    int num;
    bool disposable;
    int sharp;
    int durability;
};
struct w
{
    string name;
    string b[100];
    int bnum;
};
int health = 1000, maxhealth = 1000, defense = 10, attack = 100;
int capacity = 0;
string name;
int nowway = 0, water = 0, maxwater = 10;
int bagi = 1, protectlevel;
string protect;
string canmakething[1000] = { "退出","木剑","木斧","木镐","工作台" };
int canmakethingi = 5;
string f[100] = {
    {"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"},
    {"+..................................................................................................+"},
    {"+..................................................................................................+"},
    {"+.........+............................................K...........................................+"},
    {"+.......FV+........................................................................................+"},
    {"+...................F..........T...................................................................+"},
    {"+........+................+.............+.............V.......................CF...................+"},
    {"+.......+..........................................................................................+"},
    {"+.............................................................+.H.+..............B.................+"},
    {"+......F.......+.......+............V............................+.................................+"},
    {"+...............V....+...............................................................Y.............+"},
    {"+....................F+.......+++............++....................................................+"},
    {"+.............................+C+.......o....I+.....o...................S..........F...............+"},
    {"+..........................................+++.....................................................+"},
    {"+.............................+.........................V..........................................+"},
    {"+.........Y...........H......+..........o.......+..A...........+...................................+"},
    {"+...........................+..................o+............++....G..............YV...............+"},
    {"+.....................................................+......+.I...................................+"},
    {"+......................+++.......................+++..........+....................................+"},
    {"+.....................+..U+......................V........+....+.............Y.....................+"},
    {"+.......H...........++...++........................................................................+"},
    {"+.......................+Y................++...................M...................................+"},
    {"+......................................+...G+...........T..........................................+"},
    {"+...H..............W............................................................Y..................+"},
    {"+..................................................................................................+"},
    {"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"},
};
bool isf[100][100];
int movex[4] = { 0,-1,0,1 };
int movey[4] = { -1,0,1,0 };
//H巨坑 I铁矿 C煤矿 G金矿 o小镇 Y城市 V洞穴 S飞船 F战场 M沼泽 T钛矿 P前哨 B硫磺矿 K军事基地
int Outpostx[100], opxi = 0;
int Outposty[100], opyi = 0;
w way[100] = {
    {"池塘",{"进入森林","背包","状态","装备","制作"}, 5},
    {"帮助&设置",{"制造配方"},1}
};
int waynum = 2;
bool isw[100] = { true, false, false };
bool isb[100] = { true, false, false };
thing nowaxe, nowpickaxe, nowweapon, nowhoe;
thing bag[1000] = {
    {"退出","退出",0,0,0,0,false},
};
string outbutton()
{
    char c;
    int now = 0;
    for (int i = 0; i < 100; i++)
    {
        if (isb[i] == true)
        {
            now = i;
        }
    }
    while (1)
    {
        system("cls");
        for (int i = 0; way[i].name != ""; i++)
        {
            if (isw[i] == true)
            {
                cout << "*" << way[i].name << "*";
            }
            else
            {
                cout << " " << way[i].name << " ";
            }
        }
        cout << endl;
        for (int i = 0; way[nowway].b[i] != ""; i++)
        {
            if (isb[i] == true)
            {
                cout << ">" << way[nowway].b[i] << "<" << endl;
            }
            else
            {
                cout << " " << way[nowway].b[i] << " " << endl;
            }
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isb[now] = false;
            isb[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && way[nowway].b[now + 1] != "")
        {
            isb[now] = false;
            isb[now + 1] = true;
            now += 1;
        }
        if (c == 'a' && nowway > 0)
        {
            isw[nowway] = false;
            isw[nowway - 1] = true;
            nowway -= 1;
            isb[now] = false;
            isb[0] = true;
        }
        if (c == 'd' && way[nowway + 1].name != "")
        {
            isw[nowway] = false;
            isw[nowway + 1] = true;
            nowway += 1;
            isb[now] = false;
            isb[0] = true;
        }
        if (c == 32)
        {
            return way[nowway].b[now];
        }
    }
    return "";
}
string outbag()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    while (1)
    {
        system("cls");
        for (int i = 0; bag[i].name != ""; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << bag[i].name << "<";
            }
            else
            {
                cout << " " << bag[i].name << " ";
            }
            for (int j = 0; j < 20 - bag[i].name.size() - to_string(bag[i].num).size(); j++)
            {
                cout << " ";
            }
            cout << bag[i].num << "    " << bag[i].durability << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && bag[now + 1].name != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            return bag[now].name;
        }
    }
    return 0;
}
bool skills[10];//勘察术 美食家 矿工 收集家 野蛮人 战士 铠甲人 医生 忍者
int fight(string hn, int hmh, int ha, int hd, int hh)
{
    while (1)
    {
        if (nowweapon.type == "剑") cout << "1,扎刺";
        else if (nowweapon.type == "刀") cout << "1,劈砍";
        else if (nowweapon.type == "机枪") cout << "1,扫射";
        else if (nowweapon.type == "手枪") cout << "1,射击";
        else if (nowweapon.type == "") cout << "1,拳击";
        bool is1 = false, is2 = false, is3 = false;
        int i1, i2, i3;
        for (int i = 0; i < 1000; i++)
        {
            if (bag[i].name == "手雷" && bag[i].num != 0)
            {
                cout << " 2,丢出[" << bag[i].num << "]";
                is1 = true;
                i1 = i;
                break;
            }
        }
        for (int i = 0; i < 1000; i++)
        {
            if (bag[i].name == "长矛" && bag[i].num != 0)
            {
                cout << " 3,投掷[" << bag[i].num << "]";
                is2 = true;
                i2 = i;
                break;
            }
        }
        for (int i = 0; i < 1000; i++)
        {
            if (bag[i].name == "熏肉" && bag[i].num != 0)
            {
                cout << " 4,吃肉[" << bag[i].num << "]";
                is3 = true;
                i3 = i;
                break;
            }
        }
        if (skills[7])
        {
            cout << "5,医治";
        }
        string which;
        cin >> which;
        int bullet = 0, missile = 0;
        for (int i = 0; i < 1000; i++)
        {
            if (bag[i].name == "子弹")
            {
                bullet = bag[i].num;
            }
            if (bag[i].name == "导弹")
            {
                missile = bag[i].num;
            }
            else if (bag[i].name == "")
            {
                break;
            }
        }
        if (which == "1")
        {
            if (nowweapon.type == "剑" || nowweapon.type == "刀" || nowweapon.type == "")
            {
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "] @       E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]  @      E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]   @     E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]    @    E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]     @   E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]      @  E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]       @ E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]        @E[" << hh << "/" << hmh << "]";
                if (skills[5]) hh -= (attack + nowweapon.attack) * 2 - hd;
                else hh -= attack + nowweapon.attack - hd;
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]      @  E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]    @    E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]  @      E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
            }
            else if (nowweapon.name == "激光步枪" || bullet > 0 || (nowweapon.name == "火箭筒" && missile > 0))
            {
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@o       E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@ o      E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@  o     E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@   o    E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@    o   E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@     o  E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@      o E[" << hh << "/" << hmh << "]";
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@       oE[" << hh << "/" << hmh << "]";
                if (skills[5]) hh -= (attack + nowweapon.attack) * 2 - hd;
                else hh -= attack + nowweapon.attack - hd;
                Sleep(10);
                system("cls");
                cout << "nnnnn";
                cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
            }
            else if (bullet <= 0 || (nowweapon.name == "火箭筒" && missile <= 0))
            {
                MessageBox(0, TEXT("没弹药了..."), TEXT("重要提示"), MB_OK);
            }
        }
        else if (which == "2" && is1)
        {
            hh -= 500;
            system("cls");
            cout << "砰!";
            Sleep(1000);
            system("cls");
            cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
            bag[i1].num--;
        }
        else if (which == "3" && is2)
        {
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@>       E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@->      E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@ ->     E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@  ->    E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@   ->   E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@    ->  E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@     -> E[" << hh << "/" << hmh << "]";
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@      ->E[" << hh << "/" << hmh << "]";
            hh -= 200 - hd;
            Sleep(10);
            system("cls");
            cout << "nnnnn";
            cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
            bag[i2].num--;
        }
        else if (which == "4" && is3)
        {
            if (skills[2])
            {
                cout << "生命+1000";
                health += 1000;
                if (health > maxhealth)
                {
                    health = maxhealth;
                }
            }
            else
            {
                cout << "生命+500";
                health += 500;
                if (health > maxhealth)
                {
                    health = maxhealth;
                }
            }
            bag[is3].num--;
        }
        else if (which == "5" && skills[7])
        {
            cout << "生命+1500";
            health += 1500;
            if (health > maxhealth)
            {
                health = maxhealth;
            }
        }
        if (hh <= 0)
        {
            cout << "对方死亡";
            Sleep(1000);
            return 1;
        }
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@       E [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@      E  [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@     E   [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@    E    [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@   E     [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@  E      [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@ E       [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@E        [" << hh << "/" << hmh << "]";
        if (skills[8])
        {
            if (rand() % 3 == 2) health -= ha + -defense;
        }
        else if (rand() % 2) health -= ha + -defense;
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@  E      [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@    E    [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@      E  [" << hh << "/" << hmh << "]";
        Sleep(10);
        system("cls");
        cout << "nnnnn";
        cout << "[" << health << "/" << maxhealth << "]@        E[" << hh << "/" << hmh << "]";
        Sleep(1000);
        cout << endl;
        if (health <= 0)
        {
            cout << "你死亡";
            Sleep(1000);
            return 0;
        }
    }
    return 0;
}
void slowly(const char* p)
{
    while (1)
    {
        if (*p != 0)
        {
            printf("%c", *p++);
        }
        else
        {
            break;
        }
        Sleep(75);
    }
}
int welcome()
{
    cout << "野外生存1.1.0 (不支持存档)" << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "         本页面会持续更新...   " << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "" << endl;
    cout << "" << endl;
    _getch();
    return 0;
}
int start()
{
    system("cls");
    cout << "□□□□□□■□□□□□□□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□■■□□□□□□□□□□□□□□□□□■□□" << endl;
    cout << "□□□□□□■■■□□□□□□□□□□□□□□□■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■□□□□■■■■□□" << endl;
    cout << "□□■□■□■□■□■□■□■□■□■■■■■■■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■■■■■■■■□□□" << endl;
    cout << "□□□□□□□□■■■■■□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□■■■□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□□■■■□□□□□□□□□□□□" << endl;
    slowly("一天,你坐着飞机,正打算去美国...");
    Sleep(1000);
    system("cls");
    cout << "□□□□□□■□□□□□□□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□■■□□□□□□□□□□□□□□□□□■□□" << endl;
    cout << "□□□□□□■■■□□□□□□□□□□□□□□□■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■□□□□■■■■□□" << endl;
    cout << "□□■□■□■□■□■□■□■□■□■■■■■■■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■■■■■■■■□□□" << endl;
    cout << "□□□□□□□□■■■■■□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□■■■□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□□■■■□□□□□□□□□□□□" << endl;
    slowly("一边看着电影,一边喝着饮料");
    Sleep(1000);
    system("cls");
    cout << "□□□□□□■□□□□□□□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□■■□□□□□□□□□□□□□□□□□■□□" << endl;
    cout << "□□□□□□■■■□□□□□□□□□□□□□□□■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■□□□□■■■■□□" << endl;
    cout << "□□■□■□■□■□■□■□■□■□■■■■■■■■□□" << endl;
    cout << "□□□■■■■■■■■■■■■■■■■■■■■■■□□□" << endl;
    cout << "□□□□□□□□■■■■■□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□■■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□■■■□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□□■■■□□□□□□□□□□□□" << endl;
    slowly("突然,飞机开始颠簸,你手中饮料摔到了地上,洒了一地");
    Sleep(1000);
    system("cls");
    cout << "□□□□□□□□□□□□□□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□■■■■□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■■■■□□□□□□□□□□□" << endl;
    cout << "□□□□■■■■■■□□■■□□■■■■■■□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■■■■□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□■■■■■■□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□□□□□□□□□□□□□□□□□" << endl;
    slowly("一秒钟后,飞机开始往下坠落");
    Sleep(1000);
    system("cls");
    cout << "□□□□□□□□□□□□□□□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□■■■■□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■■■■□□□□□□□□□□□" << endl;
    cout << "□□□□■■■■■■□□■■□□■■■■■■□□□□□□" << endl;
    cout << "□□□□□□□□□■■■■■■■■□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□■■■■■■□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□■■□□□□□□□□□□□□□□" << endl;
    cout << "□□□□□□□□□□□□□□□□□□□□□□□□□□□□" << endl;
    slowly("行李架上的行李掉了下来,砸中了你,你眼前一黑,昏了过去...");
    Sleep(1000);
    system("cls");
    Sleep(3000);
    slowly("醒来后,你发现你躺在一个池塘边,靠着石头。");
    _getch();
    return 0;
}
bool isinto = false;
int town(int y, int x)
{
    system("cls");
    cout << " ___小镇_______" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)         |" << endl;
    cout << "|______________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "一个村民手拿大刀,拦在了入口处" << endl;
        _getch();
        if (!fight("村民", 1000, 100, 10, 1000))
        {
            system("cls");
            slowly("眼前的世界烟消云散...");
            Sleep(1000);
            return 0;
        }
        system("cls");
        int xunrou = rand() % 3, changmao = rand() % 2, rou = rand() % 5;
        cout << "掉落:" << endl;
        cout << "1,熏肉*" << xunrou << endl;
        cout << "2,肉*" << rou << endl;
        cout << "3,长矛*" << changmao << endl;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "熏肉")
            {
                bag[j].num += xunrou;
                break;
            }
            if (bag[j].name == "" && xunrou != 0)
            {
                bag[j] = { "食物","熏肉",0,0,0,xunrou,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "肉")
            {
                bag[j].num += rou;
                break;
            }
            if (bag[j].name == "" && rou != 0)
            {
                bag[j] = { "食物","肉",0,0,0,rou,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "长矛")
            {
                bag[j].num += changmao;
                break;
            }
            if (bag[j].name == "" && changmao != 0)
            {
                bag[j] = { "武器","长矛",0,0,0,changmao,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        cout << "另一个村民手拿着长矛,跑了过来" << endl;
        _getch();
        if (!fight("村民", 1000, 100, 10, 1000))
        {
            system("cls");
            slowly("眼前的世界烟消云散...");
            Sleep(1000);
            return 0;
        }
        int pimao = rand() % 3, buliao = rand() % 5;
        rou = rand() % 5;
        cout << "掉落:" << endl;
        cout << "1,皮毛*" << pimao << endl;
        cout << "2,肉*" << rou << endl;
        cout << "3,布料*" << changmao << endl;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "皮毛")
            {
                bag[j].num += pimao;
                break;
            }
            if (bag[j].name == "" && pimao != 0)
            {
                bag[j] = { "物品","皮毛",0,0,0,pimao,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "肉")
            {
                bag[j].num += rou;
                break;
            }
            if (bag[j].name == "" && rou != 0)
            {
                bag[j] = { "食物","肉",0,0,0,rou,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "布料")
            {
                bag[j].num += buliao;
                break;
            }
            if (bag[j].name == "" && buliao != 0)
            {
                bag[j] = { "物品","布料",0,0,0,buliao,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        cout << "安静下来了" << endl;
        _getch();
        pimao = rand() % 3; buliao = rand() % 5; rou = rand() % 5;
        cout << "获得:" << endl;
        cout << "1,皮毛*" << pimao << endl;
        cout << "2,肉*" << rou << endl;
        cout << "3,布料*" << changmao << endl;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "皮毛")
            {
                bag[j].num += pimao;
                break;
            }
            if (bag[j].name == "")
            {
                bag[j] = { "物品","皮毛",0,0,0,pimao,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "肉")
            {
                bag[j].num += rou;
                break;
            }
            if (bag[j].name == "")
            {
                bag[j] = { "食物","肉",0,0,0,rou,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "布料")
            {
                bag[j].num += buliao;
                break;
            }
            if (bag[j].name == "")
            {
                bag[j] = { "物品","布料",0,0,0,buliao,false,0 };
                break;
            }
        }
        _getch();
        slowly("你离开了小镇...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
        return 1;
    }
    else if (c != 'n')
    {
        town(y, x);
    }
    return 1;
}
int hole(int y, int x)
{
    system("cls");
    cout << " __巨坑_______" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)         |" << endl;
    cout << "|______________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "外星人举起了枪..." << endl;
        _getch();
        fight("外星人", 10000, 1000, 100, 10000);
        int waixinghejin = rand() % 3 + 1, taihejin = rand() % 5 + 1, jiguangbuqiang = rand() % 3 + 1;
        cout << "掉落:" << endl;
        cout << "1,外星合金*" << waixinghejin << endl;
        cout << "2,钛合金*" << taihejin << endl;
        cout << "3,激光步枪*" << jiguangbuqiang << endl;
        bool isfind = false;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "外星合金")
            {
                isfind = true;
                bag[j].num += waixinghejin;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","外星合金",0,0,0,waixinghejin,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "钛合金")
            {
                isfind = true;
                bag[j].num += taihejin;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","钛合金",0,0,0,taihejin,false,0 };
                break;
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "激光步枪")
            {
                isfind = true;
                bag[j].num += jiguangbuqiang;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "武器","激光步枪",0,0,0,jiguangbuqiang,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        slowly("你离开了巨坑...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
    }
    else if (c != 'n')
    {
        hole(y, x);
    }
    return 0;
}
int iron(int y, int x)
{
    system("cls");
    cout << " ___铁矿_______" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)        |" << endl;
    cout << "|_____________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "野兽来袭..." << endl;
        _getch();
        fight("野兽", 5000, 500, 50, 5000);
        int tie = rand() % 3 + 1;
        cout << "掉落:" << endl;
        cout << "1,铁*" << tie << endl;
        bool isfind = false;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "铁")
            {
                isfind = true;
                bag[j].num += tie;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","铁",0,0,0,tie,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        for (int i = 0; i < 100; i++)
        {
            if (way[i].name == "挖矿之路")
            {
                way[i].b[way[i].bnum++] = "挖铁矿";
                break;
            }
            if (way[i].name == "")
            {
                way[waynum++] = { "挖矿之路",{"挖铁矿"},1 };
                break;
            }
        }
        slowly("你离开了铁矿...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
    }
    else if (c != 'n')
    {
        iron(y, x);
    }
    return 0;
}
int coal(int y, int x)
{
    system("cls");
    cout << " ___煤矿_______" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)        |" << endl;
    cout << "|_____________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "野兽来袭..." << endl;
        _getch();
        fight("野兽", 7000, 300, 100, 7000);
        int mei = rand() % 3 + 1;
        cout << "掉落:" << endl;
        cout << "1,煤*" << mei << endl;
        bool isfind = false;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "煤")
            {
                isfind = true;
                bag[j].num += mei;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","煤",0,0,0,mei,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        for (int i = 0; i < 100; i++)
        {
            if (way[i].name == "挖矿之路")
            {
                way[i].b[way[i].bnum++] = "挖煤矿";
                break;
            }
            if (way[i].name == "")
            {
                way[waynum++] = { "挖矿之路",{"挖煤矿"},1 };
                break;
            }
        }
        slowly("你离开了煤矿...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
    }
    else if (c != 'n')
    {
        coal(y, x);
    }
    return 0;
}
int gold(int y, int x)
{
    system("cls");
    cout << " ___金矿_______" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)        |" << endl;
    cout << "|_____________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "野兽来袭..." << endl;
        _getch();
        fight("野兽", 10000, 500, 70, 10000);
        int mei = rand() % 3 + 1;
        cout << "掉落:" << endl;
        cout << "1,金*" << mei << endl;
        bool isfind = false;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "金")
            {
                isfind = true;
                bag[j].num += mei;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","金",0,0,0,mei,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        for (int i = 0; i < 100; i++)
        {
            if (way[i].name == "挖矿之路")
            {
                way[i].b[way[i].bnum++] = "挖金矿";
                break;
            }
            if (way[i].name == "")
            {
                way[waynum++] = { "挖矿之路",{"挖金矿"},1 };
                break;
            }
        }
        slowly("你离开了金矿...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
    }
    else if (c != 'n')
    {
        coal(y, x);
    }
    return 0;
}
int brenstone(int y, int x)
{
    system("cls");
    cout << " ___硫磺矿_____" << endl;
    cout << "|是否进入      |" << endl;
    cout << "|(y/n)        |" << endl;
    cout << "|_____________|" << endl;
    char c;
    cin >> c;
    if (c == 'y')
    {
        system("cls");
        cout << "野兽来袭..." << endl;
        _getch();
        fight("野兽", 10000, 800, 10, 10000);
        int mei = rand() % 3 + 1;
        cout << "掉落:" << endl;
        cout << "1,硫磺*" << mei << endl;
        bool isfind = false;
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == "硫磺")
            {
                isfind = true;
                bag[j].num += mei;
                break;
            }
            if (bag[j].name == "" && !isfind)
            {
                bag[j] = { "材料","硫磺",0,0,0,mei,false,0 };
                break;
            }
        }
        _getch();
        system("cls");
        for (int i = 0; i < 100; i++)
        {
            if (way[i].name == "挖矿之路")
            {
                way[i].b[way[i].bnum++] = "挖硫磺矿";
                break;
            }
            if (way[i].name == "")
            {
                way[waynum++] = { "挖矿之路",{"挖硫磺矿"},1 };
                break;
            }
        }
        slowly("你离开了金矿...");
        f[y][x] = 'P';
        Outpostx[opxi++] = x;
        Outposty[opyi++] = y;
    }
    else if (c != 'n')
    {
        coal(y, x);
    }
    return 0;
}
int forest()
{
    int x = 51, y = 14;
    char c;
    for (int i = 0; i < opxi; i++) f[Outposty[i]][Outpostx[i]] = 'P';
    while (1)
    {
        system("cls");
        cout << "水:" << water << "/" << maxwater << endl;
        f[y][x] = '@';
        if (skills[0])
        {
            isf[y + 3][x] = true;
            isf[y + 2][x + 1] = true; isf[y + 2][x] = true;     isf[y + 2][x - 1] = true;
            isf[y + 1][x + 2] = true; isf[y + 1][x + 1] = true; isf[y + 1][x] = true;     isf[y + 1][x - 1] = true; isf[y + 1][x - 2] = true;
            isf[y][x + 3] = true;     isf[y][x + 2] = true;     isf[y][x + 1] = true; isf[y][x] = true;     isf[y][x - 1] = true; isf[y][x - 2] = true; isf[y][x - 3] = true;
            isf[y - 1][x + 2] = true; isf[y - 1][x + 1] = true; isf[y - 1][x] = true;     isf[y - 1][x - 1] = true; isf[y - 1][x - 2] = true;
            isf[y - 2][x + 1] = true; isf[y - 2][x] = true;     isf[y - 2][x - 1] = true;
            isf[y - 3][x] = true;
        }
        else
        {
            isf[y + 2][x] = true;
            isf[y + 1][x + 1] = true; isf[y + 1][x] = true; isf[y + 1][x - 1] = true;
            isf[y][x + 2] = true;     isf[y][x + 1] = true; isf[y][x]; isf[y][x] = true; isf[y][x - 1] = true; isf[y][x - 2] = true;
            isf[y - 1][x + 1] = true; isf[y - 1][x] = true; isf[y - 1][x - 1] = true;
            isf[y - 2][x] = true;
        }
        for (int i = y - 20; i < y + 20; i++)
        {
            if (i < 0 || i > 25)
            {
                continue;
            }
            for (int j = x - 20; j < x + 20; j++)
            {
                if (j >= 0 && j <= 100)
                {
                    if (isf[i][j])
                    {
                        cout << f[i][j];
                    }
                    else
                    {
                        cout << " ";
                    }
                }
            }
            cout << endl;
        }
        c = _getch();
        water--;
        if (water == 0) MessageBox(0, TEXT("水喝完了"), TEXT("重要提示"), MB_OK);
        if (water == -1) MessageBox(0, TEXT("你感觉口干舌燥"), TEXT("重要提示"), MB_OK);
        if (water == -2)
        {
            MessageBox(0, TEXT("你倒在森林里..."), TEXT("重要提示"), MB_OK);
            system("cls");
            slowly("眼前的世界烟消云散...");
            Sleep(1000);
            f[y][x] = '.';
            return 0;
        }
        int move = 4;
        if (c == 'w')move = 0;
        if (c == 'a')move = 1;
        if (c == 's')move = 2;
        if (c == 'd')move = 3;
        if (move == 4)
        {
            continue;
        }
        if (f[y + movey[move]][x + movex[move]] == 'o')
        {
            if (!town(y + movey[move], x + movex[move]))
            {
                f[y][x] = '.';
                return 0;
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'H')
        {
            if (!hole(y + movey[move], x + movex[move]))
            {
                f[y][x] = '.';
                return 0;
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'I')
        {
            if (!iron(y + movey[move], x + movex[move]))
            {
                f[y][x] = '.';
                return 0;
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'C')
        {
            if (!coal(y + movey[move], x + movex[move]))
            {
                f[y][x] = '.';
                return 0;
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'G')
        {
            if (!gold(y + movey[move], x + movex[move]))
            {
                f[y][x] = '.';
                return 0;
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'P')
        {
            f[y + movey[move]][x + movex[move]] = '@';
            f[y][x] = '.';
            y += movey[move];
            x += movex[move];
            MessageBox(0, TEXT("水补充好了"), TEXT("前方哨所"), MB_OK);
            water = maxwater;
            MessageBox(0, TEXT("熏肉+7"), TEXT("前方哨所"), MB_OK);
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "熏肉")
                {
                    bag[j].num += 7;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "食物","熏肉",0,0,0,7,false,0 };
                    break;
                }
            }
        }
        else if (f[y + movey[move]][x + movex[move]] == 'U')
        {
            slowly("你来到了一个村庄,是时候享用那些人留下的成绩了...");
            int jiguangbuqiang, shoulai, daodan, zidan, buqiang, gang, tie, mei, waixinghejin, taihejin, huojiantong;
            jiguangbuqiang = rand() % 2 + 1; shoulai = rand() % 3 + 2; daodan = rand() % 3 + 1;
            zidan = rand() % 50 + 50; buqiang = rand() % 5 + 1; waixinghejin = rand() % 5 + 5;
            tie = rand() % 10 + 10; mei = rand() % 10 + 10; gang = rand() % 10 + 10;
            taihejin = rand() % 10 + 10, huojiantong = rand() % 2 + 1;
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "激光步枪")
                {
                    bag[j].num += jiguangbuqiang;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "机枪","激光步枪",1000,0,0,jiguangbuqiang,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "手雷")
                {
                    bag[j].num += shoulai;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "武器","手雷",0,0,0,shoulai,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "导弹")
                {
                    bag[j].num += daodan;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "武器","导弹",0,0,0,daodan,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "子弹")
                {
                    bag[j].num += zidan;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "武器","子弹",0,0,0,zidan,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "火箭筒")
                {
                    bag[j].num += huojiantong;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "机枪","火箭筒",700,0,0,huojiantong,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "步枪")
                {
                    bag[j].num += buqiang;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "机枪","步枪",300,0,0,buqiang,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "钢")
                {
                    bag[j].num += gang;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "材料","钢",0,0,0,gang,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "铁")
                {
                    bag[j].num += tie;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "材料","铁",0,0,0,tie,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "煤")
                {
                    bag[j].num += mei;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "材料","煤",0,0,0,mei,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "外星合金")
                {
                    bag[j].num += waixinghejin;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "材料","外星合金",0,0,0,waixinghejin,false,0 };
                    break;
                }
            }
            for (int j = 0; j < 1000; j++)
            {
                if (bag[j].name == "钛合金")
                {
                    bag[j].num += taihejin;
                    break;
                }
                if (bag[j].name == "")
                {
                    bag[j] = { "材料","钛合金",0,0,0,taihejin,false,0 };
                    break;
                }
            }
            MessageBox(0, TEXT("你看着这些东西,突然觉悟"), TEXT("你"), MB_OK);
            MessageBox(0, TEXT("我能造出更多东西了"), TEXT("你"), MB_OK);
            canmakething[canmakethingi++] = "钢";
            canmakething[canmakethingi++] = "精铁";
            canmakething[canmakethingi++] = "钢刀";
            canmakething[canmakethingi++] = "钢剑";
            canmakething[canmakethingi++] = "钢镐";
            canmakething[canmakethingi++] = "钢斧";
            canmakething[canmakethingi++] = "铁刀";
            canmakething[canmakethingi++] = "精铁剑";
            canmakething[canmakethingi++] = "精铁镐";
            canmakething[canmakethingi++] = "精铁斧";
            canmakething[canmakethingi++] = "强·石斧";
            canmakething[canmakethingi++] = "强·石剑";
            canmakething[canmakethingi++] = "强·石镐";
            canmakething[canmakethingi++] = "木锄";
            canmakething[canmakethingi++] = "石锄";
            canmakething[canmakethingi++] = "铁锄";
            canmakething[canmakethingi++] = "工作室";
            _getch();
        }
        if (f[y + movey[move]][x + movex[move]] == 'A')
        {
            f[y][x] = '.';
            return 0;
        }
        if (f[y + movey[move]][x + movex[move]] == '.')
        {
            f[y][x] = '.';
            f[y + movey[move]][x + movex[move]] = '@';
            y += movey[move];
            x += movex[move];
        }
    }
    return 0;
}
int weapon()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    thing bag2[1000];
    int bag2i = 0;
    for (int i = 0; bag[i].name != ""; i++)
    {
        if (bag[i].type == "剑" || bag[i].type == "刀" || bag[i].type == "手枪" || bag[i].type == "机枪")
        {
            bag2[bag2i] = bag[i];
            bag2i++;
        }
    }
    while (1)
    {
        system("cls");
        for (int i = 0; bag2[i].name != ""; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << bag2[i].name << "<";
            }
            else
            {
                cout << " " << bag2[i].name << " ";
            }
            cout << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && bag2[now + 1].name != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            nowweapon = bag2[now];
            return 0;
        }
    }
    return 0;
}
int tool_axe()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    thing bag2[1000];
    int bag2i = 0;
    for (int i = 0; bag[i].name != ""; i++)
    {
        if (bag[i].type == "斧头" && bag[i].num > 0)
        {
            bag2[bag2i] = bag[i];
            bag2i++;
        }
    }
    while (1)
    {
        system("cls");
        for (int i = 0; bag2[i].name != ""; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << bag2[i].name << "<";
            }
            else
            {
                cout << " " << bag2[i].name << " ";
            }
            cout << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && bag2[now + 1].name != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            nowaxe = bag2[now];
            return 0;
        }
    }
    return 0;
}
int tool_pickaxe()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    thing bag2[1000];
    int bag2i = 0;
    for (int i = 0; bag[i].name != ""; i++)
    {
        if (bag[i].type == "镐" && bag[i].num > 0)
        {
            bag2[bag2i] = bag[i];
            bag2i++;
        }
    }
    while (1)
    {
        system("cls");
        for (int i = 0; bag2[i].name != ""; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << bag2[i].name << "<";
            }
            else
            {
                cout << " " << bag2[i].name << " ";
            }
            cout << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && bag2[now + 1].name != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            nowpickaxe = bag2[now];
            return 0;
        }
    }
    return 0;
}
int tool_hoe()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    thing bag2[1000];
    int bag2i = 0;
    for (int i = 0; bag[i].name != ""; i++)
    {
        if (bag[i].type == "锄" && bag[i].num > 0)
        {
            bag2[bag2i] = bag[i];
            bag2i++;
        }
    }
    while (1)
    {
        system("cls");
        for (int i = 0; bag2[i].name != ""; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << bag2[i].name << "<";
            }
            else
            {
                cout << " " << bag2[i].name << " ";
            }
            cout << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && bag2[now + 1].name != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            nowhoe = bag2[now];
            return 0;
        }
    }
    return 0;
}
string make()
{
    char c;
    int now = 0;
    bool isbag[1000] = { true, false };
    while (1)
    {
        system("cls");
        for (int i = 0; i < canmakethingi; i++)
        {
            if (isbag[i] == true)
            {
                cout << ">" << canmakething[i] << "<";
            }
            else
            {
                cout << " " << canmakething[i] << " ";
            }
            cout << endl;
        }
        c = _getch();
        if (c == 'w' && now > 0)
        {
            isbag[now] = false;
            isbag[now - 1] = true;
            now -= 1;
        }
        if (c == 's' && canmakething[now + 1] != "")
        {
            isbag[now] = false;
            isbag[now + 1] = true;
            now += 1;
        }
        if (c == 32)
        {
            return canmakething[now];
        }
    }
    return 0;
}
int make(string thi[100], int num[100], thing makething)
{
    bool all = true;
    for (int i = 0; thi[i] != ""; i++)
    {
        for (int j = 0; bag[j].name != ""; j++)
        {
            if (bag[j].name == thi[i])
            {
                all &= bag[j].num >= num[i];
            }
        }
    }
    if (all)
    {
        for (int i = 0; thi[i] != ""; i++)
        {
            for (int j = 0; bag[j].name != ""; j++)
            {
                if (bag[j].name == thi[i])
                {
                    bag[j].num -= num[i];
                }
            }
        }
        for (int j = 0; j < 1000; j++)
        {
            if (bag[j].name == makething.name)
            {
                bag[j].num++;
                break;
            }
            if (bag[j].name == "")
            {
                bag[j] = makething;
                break;
            }
        }
        cout << "制作成功" << endl;
        return 1;
    }
    else
    {
        cout << "材料不够..." << endl;
        return 0;
    }
    return 0;
}
int main()
{
    srand((unsigned)time(NULL));
    welcome();
    start();
    while (1)
    {
        string a = outbutton();
        if (a == "进入森林")
        {
            system("cls");
            water = maxwater;
            if (isinto == false)
            {
                isinto = true;
                slowly("你进入森林,慢慢走着,竟发现了一个完好的斧头,躺在一块巨岩上");
                cout << endl;
                slowly("你拿起斧头,仔细端详一番,发现这斧头竟是崭新的!");
                cout << endl;
                cout << "t你获得了一把木斧";
                bag[bagi++] = { "斧头","木斧",10,1,0,1,false,10,20 };
                _getch();
                cout << endl;
                slowly("你把斧头带走了...");
                Sleep(1000);
                way[0].b[way[0].bnum++] = "伐木";
            }
            else
            {
                slowly("你进入森林");
                forest();
            }
        }
        else if (a == "背包")
        {
            system("cls");
            outbag();
        }
        else if (a == "状态")
        {
            system("cls");
            cout << "生命:" << health << "/" << maxhealth << endl;
            cout << "防御:" << defense;
            cout << "攻击" << attack << "+" << nowweapon.attack << "(" << attack + nowweapon.attack << ")" << endl;
            cout << "装备武器:";
            if (nowweapon.name != "") cout << nowweapon.name;
            else cout << "未装备";
            cout << "     剩余耐久:" << nowweapon.durability << endl;
            cout << "装备斧头:";
            if (nowaxe.name != "") cout << nowaxe.name;
            else cout << "未装备";
            cout << "     剩余耐久:" << nowaxe.durability << endl;
            cout << "装备镐:";
            if (nowpickaxe.name != "") cout << nowpickaxe.name;
            else cout << "未装备";
            cout << "     剩余耐久:" << nowpickaxe.durability << endl;
            cout << "装备锄:";
            if (nowhoe.name != "") cout << nowhoe.name;
            else cout << "未装备";
            cout << "     剩余耐久:" << nowhoe.durability << endl;
            _getch();
        }
        else if (a == "伐木")
        {
            if (nowaxe.name == "")
            {
                cout << "你未装备着斧头...";
                Sleep(1000);
            }
            else
            {
                int ran = rand() % 100;
                if (ran < 9)
                {
                    cout << "你遇到了野兽" << endl;
                    _getch();
                    fight("野兽", 3000, 50, 5, 3000);

                }
                else
                {
                    ran = rand() % 7 + 3;
                    cout << "林地上散落着枯枝败叶" << endl;
                    Sleep((rand() % 10000 + 10000) / nowaxe.sharp);
                    cout << "树上掉下来了几根树枝" << endl;
                    Sleep((rand() % 10000 + 10000) / nowaxe.sharp);
                    cout << "森林里躺着一棵大树" << endl;
                    Sleep((rand() % 10000 + 10000) / nowaxe.sharp);
                    cout << "t你获得了" << ran << "根木头!" << endl;
                    _getch();
                    nowaxe.durability -= 1;
                    if (nowaxe.durability <= 0)
                    {
                        cout << "但很不幸,你的木斧断了..." << endl;
                        cout << "t你少了一把斧头" << endl;
                        for (int i = 0; i < 1000; i++)
                        {
                            if (bag[i].name == nowaxe.name)
                            {
                                bag[i].num--;
                                break;
                            }
                        }
                        nowaxe = {};
                        _getch();
                    }
                    for (int i = 0; i < 1000; i++)
                    {
                        if (bag[i].name == "木头")
                        {
                            bag[i].num += ran;
                            break;
                        }
                        if (bag[i].name == "")
                        {
                            bag[i] = { "材料","木头",0,0,0,ran,false };
                            break;
                        }
                    }
                }
            }
        }
        else if (a == "装备")
        {
            system("cls");
            cout << " _请选择____________________________________________" << endl;
            cout << "|0,退出 1,武器 2,伐木工具 3,挖矿工具 4,种地工具|" << endl;
            cout << "|___________________________________________________|" << endl;
            string x;
            cin >> x;
            if (x == "1")weapon();
            if (x == "2")tool_axe();
            if (x == "3")tool_pickaxe();
            if (x == "4")tool_hoe();
        }
        else if (a == "制作")
        {
            string t = make();
            if (t == "木剑")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 50,0 };
                thing makething = { "剑","木剑",50,0,0,1,false,10,20 };
                make(thi, num, makething);
            }
            else if (t == "木斧")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 50,0 };
                thing makething = { "斧头","木斧",0,0,0,1,false,10,20 };
                make(thi, num, makething);
            }
            else if (t == "木镐")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 50,0 };
                thing makething = { "镐","木镐",0,0,0,1,false,10,20 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                            break;
                        }
                    }
                }
            }
            else if (t == "工作台")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 100,0 };
                thing makething = { "物品","工作台",0,0,0,1,false,0,100 };
                if (make(thi, num, makething))
                {
                    canmakething[canmakethingi++] = "陷阱";
                    canmakething[canmakethingi++] = "长矛";
                    canmakething[canmakethingi++] = "木刀";
                    canmakething[canmakethingi++] = "水袋[容量20]";
                    canmakething[canmakethingi++] = "石斧";
                    canmakething[canmakethingi++] = "石镐";
                    canmakething[canmakethingi++] = "石剑";
                    canmakething[canmakethingi++] = "木材";
                    canmakething[canmakethingi++] = "小屋";
                    canmakething[canmakethingi++] = "皮革室";
                }
            }
            else if (t == "陷阱")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 100,0 };
                thing makething = { "物品","陷阱",0,0,0,1,false,0,100 };
                if (make(thi, num, makething))
                {
                    way[waynum++] = { "森林",{"查看陷阱"},1 };
                }
            }
            else if (t == "石剑")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 30,50 };
                thing makething = { "剑","石剑",100,0,0,1,false,0,50 };
                make(thi, num, makething);
            }
            else if (t == "石斧")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 30,50 };
                thing makething = { "斧头","石斧",0,0,0,1,false,20,50 };
                make(thi, num, makething);
            }
            else if (t == "石镐")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 30,50 };
                thing makething = { "镐","石镐",0,0,0,1,false,20,50 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "长矛")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 10,20 };
                thing makething = { "武器","长矛",0,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "水袋[容量20]")
            {
                string thi[100] = { "木头","皮毛" };
                int num[100] = { 5,50 };
                thing makething = { "水袋","水袋",0,0,0,1,false,20,100 };
                if (make(thi, num, makething))
                {
                    if (maxwater < 20)
                    {
                        maxwater = 20;
                    }
                }
            }
            else if (t == "木刀")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 60,0 };
                thing makething = { "刀","木刀",75,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "木甲")
            {
                string thi[100] = { "木头","皮革" };
                int num[100] = { 60,45 };
                thing makething = { "甲","木甲",0,20,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "木材")
            {
                string thi[100] = { "木头" };
                int num[100] = { 10 };
                thing makething = { "材料","木材",0,0,0,5,false,0,0 };
                make(thi, num, makething);
            }
            else if (t == "皮革室")
            {
                string thi[100] = { "木头","木材","石头","" };
                int num[100] = { 200,100,100,0,0 };
                thing makething = { "房间","皮革室",0,0,0,1,false,0,0 };
                if (make(thi, num, makething))
                {
                    MessageBox(0, TEXT("有皮革了..."), TEXT("你"), MB_OK);
                    way[waynum++] = { "皮革室",{"制造皮革",},1 };
                }
            }
            else if (t == "小屋")
            {
                string thi[100] = { "木头","木材","石头","皮革","" };
                int num[100] = { 200,100,100,75,0 };
                thing makething = { "房间","小屋",0,0,0,1,false,0,0 };
                if (make(thi, num, makething))
                {
                    MessageBox(0, TEXT("终于有个可以休息的地方了..."), TEXT("你"), MB_OK);
                    MessageBox(0, TEXT("我可以造一些更好的东西了..."), TEXT("你"), MB_OK);
                    way[waynum++] = { "小屋",{"添柴",},1 };
                    canmakething[canmakethingi++] = "岩石";
                    canmakething[canmakethingi++] = "石刀";
                    canmakething[canmakethingi++] = "精·石剑";
                    canmakething[canmakethingi++] = "精·石斧";
                    canmakething[canmakethingi++] = "精·石剑";
                    canmakething[canmakethingi++] = "铁剑";
                    canmakething[canmakethingi++] = "铁斧";
                    canmakething[canmakethingi++] = "铁剑";
                    canmakething[canmakethingi++] = "客舍";
                    canmakething[canmakethingi++] = "水桶[容量30]";
                    canmakething[canmakethingi++] = "熏肉房";
                }
            }
            else if (t == "岩石")
            {
                string thi[100] = { "石头" };
                int num[100] = { 15,0 };
                thing makething = { "材料","岩石",0,0,0,5,false,0,0 };
                make(thi, num, makething);
            }
            else if (t == "精·石剑")
            {
                string thi[100] = { "木头","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "剑","精·石剑",160,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "精·石斧")
            {
                string thi[100] = { "木头","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "斧头","精·石斧",0,0,0,1,false,30,100 };
                make(thi, num, makething);
            }
            else if (t == "精·石镐")
            {
                string thi[100] = { "木头","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "镐","精·石镐",0,0,0,1,false,30,100 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "精·长矛")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 5,10 };
                thing makething = { "武器","长矛",0,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "铁剑")
            {
                string thi[100] = { "木头","铁" };
                int num[100] = { 200,50 };
                thing makething = { "剑","铁剑",200,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "铁斧")
            {
                string thi[100] = { "木头","铁" };
                int num[100] = { 200,50 };
                thing makething = { "斧头","铁斧",0,0,0,1,false,50,150 };
                make(thi, num, makething);
            }
            else if (t == "铁镐")
            {
                string thi[100] = { "木头","铁" };
                int num[100] = { 200,50 };
                thing makething = { "镐","铁镐",0,0,0,1,false,50,150 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "石刀")
            {
                string thi[100] = { "木头","岩石" };
                int num[100] = { 30,30 };
                thing makething = { "刀","石刀",130,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "铁刀")
            {
                string thi[100] = { "木头","铁" };
                int num[100] = { 100,50 };
                thing makething = { "刀","铁刀",180,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "钢刀")
            {
                string thi[100] = { "木头","钢" };
                int num[100] = { 100,50 };
                thing makething = { "刀","钢刀",230,0,0,1,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "水桶[容量30]")
            {
                string thi[100] = { "木材","皮毛","岩石" };
                int num[100] = { 50,50,100 };
                thing makething = { "水袋","水桶",0,0,0,1,false,20,100 };
                if (make(thi, num, makething))
                {
                    if (maxwater < 30)
                    {
                        maxwater = 30;
                    }
                }
            }
            else if (t == "熏肉房")
            {
                string thi[100] = { "木材","皮毛","岩石" };
                int num[100] = { 100,50,100 };
                thing makething = { "房间","熏肉房",0,0,0,1,false,20,100 };
                if (make(thi, num, makething))
                {
                    MessageBox(0, TEXT("好吃的熏肉,可以自制了"), TEXT("你"), MB_OK);
                    way[nowway++] = { "熏肉房",{"做熏肉"},1 };
                }
            }
            else if (t == "强·石剑")
            {
                string thi[100] = { "木材","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "剑","强·石剑",250,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "强·石斧")
            {
                string thi[100] = { "木材","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "斧头","强·石斧",0,0,0,1,false,40,120 };
                make(thi, num, makething);
            }
            else if (t == "强·石镐")
            {
                string thi[100] = { "木材","岩石" };
                int num[100] = { 100,50 };
                thing makething = { "镐","强·石镐",0,0,0,1,false,40,120 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "钢剑")
            {
                string thi[100] = { "木头","钢" };
                int num[100] = { 100,50 };
                thing makething = { "剑","钢剑",300,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "钢斧")
            {
                string thi[100] = { "木头","钢" };
                int num[100] = { 100,50 };
                thing makething = { "斧头","钢斧",0,0,0,1,false,60,160 };
                make(thi, num, makething);
            }
            else if (t == "钢镐")
            {
                string thi[100] = { "木头","钢" };
                int num[100] = { 100,50 };
                thing makething = { "镐","钢镐",0,0,0,1,false,60,160 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "钢")
            {
                string thi[100] = { "铁","煤" };
                int num[100] = { 10,10 };
                thing makething = { "材料","钢",0,0,0,5,false,20,100 };
                make(thi, num, makething);
            }
            else if (t == "精铁剑")
            {
                string thi[100] = { "木头","精铁" };
                int num[100] = { 200,50 };
                thing makething = { "剑","精铁剑",250,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "精铁斧")
            {
                string thi[100] = { "木头","精铁" };
                int num[100] = { 200,50 };
                thing makething = { "斧头","精铁斧",0,0,0,1,false,60,150 };
                make(thi, num, makething);
            }
            else if (t == "精铁镐")
            {
                string thi[100] = { "木头","精铁" };
                int num[100] = { 200,50 };
                thing makething = { "镐","精铁镐",0,0,0,1,false,60,150 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "木锄")
            {
                string thi[100] = { "木头","" };
                int num[100] = { 50,0 };
                thing makething = { "锄","木锄",0,0,0,1,false,10,20 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "种菜")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "种菜";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "石锄")
            {
                string thi[100] = { "木头","石头" };
                int num[100] = { 20,50 };
                thing makething = { "锄","石锄",0,0,0,1,false,20,50 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "种菜")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "种菜";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "铁锄")
            {
                string thi[100] = { "木头","铁" };
                int num[100] = { 20,50 };
                thing makething = { "锄","铁锄",0,0,0,1,false,30,100 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "种菜")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "种菜";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "精铁")
            {
                string thi[100] = { "铁","" };
                int num[100] = { 10 };
                thing makething = { "材料","精铁",0,0,0,4,false,30,100 };
            }
            else if (t == "大水桶[容量40]")
            {
                string thi[100] = { "木材","皮毛","岩石" };
                int num[100] = { 100,100,100 };
                thing makething = { "水袋","大水桶",0,0,0,1,false,20,100 };
                if (make(thi, num, makething))
                {
                    if (maxwater < 40)
                    {
                        maxwater = 40;
                    }
                }
            }
            else if (t == "工作室")
            {
                string thi[100] = { "木材","皮革","岩石" };
                int num[100] = { 300,300,300 };
                thing makething = { "物品","工作室",0,0,0,1,false,0,200 };
                if (make(thi, num, makething))
                {
                    MessageBox(0, TEXT("终于能好好做一些东西了..."), TEXT("你"), MB_OK);
                    canmakething[canmakethingi++] = "子弹";
                    canmakething[canmakethingi++] = "手枪";
                    canmakething[canmakethingi++] = "金子";
                    canmakething[canmakethingi++] = "水箱[容量50]";
                    canmakething[canmakethingi++] = "锋利·铁剑";
                    canmakething[canmakethingi++] = "锋利·铁镐";
                    canmakething[canmakethingi++] = "锋利·铁斧";
                    canmakething[canmakethingi++] = "耐久·铁镐";
                    canmakething[canmakethingi++] = "耐久·铁斧";
                    canmakething[canmakethingi++] = "锋利·耐久·铁镐";
                    canmakething[canmakethingi++] = "锋利·耐久·铁斧";
                    canmakething[canmakethingi++] = "锋利·钢剑";
                    canmakething[canmakethingi++] = "锋利·钢镐";
                    canmakething[canmakethingi++] = "锋利·钢斧";
                    canmakething[canmakethingi++] = "耐久·钢镐";
                    canmakething[canmakethingi++] = "耐久·钢斧";
                    canmakething[canmakethingi++] = "锋利·耐久·钢镐";
                    canmakething[canmakethingi++] = "锋利·耐久·钢斧";
                    canmakething[canmakethingi++] = "制造室";
                    canmakething[canmakethingi++] = "钉子";
                    canmakething[canmakethingi++] = "钢合金";
                }
            }
            else if (t == "钉子")
            {
                string thi[100] = { "铁" };
                int num[100] = { 1 };
                thing makething = { "材料","钉子",0,0,0,2,false,0,0 };
                make(thi, num, makething);
            }
            else if (t == "子弹")
            {
                string thi[100] = { "钢","硫磺" };
                int num[100] = { 10,10 };
                thing makething = { "弹药","子弹",0,0,0,10,true,0,1 };
                make(thi, num, makething);
            }
            else if (t == "手枪")
            {
                string thi[100] = { "钢","铁" };
                int num[100] = { 100,100 };
                thing makething = { "手枪","手枪",500,0,0,1,false,0,1 };
                make(thi, num, makething);
            }
            else if (t == "金子")
            {
                string thi[100] = { "金","" };
                int num[100] = { 1 };
                thing makething = { "钱","金子",0,0,0,10,false,0,1 };
                make(thi, num, makething);
            }
            else if (t == "水箱[容量50]")
            {
                string thi[100] = { "木材","皮毛","岩石","钉子" };
                int num[100] = { 100,100,100,50 };
                thing makething = { "水袋","水箱",0,0,0,1,false,20,100 };
                if (make(thi, num, makething))
                {
                    if (maxwater < 50)
                    {
                        maxwater = 50;
                    }
                }
            }
            else if (t == "锋利·铁剑")
            {
                string thi[100] = { "铁剑","精铁" };
                int num[100] = { 1,50 };
                thing makething = { "剑","锋利·铁剑",350,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "锋利·铁斧")
            {
                string thi[100] = { "铁斧","精铁" };
                int num[100] = { 1,50 };
                thing makething = { "斧头","锋利·铁斧",0,0,0,1,false,70,150 };
                make(thi, num, makething);
            }
            else if (t == "锋利·铁镐")
            {
                string thi[100] = { "铁镐","精铁" };
                int num[100] = { 1,50 };
                thing makething = { "镐","锋利·铁镐",0,0,0,1,false,70,150 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "耐久·铁斧")
            {
                string thi[100] = { "铁斧","铁" };
                int num[100] = { 1,100 };
                thing makething = { "斧头","耐久·铁斧",0,0,0,1,false,60,200 };
                make(thi, num, makething);
            }
            else if (t == "耐久·铁镐")
            {
                string thi[100] = { "铁镐","铁" };
                int num[100] = { 1,100 };
                thing makething = { "镐","耐久·铁镐",0,0,0,1,false,60,200 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "锋利·耐久·铁斧")
            {
                string thi[100] = { "耐久·铁斧","精铁" };
                int num[100] = { 1,50 };
                thing makething = { "斧头","锋利·耐久·铁斧",0,0,0,1,false,70,200 };
                make(thi, num, makething);
            }
            else if (t == "锋利·耐久·铁镐")
            {
                string thi[100] = { "耐久·铁镐","精铁" };
                int num[100] = { 1,50 };
                thing makething = { "镐","锋利·耐久·铁镐",0,0,0,1,false,70,200 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "锋利·钢剑")
            {
                string thi[100] = { "钢剑","钢合金" };
                int num[100] = { 1,50 };
                thing makething = { "剑","锋利·钢剑",400,0,0,1,false,0,100 };
                make(thi, num, makething);
            }
            else if (t == "锋利·钢斧")
            {
                string thi[100] = { "钢斧","钢合金" };
                int num[100] = { 1,50 };
                thing makething = { "斧头","锋利·钢斧",0,0,0,1,false,80,150 };
                make(thi, num, makething);
            }
            else if (t == "锋利·钢镐")
            {
                string thi[100] = { "钢镐","钢合金" };
                int num[100] = { 1,50 };
                thing makething = { "镐","锋利·钢镐",0,0,0,1,false,80,150 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "耐久·钢斧")
            {
                string thi[100] = { "钢斧","钢" };
                int num[100] = { 1,100 };
                thing makething = { "斧头","耐久·钢斧",0,0,0,1,false,70,230 };
                make(thi, num, makething);
            }
            else if (t == "耐久·钢镐")
            {
                string thi[100] = { "钢镐","钢" };
                int num[100] = { 1,100 };
                thing makething = { "镐","耐久·钢镐",0,0,0,1,false,70,230 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "锋利·耐久·钢斧")
            {
                string thi[100] = { "耐久·钢斧","钢合金" };
                int num[100] = { 1,50 };
                thing makething = { "斧头","锋利·耐久·钢斧",0,0,0,1,false,80,230 };
                make(thi, num, makething);
            }
            else if (t == "锋利·耐久·钢镐")
            {
                string thi[100] = { "耐久·钢镐","钢合金" };
                int num[100] = { 1,50 };
                thing makething = { "镐","锋利·耐久·钢镐",0,0,0,1,false,80,230 };
                if (make(thi, num, makething))
                {
                    for (int i = 0; i < 100; i++)
                    {
                        if (way[0].b[i] == "矿洞")
                        {
                            break;
                        }
                        if (way[0].b[i] == "")
                        {
                            way[0].b[i] = "矿洞";
                            way[0].bnum++;
                        }
                    }
                }
            }
            else if (t == "钢合金")
            {
                string thi[100] = { "钢","金" };
                int num[100] = { 5,5 };
                thing makething = { "材料","钢合金",0,0,0,1,false,0,1 };
                make(thi, num, makething);
            }
        }
        else if (a == "查看陷阱")
        {
            cout << "草丛一点动静" << endl;
            Sleep(rand() % 10000 + 1000);
            cout << "好像有东西掉进了陷阱" << endl;
            Sleep(rand() % 10000 + 1000);
            cout << "陷阱满了" << endl;
            Sleep(rand() % 10000 + 1000);
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "块肉!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "肉")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "食物","肉",0,0,0,ran,false };
                        break;
                    }
                }
            }
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "片鳞片!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "鳞片")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "物品","鳞片",0,0,0,ran,false };
                        break;
                    }
                }
            }
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "片皮毛!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "皮毛")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "材料","皮毛",0,0,0,ran,false };
                        break;
                    }
                }
            }
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "片布料!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "布料")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "材料","布料",0,0,0,ran,false };
                        break;
                    }
                }
            }
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "颗牙齿!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "牙齿")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "材料","牙齿",0,0,0,ran,false };
                        break;
                    }
                }
            }
            if (rand() % 2)
            {
                int ran = rand() % 5;
                cout << "t你获得了" << ran << "块垃圾!" << endl;
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "垃圾")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "材料","垃圾",0,0,0,ran,false };
                        break;
                    }
                }
            }
            _getch();
        }
        else if (a == "矿洞")
        {
            if (nowpickaxe.name == "")
            {
                cout << "你未装备着镐啊..." << endl;
                Sleep(1000);
            }
            else
            {
                int ran = rand() % 7 + 3;
                cout << "砰,矿洞里回响着敲打岩石的声音" << endl;
                Sleep((rand() % 10000 + 10000) / nowpickaxe.sharp);
                cout << "几块碎石掉了下来" << endl;
                Sleep((rand() % 10000 + 10000) / nowpickaxe.sharp);
                cout << "一大块岩石倒在地上" << endl;
                Sleep((rand() % 10000 + 10000) / nowpickaxe.sharp);
                cout << "t你获得了" << ran << "块岩石!" << endl;
                _getch();
                nowpickaxe.durability -= 1;
                if (nowpickaxe.durability <= 0)
                {
                    cout << "但很不幸,你的镐断了..." << endl;
                    cout << "t你少了一把镐" << endl;
                    for (int i = 0; i < 1000; i++)
                    {
                        if (bag[i].name == nowpickaxe.name)
                        {
                            bag[i].num--;
                            break;
                        }
                    }
                    nowpickaxe = {};
                    _getch();
                }
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "石头")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "材料","石头",0,0,0,ran,false };
                        break;
                    }
                }
            }
        }
        else if (a == "做熏肉")
        {
            string thi[100] = { "肉","木头" };
            int num[100] = { 5,5 };
            thing makething = { "食物","熏肉",0,0,0,1,false,0,10 };
            make(thi, num, makething);
        }
        else if (a == "制造皮革")
        {
            string thi[100] = { "皮毛","" };
            int num[100] = { 5,0 };
            thing makething = { "材料","皮革",0,0,0,1,false,0,10 };
            make(thi, num, makething);
        }
        else if (a == "添柴")
        {
            for (int i = 0; i < 1000; i++)
            {
                if (bag[i].name == "木头")
                {
                    bag[i].num--;
                }
            }
            cout << "房间暖和...";
        }
        else if (a == "种菜")
        {
            if (nowhoe.name == "")
            {
                cout << "你未装备着锄啊..." << endl;
                Sleep(1000);
            }
            else
            {
                int ran = rand() % 20 + 10;
                cout << "种菜中...    请稍等" << endl;
                Sleep((rand() % 30000 + 30000) / nowhoe.sharp);
                cout << "t你获得了" << ran << "个野菜!" << endl;
                _getch();
                nowhoe.durability -= 1;
                if (nowhoe.durability <= 0)
                {
                    cout << "但很不幸,你的锄断了..." << endl;
                    cout << "t你少了一把锄" << endl;
                    for (int i = 0; i < 1000; i++)
                    {
                        if (bag[i].name == nowhoe.name)
                        {
                            bag[i].num--;
                            break;
                        }
                    }
                    nowhoe = {};
                    _getch();
                }
                for (int i = 0; i < 1000; i++)
                {
                    if (bag[i].name == "野菜")
                    {
                        bag[i].num += ran;
                        break;
                    }
                    if (bag[i].name == "")
                    {
                        bag[i] = { "食物","野菜",0,0,0,ran,false };
                        break;
                    }
                }
            }
        }
        else if (a == "制造配方")
        {
            system("start https://paste.ubuntu.com/p/sm2MWhTXqh/");
        }
        health = maxhealth;
    }
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5521214.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存