#include<windows.h>

#include<cstdio>
#include <iostream>
#include <random>

using namespace std;

int Your = 8, Other = 8;

string daojuname[] = { "放大镜","手铐","小刀","烟","饮料" };

double Yourmoney;



int shi, kong;

int q[10], qlen;//1 实 2 空 

int Rand(int x, int y) {
    random_device seed;
    mt19937 engine(seed());
    uniform_int_distribution<> distrib(x, y);
    return distrib(engine);

}

int T;//ou->you

int daojulen;

int daoju[10];

int daojulen1;

int daoju1[10];

void build_gun() {

    kong = Rand(1, 4);

    shi = Rand(1, 4);

    qlen = 0;

    printf("%d发实弹,%d发空弹\n", shi, kong);

    int a1 = kong, a2 = shi;

    for (int i = 1; i <= kong + shi; i++) {

        //      Sleep(50);

        int sum = Rand(1, a1 + a2);

        if (sum <= a1) {

            a1--;

            q[++qlen] = 2;

        }
        else {

            a2--;

            q[++qlen] = 1;

        }

    }

    int maxn = min(4, 8 - daojulen);

    printf("你获得了%d个道具:\n", maxn);

    daojulen += maxn;

    for (int i = 1; i <= maxn; i++) {

        //      Sleep(50);

        int kkk = Rand(0, 4);

        daoju[kkk]++;

        cout << daojuname[kkk];

        if (i != maxn) {

            printf(",");

        }

    }

    printf("\n");

    maxn = min(4, 8 - daojulen1);

    printf("恶魔获得了%d个道具:\n", maxn);

    daojulen1 += maxn;

    for (int i = 1; i <= maxn; i++) {

        int kkk = Rand(0, 4);

        daoju1[kkk]++;

        cout << daojuname[kkk];

        if (i != maxn) {

            printf(",");

        }

    }

    printf("\n");

    system("pause");

    system("cls");

}

void IsOver() {

    if (Your <= 0) {

        printf("你输了\n");

        system("pause");

        exit(0);

    }

    if (Other <= 0) {

        printf("你赢了\n你获得了奖金$%.2lf\n", Yourmoney);

        system("pause");

        exit(0);

    }

}

void wait() {

    for (int i = 1; i <= 3; i++) {

        Sleep(500);

        printf(".");

    }

    Sleep(500);

}

int Hurt = 1;

int shoukao_you;

