末日求生游戏1.0.5版本

· · 个人记录

1.0.2版本: https://www.luogu.com.cn/discuss/show/337271 新版本! 谢谢大家的关注

#include<iostream>
#include<windows.h>
#include<time.h>
#include<conio.h>
using namespace std;
bool isszjm=false;
int ys=30;
bool jccj[7];
string jccjs[7]= {"","勇往直前-·我","背叛-·朋友","不顾一切-·朋友","气愤-·女儿","笑死-·我","变异-·女儿"};
bool jjcj[5];
string jjcjs[5]= {"","发疯-·我","冲啊!-·华广","失去意识-·华广","牛逼的我-·我"};
int read();
void qj5(),qj6(),qj7();
void qj4(),qj3();
int zd,jt,hy;
bool ishy=false;
bool isq=false;
void Slowsay(string a),clean(),tjys(),tjyse(),csjm(),ckcj(),tjyse(),gyyx(),szjm(),qj1(),qj2(),ksyx();
void be1(),be2(),be3();
bool isbe[100];
bool ishe[100];
bool iste[100];
int main() {zd=jt=hy=0;
    csjm();
}
char wcolor='F';
void Slowsay(string a) {
    int l=a.size();
    for(int i=0; i<l; i++) {
        cout<<a[i];
        Sleep(ys);
    }
    printf("\n");
}
void clean() {
    system("cls");
}
void tjys() {

    int flag=false;
    while(flag==false) {
        cout << "你想要多快的语速呢?(字/毫秒)";
        cin >> ys;
        Slowsay("设置成功!\n\n是否满意?(1和0)");
        cin >> flag;
    }
    clean();
}
int read() {
    char ch=_getch();
    ch-=48;
    return (int)ch;
}
void sjts()
{
    clean();
    srand(time(0));
    int r=rand()%3;
    if(r==0)Slowsay("这个游戏主要靠闯.");
    if(r==1)Slowsay("结合现实.");
    if(r==2)Slowsay("你得想着自己运气好.");
    int ch=read();
    clean();
}
void tjyse() {
    clean();
    Slowsay("调节文字颜色");
    Slowsay("请输入颜色");
    Slowsay("0 = 黑色       8 = 灰色");
    Slowsay("1 = 蓝色       9 = 淡蓝色");
    Slowsay("2 = 绿色       A = 淡绿色");
    Slowsay("3 = 浅绿色     B = 淡浅绿色");
    Slowsay("4 = 红色       C = 淡红色");
    Slowsay("5 = 紫色       D = 淡紫色");
    Slowsay("6 = 黄色       E = 淡黄色");
    Slowsay("7 = 白色       F = 亮白色");
    wcolor=_getch();
    switch(wcolor) {
        case '0':
            system("COLOR 0");
            break;
        case '1':
            system("COLOR 1");
            break;
        case '2':
            system("COLOR 2");
            break;
        case '3':
            system("COLOR 3");
            break;
        case '4':
            system("COLOR 4");
            break;
        case '5':
            system("COLOR 5");
            break;
        case '6':
            system("COLOR 6");
            break;
        case '7':
            system("COLOR 7");
            break;
        case '8':
            system("COLOR 8");
            break;
        case '9':
            system("COLOR 9");
            break;
        case 'a':
        case 'A':
            system("COLOR A");
            break;
        case 'b':
        case 'B':
            system("COLOR B");
            break;
        case 'c':
        case 'C':
            system("COLOR C");
            break;
        case 'd':
        case 'D':
            system("COLOR D");
            break;
        case 'e':
        case 'E':
            system("COLOR E");
            break;
        case 'f':
        case 'F':
            system("COLOR F");
            break;
        default:
            Slowsay("输入无效\n");
    }
    clean();
}
void csjm() {
    Slowsay("1.进入游戏");
    Slowsay("2.查看成就(获得全部成就通关游戏)");
    Slowsay("3.关于游戏");
    Slowsay("4.设置");
    Slowsay("5.获得随机提示");
    int ch=read();
    if(ch==1) {
        ksyx();
        csjm();
    }
    if(ch==2) {
        ckcj();
        csjm();
    }
    if(ch==3) {
        gyyx();
        csjm();
    }
    if(ch==4) {
        szjm();
        csjm();
    }
    if(ch==5) {
        sjts();
        csjm();
    }
}

void ckcj() {
    clean();
    Slowsay("\t基础成就:");
    for(int i = 1; i <= 6; i++) {
        if(jccj[i]==false) {
            Slowsay("\t\t??????");
        } else {
            Slowsay(jccjs[i]);
        }
    }
    Slowsay("\t进阶成就:");
    for(int i = 1; i <= 6; i++) {
        if(jccj[i]==false) {
            Slowsay("\t\t??????");
        } else {
            Slowsay(jjcjs[i]);
        }
    }
    clean();
}
void gyyx() {
    Slowsay("作者:YZL");
    Slowsay("作者微信:lang_zu3");
    Slowsay("版本:1.0.5");
    int read();
    clean();
}
void szjm() {
    clean();
    isszjm=true;
    Slowsay("这里是设置界面.\n");
    Slowsay("游戏中只要按0键就可以进入");
    Slowsay("再次按0键就可以退出\n");
    Slowsay("1.调节语速\n");
    Slowsay("2.调节颜色\n");
    while(true) {
        int ch=read();
        if(ch==1) {
            tjys();
            szjm();
        }
        if(ch==2) {
            tjyse();
            szjm();
        }
        if(ch==0) {
            Slowsay("正在在退出设置界面...");
            clean();
            return;
        }
    }
}
void be1()
{
    clean();
    Slowsay("你拼命挣扎,但没用.\n");
    Sleep(1000);
    clean();
    Slowsay("你,淹死了\n");
    Slowsay("坏结局   1");
    int ch=read();
    clean(); 
}
void be2()
{
    clean();
    Slowsay("疼痛瞬间蔓延了你的全身.\n");
    Slowsay("你,中毒而死.\n");
    Slowsay("坏结局   2");
}
void be3()
{
    clean();
    Slowsay("你,被炸死");
    Slowsay("坏结局   3");
}
void qj5()
{
    clean();
    Slowsay("你生起了火,把火药放上去烤.\n");
    Slowsay("火药滋滋的响.\n");
    Slowsay("你感到不妙.\n");
    int ch=read();
    be3();
}
void qj6()
{
    clean();
    Slowsay("你感到饿了,抓起一个鸡腿吃了起来.鸡腿-1");
    jt-=1;
    Slowsay("你吃完鸡腿,感觉体力满了.");
    Slowsay("你决定\n1.出去走走\n2.呆在家里");
    int ch=read();
}
void qj7()
{
    clean();
    Slowsay("你把火药拿出去晒.\n");
    Slowsay("忽然一阵风,把你的火药吹进了河里.火药=0\n");
    hy=0;
    Slowsay("你垂头丧气地回了家.\n");
    Slowsay("你吃了一个鸡腿,鸡腿-1");
}
void qj3()
{
    clean();
    Slowsay("你走回了家.\n");
    Slowsay("你看见家里有一些木柴.\n");
    Slowsay("你想\n1.把火药烤干\n2.不烤\n3.把火药晒干");
    int ch=read();
    if(ch==1)
    {
        qj5();
    }
    else if(ch==2)
    {
        qj6();
    }
    else
    {
        qj7();
    }
}
void qj4()
{
    clean();
    Slowsay("你向东走去\n");
    Slowsay("你发现了一个奇怪生物.\n");
    Slowsay("你赶紧跑向家.\n");
    Slowsay("但没用,奇怪生物爬了过来,咬了你一口.\n");
    Slowsay("你瞬间感觉腿痛的要断了.\n");
    be2();
}
void qj1() {
    clean();
    Slowsay("你出了家门,很庆幸没有异常.\n");
    Slowsay("你在附近的河上发现了一个漂浮的尸体.\n");
    Slowsay("你连忙跑过去打捞起尸体.\n");
    Slowsay("你在尸体的口袋里翻找,找到了一把手枪,但是火药湿水了.\n");
    Slowsay("你又在尸体身上发现了几枚子弹,但没有火药用不了.\n");
    Slowsay("你又在尸体身上找到了3个鸡腿.\n");
    Slowsay("鸡腿+3,子弹+5,火药+3*(*代表用不了)\n");
    jt+=3,zd+=5,hy+=3;
    ishy=false;
    isq=true;
    Slowsay("你想\n1.回家\n2.再找一些物资\n");
    int ch=read();
    if(ch==1)
    {
        qj3();
    }
    if(ch==2)
    {
        qj4();
    }
}
void qj2() {
    Slowsay("你留在家里饿了一天,你必须要出去找食物.\n");
    Slowsay("你在河里发现了一个尸体,你下意识地跳下水抓尸体.\n");
    Slowsay("你体力不支.\n");
    be1();
}
void ksyx() {
    clean();
    Slowsay("欢迎来到末日求生DAN版!!!\n");
    int ch=read();
    if(ch==0) {
        if(isszjm==false) {
            Slowsay("正在在切换到设置界面...");
            clean();
            szjm();

        }
    }
    clean();
    Slowsay("1914年7月28日 一战爆发...\n");
    Slowsay("1939年9月01日 二战爆发...\n");
    ch=read();
    if(ch==0) {
        if(isszjm==false) {
            Slowsay("正在在切换到设置界面...");
            clean();
            szjm();

        }
    }
    clean();
    Slowsay("2037年5月09日 三战爆发...才怪\n");
    Sleep(1000);
    clean();
    Slowsay("2037年5月09日 世界末日.\n");
    Slowsay("你需要奋力抵抗.\n");
    Slowsay("你现在一无所有.\n");
    Slowsay("是否出去找物资?\n1.是\n2.否\n");
    ch=-1;
    while(ch!=1&&ch!=2) {
        ch=read();
        if(ch==1) {
            qj1();
        }
        if(ch==2) {
            qj2();
        }
        if(ch==0) {
            if(isszjm==false) {
                Slowsay("正在在切换到设置界面...这是设置的最后一次机会,请认真设置!\n");
                clean();
                szjm();
            }
        }
        if(ch!=1&&ch!=2&&ch!=0) {
            Slowsay("无效输入\n");
        }
    }

}