void Timeyou() {

    int x;

    while (1) {

        printf("你的生命:%d/8\n恶魔生命:%d/8\n", Your, Other);

        printf("剩余实弹数:%d    剩余空弹数:%d\n", shi, kong);

        printf("你现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("恶魔现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju1[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("现在是你的回合\n");

        printf("你要\n1.向恶魔开枪\n2.向自己开枪\n");

        for (int i = 0; i <= 4; i++) {

            printf("%d.使用", i + 3);

            cout << daojuname[i] << '\n';

        }

        scanf("%d", &x);

        if (1 <= x && x <= 7) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    if (x == 1) {

        printf("你决定向恶魔开枪");

        T++;

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(shi) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

            if (shoukao_you == 1) {

                shoukao_you = 0;

                printf("因为你使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }
        else {

            //          printf("((%lf))\n",Yourmoney);

            Yourmoney += (double)(5000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            //          printf("{{%lf}}\n",Yourmoney);

            shi--;

            qlen--;

            Other -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver();

            if (shoukao_you == 1) {

                shoukao_you = 0;

                Yourmoney += 1000.0;

                printf("因为你使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 2) {

        printf("你决定向自己开枪");

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

        }
        else {

            Yourmoney += 5000.0 * (1 + (double)(shi) * 1.0 / (double)(shi + kong));

            T++;

            shi--;

            qlen--;

            Your -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver();

            if (shoukao_you == 1) {

                shoukao_you = 0;

                printf("因为你使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 3) {//{"放大镜","手铐","小刀","烟","饮料"};

        if (daoju[0]) {

            daoju[0]--;

            daojulen--;

            printf("你使用了放大镜\n");

            wait();

            printf("\n你看到了");

            if (q[qlen] == 1) {

                printf("实弹\n");

                Yourmoney += 2500.0;

            }
            else {

                printf("空弹\n");

            }

            Sleep(500);

            printf("\n");

        }
        else {

            printf("你现在没有放大镜\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 4) {

        if (daoju[1]) {

            if (!shoukao_you) {

                daoju[1]--;

                daojulen--;

                printf("你使用了手铐\n");

                printf("你获得了连开两枪的机会\n");

                shoukao_you = 1;

            }
            else {

                printf("你已经用过手铐了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("你现在没有手铐\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 5) {

        if (daoju[2]) {

            if (Hurt == 1) {

                daoju[2]--;

                daojulen--;

                printf("你使用了小刀\n");

                printf("若下一发为实弹则伤害+1\n");

                Yourmoney += 500.0;

                Hurt = 2;

            }
            else {

                printf("你已经用过小刀了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("你现在没有小刀\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 6) {

        if (daoju[3]) {

            if (Your ^ 8) {

                daoju[3]--;

                daojulen--;

                printf("你使用了烟\n");

                printf("你回复了两点生命\n");

                Yourmoney += 1000.0;

                Your += 2;

                Your = min(Your, 8);

            }
            else {

                printf("你现在不需要烟\n");

            }

            Sleep(1145);

        }
        else {

            printf("你现在没有烟\n");

            Sleep(1145);

            system("cls");

        }

    }
    else {

        if (daoju[4]) {

            daoju[4]--;

            daojulen--;

            printf("你使用了饮料\n");

            wait();

            printf("\n");

            printf("你退了一发");

            if (q[qlen] == 2) {

                printf("空弹");

                kong--;

            }
            else {

                printf("实弹");

                Yourmoney += 500.0;

                shi--;

            }

            qlen--;

            Sleep(500);

        }
        else {

            printf("你现在没有饮料\n");

            Sleep(1145);

            system("cls");

        }

    }

    Sleep(1000);

    system("cls");

}

int Know;//通过放大镜得知下一发子弹 

int shoukaoemo;

void fightyou() {

    printf("恶魔决定向你开枪");

    T++;

    wait();

    if (q[qlen] == 2) {

        Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

        kong--;

        qlen--;

        Hurt = 1;

        Know = 0;

        printf("是空弹\n");

        if (shoukaoemo) {

            printf("因为恶魔使用了手铐,所以可以再来一次\n");

            T--;

            Sleep(500);

            shoukaoemo = 0;

        }

    }
    else {

        Yourmoney += (double)(5000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

        shi--;

        qlen--;

        Your -= Hurt;

        Hurt = 1;

        printf("是实弹\n");

        Know = 0;

        Sleep(500);

        IsOver();

        if (shoukaoemo) {

            printf("因为恶魔使用了手铐,所以可以再来一次\n");

            Yourmoney += 1000.0;

            T--;

            Sleep(500);

            shoukaoemo = 0;

        }

    }

}

void fightemo() {

    printf("恶魔决定向自己开枪");

    wait();

    if (q[qlen] == 2) {

        Yourmoney += 2000.0 * (1 + (double)(shi) * 1.0 / (double)(shi + kong));

        kong--;

        qlen--;

        printf("是空弹\n");

        Know = 0;

    }
    else {

        Yourmoney += 5000.0 * (1 + (double)(kong) * 1.0 / (double)(shi + kong));

        shi--;

        T++;

        qlen--;

        Other -= Hurt;

        Hurt = 1;

        printf("是实弹\n");

        Know = 0;

        Sleep(500);

        IsOver();

        if (shoukaoemo) {

            printf("因为恶魔使用了手铐,所以可以再来一次\n");

            T--;

            Sleep(500);

            shoukaoemo = 0;

        }

    }

}

void Timeother() {

    printf("你的生命:%d/8\n恶魔生命:%d/8\n", Your, Other);

    printf("剩余实弹数:%d    剩余空弹数:%d\n", shi, kong);

    printf("你现在拥有的道具:\n");

    for (int i = 0; i <= 4; i++) {

        cout << daojuname[i];

        printf("%d", daoju[i]);

        printf("个");

        if (i != 4) {

            printf(",");

        }

    }

    printf("\n");

    printf("恶魔现在拥有的道具:\n");

    for (int i = 0; i <= 4; i++) {

        cout << daojuname[i];

        printf("%d", daoju1[i]);

        printf("个");

        if (i != 4) {

            printf(",");

        }

    }

    printf("\n");

    printf("现在是恶魔的回合\n");

    Sleep(1500);



    if (Other != 8) {

        if (daoju1[3]) {

            daoju1[3]--;

            daojulen1--;

            printf("恶魔使用了烟\n");

            printf("恶魔回复了两点生命\n");

            Other += 2;

            Other = min(Other, 8);

            Yourmoney += 1000.0;

            Sleep(1145);

            system("cls");

            return;

        }

    }

    if (Know == 0 && kong == 0) {

        Know = 1;

    }

    if (Know == 0) {

        if (abs(shi - kong) < 2 && kong != 0) {

            if (daoju1[0]) {

                daoju1[0]--;

                daojulen1--;

                printf("恶魔使用了放大镜\n");

                wait();

                printf("\n恶魔看到了");

                if (q[qlen] == 1) {

                    printf("实弹");

                    Yourmoney += 2500.0;

                    Know = 1;

                }
                else {

                    printf("空弹");

                    Know = 2;

                }

                Sleep(1145);

                system("cls");

                return;

            }

        }

    }
    else if (Know == 1) {

        if (Hurt == 1 && daoju1[2]) {

            daoju1[2]--;

            daojulen1--;

            Hurt++;

            printf("恶魔使用了小刀\n");

            printf("若下一发为实弹则伤害+1");

            Yourmoney += 500.0;

            Sleep(1145);

            system("cls");

            return;

        }
        else {

            if (shi >= kong + 1 && daoju1[1] && shoukaoemo != 1) {

                daoju1[1]--;

                daojulen1--;

                shoukaoemo = 1;

                printf("恶魔使用了手铐\n");

                printf("恶魔获得了连开两枪的机会\n");

                Sleep(1145);

                system("cls");

                return;

            }

            fightyou();

            system("cls");

            return;

        }

    }
    else {

        if (daoju1[4]) {

            daoju1[4]--;

            daojulen1--;

            printf("恶魔使用了饮料\n");

            wait();

            printf("\n");

            printf("恶魔退了一发");

            if (q[qlen] == 2) {

                printf("空弹");

                kong--;

            }
            else {

                printf("实弹");

                shi--;

            }

            Know = 0;

            qlen--;

            Sleep(500);

            Sleep(1145);

            system("cls");

            return;

        }
        else {

            fightemo();

            Sleep(1145);

            system("cls");

            return;

        }

    }

    if (shi >= kong) {

        fightyou();

    }
    else {

        fightemo();

    }

    Sleep(1145);

    system("cls");

}

void Play() {

    while (1) {

        if (shi == 0) {

            build_gun();

            T = 0;

            continue;

        }

        if (T % 2 == 0) {

            Timeyou();

        }
        else {

            Timeother();

        }

    }

}

void danrenplay() {

    for (int i = 1; i <= 3; i++) {

        printf(".");

        //      Sleep(1000);

    }

    printf("\n");

    printf("又来了一位挑战者...\n");

    Sleep(1000);

    int x;

    while (1) {

        printf("准备好参与恶魔的游戏吗?胜者带走奖金,败者将会在此长眠\n1.好的\n2.没问题\n");

        scanf("%d", &x);

        if (x == 1 || x == 2) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    while (1) {

        printf("你清楚我们的规则吗?\n1.清楚\n2.不清楚\n");

        scanf("%d", &x);

        if (x == 1 || x == 2) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    if (x == 1) {



    }
    else {

        for (int i = 1; i <= 3; i++) {

            printf(".");

            Sleep(1000);

        }

        printf("\n");

        printf("规则:\n");

        printf("你和恶魔都各有8点生命\n");

        printf("每一回合开始前,你将知道一共有几发实弹,几发空弹,同时双方都将获得4个道具作为补给(上限为8个)\n");

        printf("每一回合,你可以选择对自己开枪,对恶魔开枪或者使用道具\n");

        printf("如果你对自己开枪,若为空弹,则可以继续行动,否则,停止行动\n");

        printf("如果你对恶魔开枪,无论如何,都将停止行动\n");

        printf("道具一览:\n");

        printf("放大镜:可以知道下一发子弹是空弹还是实弹\n");

        printf("手铐:增加一次本回合的行动次数\n");

        printf("小刀:若下一发子弹为实弹,则伤害+1\n");

        printf("烟:可以回复2点生命值\n");

        printf("饮料:可以退一发子弹\n");

        system("pause");

        system("cls");

    }



    printf("好吧\n");

    Sleep(1145);

    printf("游戏将要开始了哦\n");

    Sleep(1145);

    system("cls");

    Play();

}

void IsOver_duo() {

    if (Your <= 0) {

        printf("玩家B赢了\n玩家B获得了奖金$%.2lf\n", Yourmoney);

        system("pause");

        exit(0);

    }
    else if (Other <= 0) {

        printf("玩家A赢了\n玩家A获得了奖金$%.2lf\n", Yourmoney);

        system("pause");

        exit(0);

    }



}

void build_gun_duo() {

    kong = Rand(1, 4);

    shi = Rand(1, 4);

    qlen = 0;

    printf("%d发实弹,%d发空弹\n", shi, kong);

    int a1 = kong, a2 = shi;

    for (int i = 1; i <= kong + shi; i++) {

        //      Sleep(50);

        int sum = Rand(1, a1 + a2);

        if (sum <= a1) {

            a1--;

            q[++qlen] = 2;

        }
        else {

            a2--;

            q[++qlen] = 1;

        }

    }

    int maxn = min(2, 8 - daojulen);

    printf("玩家A获得了%d个道具:\n", maxn);

    daojulen += maxn;

    for (int i = 1; i <= maxn; i++) {

        //      Sleep(50);

        int kkk = Rand(0, 4);

        daoju[kkk]++;

        cout << daojuname[kkk];

        if (i != maxn) {

            printf(",");

        }

    }

    printf("\n");

    maxn = min(2, 8 - daojulen1);

    printf("玩家B获得了%d个道具:\n", maxn);

    daojulen1 += maxn;

    for (int i = 1; i <= maxn; i++) {

        int kkk = Rand(0, 4);

        daoju1[kkk]++;

        cout << daojuname[kkk];

        if (i != maxn) {

            printf(",");

        }

    }

    printf("\n");

    system("pause");

    system("cls");

}

void Timeyou_duo() {

    int x;

    while (1) {

        printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n", Your, Other);

        printf("剩余实弹数:%d    剩余空弹数:%d\n", shi, kong);

        printf("玩家A现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("玩家B现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju1[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("现在是玩家A的回合\n");

        printf("玩家A要\n1.向玩家B开枪\n2.向自己开枪\n");

        for (int i = 0; i <= 4; i++) {

            printf("%d.使用", i + 3);

            cout << daojuname[i] << '\n';

        }

        scanf("%d", &x);

        if (1 <= x && x <= 7) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    if (x == 1) {

        printf("玩家A决定向玩家B开枪");

        T++;

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(shi) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

            if (shoukao_you == 1) {

                shoukao_you = 0;

                printf("因为玩家A使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }
        else {

            //          printf("((%lf))\n",Yourmoney);

            Yourmoney += (double)(5000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            //          printf("{{%lf}}\n",Yourmoney);

            shi--;

            qlen--;

            Other -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver_duo();

            if (shoukao_you == 1) {

                shoukao_you = 0;

                Yourmoney += 1000.0;

                printf("因为玩家A使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 2) {

        printf("玩家A决定向自己开枪");

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

        }
        else {

            Yourmoney += 5000.0 * (1 + (double)(shi) * 1.0 / (double)(shi + kong));

            T++;

            shi--;

            qlen--;

            Your -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver_duo();

            if (shoukao_you == 1) {

                shoukao_you = 0;

                printf("因为玩家A使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 3) {//{"放大镜","手铐","小刀","烟","饮料"};

        if (daoju[0]) {

            daoju[0]--;

            daojulen--;

            printf("玩家A使用了放大镜\n");

            wait();

            printf("\n玩家A看到了");

            if (q[qlen] == 1) {

                printf("实弹\n");

                Yourmoney += 2500.0;

            }
            else {

                printf("空弹\n");

            }

            Sleep(500);

            printf("\n");

        }
        else {

            printf("玩家A现在没有放大镜\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 4) {

        if (daoju[1]) {

            if (!shoukao_you) {

                daoju[1]--;

                daojulen--;

                printf("玩家A使用了手铐\n");

                printf("玩家A获得了连开两枪的机会\n");

                shoukao_you = 1;

            }
            else {

                printf("玩家A已经用过手铐了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("玩家A现在没有手铐\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 5) {

        if (daoju[2]) {

            if (Hurt == 1) {

                daoju[2]--;

                daojulen--;

                printf("玩家A使用了小刀\n");

                printf("若下一发为实弹则伤害+1\n");

                Yourmoney += 500.0;

                Hurt = 2;

            }
            else {

                printf("玩家A已经用过小刀了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("玩家A现在没有小刀\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 6) {

        if (daoju[3]) {

            if (Your ^ 4) {

                daoju[3]--;

                daojulen--;

                printf("玩家A使用了烟\n");

                printf("玩家A回复了一点生命\n");

                Yourmoney += 500.0;

                Your++;

            }
            else {

                printf("玩家A现在不需要烟\n");

            }

            Sleep(1145);

        }
        else {

            printf("玩家A现在没有烟\n");

            Sleep(1145);

            system("cls");

        }

    }
    else {

        if (daoju[4]) {

            daoju[4]--;

            daojulen--;

            printf("玩家A使用了饮料\n");

            wait();

            printf("\n");

            printf("玩家A退了一发");

            if (q[qlen] == 2) {

                printf("空弹");

                kong--;

            }
            else {

                printf("实弹");

                Yourmoney += 500.0;

                shi--;

            }

            qlen--;

            Sleep(500);

        }
        else {

            printf("玩家A现在没有饮料\n");

            Sleep(1145);

            system("cls");

        }

    }

    Sleep(1000);

    system("cls");

}

void Timeother_duo() {

    int x;

    while (1) {

        printf("玩家A的生命:%d/4\n玩家B的生命:%d/4\n", Your, Other);

        printf("剩余实弹数:%d    剩余空弹数:%d\n", shi, kong);

        printf("玩家A现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("玩家B现在拥有的道具:\n");

        for (int i = 0; i <= 4; i++) {

            cout << daojuname[i];

            printf("%d", daoju1[i]);

            printf("个");

            if (i != 4) {

                printf(",");

            }

        }

        printf("\n");

        printf("现在是玩家B的回合\n");

        printf("玩家B要\n1.向玩家A开枪\n2.向自己开枪\n");

        for (int i = 0; i <= 4; i++) {

            printf("%d.使用", i + 3);

            cout << daojuname[i] << '\n';

        }

        scanf("%d", &x);

        if (1 <= x && x <= 7) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    if (x == 1) {

        printf("玩家B决定向玩家A开枪");

        T++;

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(shi) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

            if (shoukaoemo == 1) {

                shoukaoemo = 0;

                printf("因为玩家B使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }
        else {

            //          printf("((%lf))\n",Yourmoney);

            Yourmoney += (double)(5000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            //          printf("{{%lf}}\n",Yourmoney);

            shi--;

            qlen--;

            Your -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver_duo();

            if (shoukaoemo == 1) {

                shoukaoemo = 0;

                Yourmoney += 1000.0;

                printf("因为玩家B使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 2) {

        printf("玩家B决定向自己开枪");

        wait();

        if (q[qlen] == 2) {

            Yourmoney += (double)(2000.0 * (Hurt * 1.0) * (1 + (double)(kong) * 1.0 / (double)(shi + kong)));

            kong--;

            qlen--;

            Hurt = 1;

            printf("是空弹\n");

        }
        else {

            Yourmoney += 5000.0 * (1 + (double)(shi) * 1.0 / (double)(shi + kong));

            T++;

            shi--;

            qlen--;

            Other -= Hurt;

            Hurt = 1;

            printf("是实弹\n");

            Sleep(500);

            IsOver_duo();

            if (shoukao_you == 1) {

                shoukao_you = 0;

                printf("因为玩家B使用了手铐,所以可以再来一次\n");

                Sleep(500);

                T--;

            }

        }

    }
    else if (x == 3) {//{"放大镜","手铐","小刀","烟","饮料"};

        if (daoju1[0]) {

            daoju1[0]--;

            daojulen1--;

            printf("玩家B使用了放大镜\n");

            wait();

            printf("\n玩家B看到了");

            if (q[qlen] == 1) {

                printf("实弹\n");

                Yourmoney += 2500.0;

            }
            else {

                printf("空弹\n");

            }

            Sleep(500);

            printf("\n");

        }
        else {

            printf("玩家B现在没有放大镜\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 4) {

        if (daoju1[1]) {

            if (!shoukaoemo) {

                daoju1[1]--;

                daojulen1--;

                printf("玩家B使用了手铐\n");

                printf("玩家B获得了连开两枪的机会\n");

                shoukaoemo = 1;

            }
            else {

                printf("玩家B已经用过手铐了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("玩家B现在没有手铐\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 5) {

        if (daoju1[2]) {

            if (Hurt == 1) {

                daoju1[2]--;

                daojulen1--;

                printf("玩家B使用了小刀\n");

                printf("若下一发为实弹则伤害+1\n");

                Yourmoney += 500.0;

                Hurt = 2;

            }
            else {

                printf("玩家B已经用过小刀了\n");

            }

            Sleep(1145);

            system("cls");

        }
        else {

            printf("玩家B现在没有小刀\n");

            Sleep(1145);

            system("cls");

        }

    }
    else if (x == 6) {

        if (daoju1[3]) {

            if (Other ^ 4) {

                daoju1[3]--;

                daojulen1--;

                printf("玩家B使用了烟\n");

                printf("玩家B回复了一点生命\n");

                Yourmoney += 500.0;

                Other++;

            }
            else {

                printf("玩家B现在不需要烟\n");

            }

            Sleep(1145);

        }
        else {

            printf("玩家B现在没有烟\n");

            Sleep(1145);

            system("cls");

        }

    }
    else {

        if (daoju1[4]) {

            daoju1[4]--;

            daojulen1--;

            printf("玩家B使用了饮料\n");

            wait();

            printf("\n");

            printf("玩家B退了一发");

            if (q[qlen] == 2) {

                printf("空弹");

                kong--;

            }
            else {

                printf("实弹");

                Yourmoney += 500.0;

                shi--;

            }

            qlen--;

            Sleep(500);

        }
        else {

            printf("玩家B现在没有饮料\n");

            Sleep(1145);

            system("cls");

        }

    }

    Sleep(1000);

    system("cls");

}

int asdasd;

void duorenplay() {

    while (1) {

        if (shi == 0) {

            build_gun_duo();

            T = asdasd;

            asdasd++;

            continue;

        }

        if (T % 2 == 0) {

            Timeyou_duo();

        }
        else {

            Timeother_duo();

        }

    }

}

int main() {

    srand(time(0));

    int x;

    while (1) {

        printf("请选择你想要的模式:\n1.单人\n2.双人(此模式中,生命值为4,道具补给为2)\n");

        scanf("%d", &x);

        if (x == 1 || x == 2) {

            break;

        }

        printf("输入不合法\n");

        Sleep(1145);

        system("cls");

    }

    system("cls");

    if (x == 1) {

        danrenplay();

    }
    else {

        Your = Other = 4;

        duorenplay();

    }

    return 0;

}