RPG_chen

· · 个人记录

#include<bits/stdc++.h>
#include<iostream>
#include<windows.h>
/*
更新公告:
1.01:新增角色黄沙老者(B),现在中立阵营可以进行转职与购买.
开启对话模式,进一步提升剧情完整性.
调整了升级模式,避免10+级时面对小怪的无力.
增加了一个小彩蛋与日夜系统.
调整了一些转职角色的数值,使各角色各阵营更加平衡.完
善了药物系统并修复了一个bug

1.02:更改了语言并重置了登陆系统
*/
#define rda(x); freopen(#x".in","r",stdin);freopen(#x".out","w",stdout);
#define srd(); fclose(stdin);fclose(stdout);
using namespace std;
/*
D:dragon魔龙
G:girl(princess,目前chen不知道她是公主)
B:businessman商人
*/
bool fast_go=0,first_gift,Dragonborn,day,cday,jq=0;
long long chen_x=45,chen_y=45,jd=1,girl_x=1,girl_y=1,zy=0,D_x=2,D_y=2,d_x=30,d_y=30;
long long hp_chen=1,max_hp_chen=100,level_chen=0,magic_chen=0,max_magic_chen=100,hurt_chen=3,xp_chen=0,xp_limit=50,xp_up=50,gold=10,fy_chen=5;
long long hp_m=100,hurt_m=2,m_x,m_y,occupation=0,turn_occupation=0,c_x=15,c_y=15,B_x=50,B_y=50,drugs_blood=0,drugs_magic=0,user=0;
double back_hurt=0;
int talk_b,talk_g,talk_d;
const int pm_x=15,pm_y=50;
char a[1010][1010];
void clean() {
    system("cls");
    return;
}
void attribute() {
    if(xp_chen>=xp_limit) {
        xp_limit+=xp_up;
        xp_up+=50;
        xp_chen-=xp_limit;
        level_chen++;
        max_magic_chen++;
        magic_chen=max_magic_chen;
        hurt_chen+=2;
        fy_chen+=(level_chen/5);
        max_hp_chen+=30;
        hp_chen=max_hp_chen;

        char n1;
        system("cls");
        cout<<"你感受到了血液中流动的力量!\n";
        cout<<"请选择要增加的属性!\n";
        cout<<"1.血量 2.魔力 3.伤害 4.经验 5.防御\n";
        cin>>n1;
        if(n1=='1') {
            max_hp_chen+=50;
            hp_chen=max_hp_chen;
        } else {
            if(n1=='2') {
                max_magic_chen+=5;
                magic_chen=max_magic_chen;
            } else {
                if(n1=='3') {
                    hurt_chen+=3;
                } else {
                    if(n1=='4') {
                        xp_limit-=((double)(xp_up/3));
                    } else {
                        if(n1=='5') {
                            fy_chen+=5;
                        } else {

                        }
                    }
                }
            }
        }
    }
    if(occupation==1) {
        back_hurt=level_chen*2;
    }
    if(occupation==3) {
        max_magic_chen+=30;
    }
    return;
}
void print_map() {
    clean();
    attribute();
    int i,j;
    cout<<"X:"<<chen_x<<" Y:"<<chen_y<<" 金币:"<<gold<<" 伤害:"<<hurt_chen<<" 防御:"<<fy_chen<<endl;
    cout<<"等级:"<<level_chen<<" 经验:"<<xp_chen<<"/"<<xp_limit<<" 血量:"<<hp_chen<<"/"<<max_hp_chen<<" 魔力:"<<magic_chen<<"/"<<max_magic_chen<<endl;
    cout<<jd<<".";
    if(jd==1) {
        cout<<"前往1_1寻找一个公主!";
    } else {
        if(jd==2) {
            a[1][1]=' ';
            printf("杀死最初之兽(%d_",m_x);cout<<m_y<<")!\n";
            if(first_gift==0) {
                hp_chen+=99;
                hurt_chen+=2;
                first_gift=1;
            }

        } else {
            if(jd==3) {
                if(level_chen<=50) {
                    printf("变强!\n");
                } else {
                    if(zy==1) {
                        printf("猎杀魔龙(%d_",D_x);cout<<D_y<<")!\n";
                    } else {
                        if(zy==2) {
                        printf("杀死公主(%d_",girl_x);cout<<girl_y<<")!\n";
                        } else {
                            if(zy==3) {
                            printf("猎杀魔龙(%d_",D_x);cout<<D_y<<")和";printf("公主(%d_",girl_x);cout<<girl_y<<")!\n";
                            }
                        }
                    }
                }
                if(occupation==0) {
                    if(zy==2) {
                            printf("找到魔龙选择职业(%d_",D_x);cout<<D_y<<")!\n";

                    } else {
                        if(zy==1) {
                            printf("找到公主选择职业(%d_",girl_x);cout<<girl_y<<")!\n";

                        } else {
                            if(zy==3) {
                                printf("找到黄沙老者选择职业(%d_",B_x);cout<<B_y<<")!\n";

                            }
                        }
                    }
                } else {
                    if(occupation==1) {
                    }

                }
            }
        }
    }
    cout<<endl;
//  cout<<chen_x-(pm_x/2)<<" "<<chen_x+(pm_x/2)<<" "<<chen_y-(pm_y/2)<<" "<<chen_y+(pm_y/2)<<endl;
    for(i=chen_x-(pm_x/2); i<=chen_x+(pm_x/2); i++) {
        for(j=chen_y-(pm_y/2); j<=chen_y+(pm_y/2); j++) {
            if(j==chen_y-(pm_y/2)&&i==chen_x-(pm_x/2)) {
                printf("┏");
            } else {
                if(j==chen_y-(pm_y/2)&&i==chen_x+(pm_x/2)) {
                    printf("┗");
                } else {
                    if(i==chen_x+(pm_x/2)&&j==chen_y+(pm_y/2)) {
                        printf("┛");
                    } else {
                        if(i==chen_x-(pm_x/2)&&j==chen_y+(pm_y/2)) {
                            printf("┓");
                        } else {
                            if(j==chen_y-(pm_y/2)||j==chen_y+(pm_y/2)) {
                                printf("|");
                            } else {
                                if(i==chen_x-(pm_x/2)||i==chen_x+(pm_x/2)) {
                                    printf("-");
                                } else {
                                    cout<<a[i][j];
                                }
                            }

                        }
                    }
                }
            }

        }
        printf("\n");
    }
    return;
}
void make_map() {
    int A,B;
    for(A=0; A<=1001; A++) {
        for(B=0; B<=1001; B++) {
            if(A==chen_x&&B==chen_y) {
                a[A][B]='C';
            }
            if(A==girl_x&&B==girl_y) {
                a[A][B]='G';
            }
            if(A==D_x&&B==D_y) {
                a[A][B]='D';
            }
            if(A==m_x&&B==m_y) {
                a[A][B]='M';
            }
            if(A==c_x&&B==c_y) {
                a[A][B]='S';
            }
            if(A==d_x&&B==d_y) {

            }
            if(A==B_x&&B==B_y) {
                a[A][B]='B';
            }
            if(A==0||A==1001) {
                a[A][B]='+';
            }
            if(B==0||B==1001) {
                a[A][B]='+';
            }
            if((A==0&&B==0)||(A==0&&B==1001)||(A==1001&&B==0)||(A==1001&&B==1001)) {
                a[A][B]='+';
            }

        }
    }
    return;
}

void player_go(char turn,int number) {
    int i,j;
    if(cday==0) {
        if(day==0) {
            system("color 70");
        } else {
            system("color 07");
        }
    }
    cout<<"做出你的选择!\n";
    cin>>turn;
    cin>>number;
    if(fast_go==0) {
        for(i=0; i<number; i++) {
            a[chen_x][chen_y]=' ';
            if(turn=='W'||turn=='w') {
                chen_x--;
                if(chen_x<0) {
                    printf("越界!\n");
                    chen_x+=2;
                    system("pause");
                    print_map();
                }
            } else {
                if(turn=='S'||turn=='s') {
                    chen_x++;
                    if(chen_x>1001) {
                        printf("越界!\n");
                        chen_x-=2;
                        system("pause");
                        print_map();
                    }
                } else {
                    if(turn=='A'||turn=='a') {
                        chen_y--;
                        if(chen_y<0) {
                            printf("越界!\n");
                            chen_y+=2;
                            system("pause");
                            print_map();
                        }
                    } else {
                        if(turn=='D'||turn=='d') {
                            chen_y++;
                            if(chen_y>1001) {
                                printf("越界!\n");
                                chen_y-=2;
                                system("pause");
                                print_map();
                            }
                        } else {
                            if(turn=='Q'||turn=='q') {
                                fast_go=1;
                            } else {
                                if(turn=='E'||turn=='e') {
                                    system("cls");
                                    char n1;
                                    cout<<"1.药物 2.猎杀小怪 3.日照设置 4.跳过剧情\n";
                                    cin>>n1;
                                    if(n1=='1') {
                                        printf("1.血袋(%d) 2.灵石(%d)\n",drugs_blood,drugs_magic);
                                        cin>>n1;
                                        if(n1=='1') {
                                            if(drugs_blood>=1) {
                                                if(hp_chen+200>max_hp_chen) {
                                                    hp_chen=max_hp_chen;
                                                } else {
                                                    hp_chen+=200;
                                                }
                                                drugs_blood-=1;
                                                cout<<"你好多了!\n";
                                            } else {
                                                cout<<"穷光蛋!\n";
                                            }
                                            system("pause");
                                        } else {
                                            if(n1=='2') {
                                                if(drugs_magic>=1) {
                                                    if(magic_chen+150>max_magic_chen) {
                                                        magic_chen=max_magic_chen;
                                                    } else {
                                                        magic_chen+=150;
                                                    }
                                                    drugs_magic-=1;
                                                    cout<<"针不戳!\n";
                                                } else {
                                                    cout<<"没钱?!\n";
                                                }
                                                system("pause");
                                            }
                                        }
                                    } else {
                                        if(n1=='2') {
                                            printf("快杀了小怪(%d_",m_x);cout<<m_y<<")!\n";
                                            system("pause");
                                        } else {
                                            if(n1=='3') {
                                                printf("1.永昼 2.永夜 3.日夜交替\n");
                                                cin>>n1;
                                                if(n1=='1') {
                                                    cday=1;
                                                    system("color 70");
                                                } else {
                                                    if(n1=='2') {
                                                        cday=1;
                                                        system("color 07");
                                                    } else {
                                                        if(n1=='3') {
                                                            cday=0;
                                                            system("color 07");
                                                        } else {
                                                            if(n1=='4') {
                                                                jq=1;
                                                                    cout<<"成功!\n";
                                                            system("pause");
                                                            }
                                                        }
                                                    }

                                                }

                                            }
                                        }
                                    }
                                } else {

                                }
                            }
                        }
                    }
                }
            }

            make_map();
            print_map();

        }
    } else {
        a[chen_x][chen_y]=' ';
        if(turn=='W'||turn=='w') {
            chen_x-=number;
            if(chen_x<0) {
                printf("越界!\n");
                chen_x+=number-+1;
                system("pause");
                print_map();
            }
        } else {
            if(turn=='S'||turn=='s') {
                chen_x+=number;
                if(chen_x>1001) {
                    printf("越界!\n");
                    chen_x-=number+1;
                    system("pause");
                    print_map();
                }
            } else {
                if(turn=='A'||turn=='a') {
                    chen_y-=number;
                    if(chen_y<0) {
                        printf("越界!\n");
                        chen_y+=number+1;
                        system("pause");
                        print_map();
                    }
                } else {
                    if(turn=='D'||turn=='d') {
                        chen_y+=number;
                        if(chen_y>1001) {
                            printf("越界!\n");
                            chen_y-=number+1;
                            system("pause");
                            print_map();
                        }
                    } else {
                        if(turn=='Q'||turn=='q') {
                            fast_go=0;
                        } else {
                            if(turn=='E'||turn=='e') {
                                system("cls");
                                char n1;
                                cout<<"1.药物 2.猎杀小怪 3.日照设置 4.跳过剧情\n";
                                cin>>n1;
                                if(n1=='1') {
                                    printf("1.血袋(%d) 2.灵石(%d)\n",drugs_blood,drugs_magic);
                                    cin>>n1;
                                    if(n1=='1') {
                                        if(drugs_blood>=1) {
                                            if(hp_chen+200>max_hp_chen) {
                                                hp_chen=max_hp_chen;
                                            } else {
                                                hp_chen+=200;
                                            }
                                            drugs_blood-=1;
                                            cout<<"嗯,不错!\n";
                                        } else {
                                            cout<<"你的魔法真不错!\n";
                                        }
                                        system("pause");
                                    } else {
                                        if(n1=='2') {
                                            if(drugs_magic>=1) {
                                                if(magic_chen+150>max_magic_chen) {
                                                    magic_chen=max_magic_chen;
                                                } else {
                                                    magic_chen+=150;
                                                }
                                                drugs_magic-=1;
                                                cout<<"好多了!\n";
                                            } else {
                                                cout<<"穷光蛋!\n";
                                            }
                                            system("pause");
                                        }
                                    }
                                } else {
                                    if(n1=='2') {
                                                printf("猎杀小怪(%d_",m_x);cout<<m_y<<")!\n";
                                        system("pause");
                                    } else {
                                        if(n1=='3') {
                                            printf("1.永昼 2.永夜 3.日夜交替 4.跳过剧情\n");
                                            cin>>n1;
                                            if(n1=='1') {
                                                cday=1;
                                                system("color 70");
                                            } else {
                                                if(n1=='2') {
                                                    cday=1;
                                                    system("color 07");
                                                } else {
                                                    if(n1=='3') {
                                                        cday=0;
                                                        system("color 07");
                                                    } else {
                                                        if(n1=='4') {
                                                            jq=1;
                                                            cout<<"成功!\n";
                                                            system("pause");
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            } else {

                            }
                        }
                    }

                }
            }
        }

        make_map();
        print_map();
    }
    if(abs(chen_x-B_x)<=1&&abs(chen_y-B_y)<=1) {
        day=rand()%2+1;
        char n1;
        system("cls");
        cout<<"欢迎来到我的商店,黄沙眷顾之人\n";
        for(int i1=0; i1>-1; i1++) {
            cout<<"1.药物 2.职业 3.离开 4.谈话\n";
            cin>>n1;
            if((n1-'0')==1) {
                cout<<"1.血袋(100/1) 2.魔石(150/1) 3.灵魂结晶(150/1) 4.生命之水(300/1) 5.离开\n";
                cin>>n1;

                if(n1=='1') {
                    if(gold>=100) {
                        drugs_blood++;
//                      if(hp_chen+200>max_hp_chen) {
//                          hp_chen=max_hp_chen;
//                      } else {
//                          hp_chen+=200;
//                      }
                    }
                } else {
                    if(n1=='2') {
                        if(gold>=150) {
                            drugs_magic++;
//                          if(magic_chen+150>max_magic_chen) {
//                              magic_chen=max_magic_chen;
//                          } else {
//                              magic_chen+=150;
//                          }
                        }
                    } else {
                        if(n1=='3') {
                            if(gold>=150) {
                                xp_chen+=300;
                            }
                        } else {
                            if(n1=='4') {
                                max_hp_chen+=100;
                            } else {
                                if(n1=='5') {
                                    break;
                                }
                            }
                        }
                    }
                }
            } else {
                if((n1-'0')==2) {
                    if(zy==3) {
                        if(turn_occupation==0) {
                            cout<<"1.术士 2.猎人 3.战士 4.巫师 5.德鲁伊 6.萨满 7.祭司\n";
                            cin>>n1;
                            if((n1-'0')==1) {
                                occupation=7;
                                turn_occupation=1;

                            } else {
                                if((n1-'0')==2) {
                                    occupation=8;
                                    turn_occupation=1;

                                } else {
                                    if((n1-'0')==3) {
                                        occupation=9;
                                        turn_occupation=1;
                                    } else {
                                        if(n1=='4') {
                                            occupation=10;
                                            turn_occupation=1;
                                        } else {
                                            if(n1=='5') {
                                                occupation=11;
                                                turn_occupation=1;
                                            } else {
                                                if(n1=='6') {
                                                    occupation=12;
                                                    turn_occupation=1;
                                                } else {
                                                    if(n1=='7') {
                                                        occupation=13;
                                                        turn_occupation=1;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        } else {
                            if(level_chen>=50) {
                                if(turn_occupation==1) {

                                } else {

                                }
                            }
                        }
                    } else {
                        if(zy==1) {
                            cout<<"嗯~,或许你可以问问公主!\n";
                        } else {
                            if(zy==2) {
                                cout<<"魔龙先生可是博学多才的呢\n";
                            }
                        }
                    }
                } else {
                    if(n1=='3') {
                        break;
                    } else {
                        if(n1=='4') {
                            if(talk_b>=25) {
                                cout<<"黄沙老者:谢谢你的陪伴!\n";
                                cout<<"你获得了黄沙的馈赠!";
                                cout<<"血量++\n";
                                max_hp_chen+=200;
                                cout<<"孩子,记住:活下去才有一切!\n";
                                talk_b=-15;
                            } else {
                                int n2=rand()%35+1;
                                talk_b++;
                                if(n2==1) {
                                    cout<<"自从那个该死的公主来了之后我就没睡过好觉\n";
                                } else {
                                    if(n2==2) {
                                        cout<<"你知道吗,你不是第一个,但我希望你是最后一个\n";
                                    } else {
                                        if(n2==3) {
                                            cout<<"我会杀了那些该死的怪物.\n";
                                        } else {
                                            if(n2==4) {
                                                cout<<"噢,现在究竟是白天还是黑夜呢!\n";
                                            } else {
                                                if(n2==5) {
                                                    cout<<"一切都会结束的,很快\n";
                                                } else {
                                                    if(n2==6) {
                                                        cout<<"玛莎,你究竟在哪呢?\n";
                                                    } else {
                                                        if(n2==7) {
                                                            cout<<"魔龙毁了我的一切\n";
                                                        } else {
                                                            if(n2==8) {
                                                                cout<<"黄沙之下的之高存在啊,我将以我的愤怒向世界宣战\n";
                                                            } else {
                                                                if(n2==9) {
                                                                    cout<<"旅者,你能听见我的召唤吗?\n";
                                                                } else {
                                                                    if(n2==10) {
                                                                        cout<<"呵,我的人生或许只是一场游戏罢了\n";
                                                                    } else {
                                                                        if(n2==11) {
                                                                            cout<<"杀了我吧,我知道我不再是我了,我再也不想这么干了\n";
                                                                        } else {
                                                                            if(n2==12) {
                                                                                cout<<"这里是被世界遗忘角落\n";
                                                                            } else {
                                                                                if(n2==13) {
                                                                                    cout<<"到底是勇士变成了魔龙,还是魔龙变成了勇士呢?\n";
                                                                                } else {
                                                                                    if(n2==14) {
                                                                                        cout<<"结束了吗?\n";
                                                                                    } else {
                                                                                        if(n2==15) {
                                                                                            cout<<"女神在上,黎明的光辉终将照亮黑夜?\n";
                                                                                        } else {
                                                                                            if(n2==16) {
                                                                                                cout<<"我们所看见的不过是一层又一层的梦境\n";
                                                                                            } else {
                                                                                                if(n2==17) {
                                                                                                    cout<<"你听见了吗,旅者\n";
                                                                                                } else {
                                                                                                    if(n2==18) {
                                                                                                        cout<<"我们早已别无选择\n";
                                                                                                    } else {
                                                                                                        if(n2==19) {
                                                                                                            cout<<"予你水与阴凉\n";
                                                                                                        } else {
                                                                                                            if(n2==20) {
                                                                                                                cout<<"那是黄沙的呼唤\n";
                                                                                                            } else {
                                                                                                                if(n2==21) {
                                                                                                                    cout<<"醒醒孩子,这里只有黄沙\n";
                                                                                                                } else {
                                                                                                                    if(n2==22) {
                                                                                                                        cout<<"如果你想早点脱离这个噩梦,就快快变强吧\n";
                                                                                                                    } else {
                                                                                                                        if(n2==23) {
                                                                                                                            cout<<"这里没有怪物,我们只是昨日的幻影\n";
                                                                                                                        } else {
                                                                                                                            if(n2==24) {
                                                                                                                                cout<<"回望过去却发现自己早已一无所有\n";
                                                                                                                            } else {
                                                                                                                                if(n2==25) {
                                                                                                                                    cout<<"事实上我只是一个弱者\n";
                                                                                                                                } else {
                                                                                                                                    if(n2==26) {
                                                                                                                                        cout<<"公主是个疯子,魔龙是个傻子,而我是个骗子\n";
                                                                                                                                    } else {
                                                                                                                                        if(n2==27) {
                                                                                                                                            cout<<"死亡让我们铭记生命\n";
                                                                                                                                        } else {
                                                                                                                                            if(n2==28) {
                                                                                                                                                cout<<"当心些,天黑了挺冷的\n";
                                                                                                                                            } else {
                                                                                                                                                if(n2==29) {
                                                                                                                                                    cout<<"当心脚下\n";
                                                                                                                                                } else {
                                                                                                                                                    if(n2==30) {
                                                                                                                                                        cout<<"眼见不一定为实\n";
                                                                                                                                                    } else {
                                                                                                                                                        cout<<"让我这个老头子想想,就一会儿\n";
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
//              system("pause");
//              system("cls");
            }
        }
    }
    if(abs(chen_x-c_x)<=1&&abs(chen_y-c_y)<=1) {
        day=rand()%2+1;
        cout<<"保存中(请输入任意数字)\n";
        char n1;
        cin>>n1;
        FILE *fp;
        if(user=1) {
            SetFileAttributes("rpg_chen_1.txt", FILE_ATTRIBUTE_NORMAL);
            fp=fopen("rpg_chen_1.txt","w+");
            fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",chen_x,chen_y,occupation,gold,level_chen,xp_chen,xp_limit,hp_chen,max_hp_chen,jd,zy,magic_chen,max_magic_chen,drugs_blood,drugs_magic);
            SetFileAttributes("rpg_chen_1.txt",FILE_ATTRIBUTE_HIDDEN );
        } else {
            if(user=2) {
                SetFileAttributes("rpg_chen_2.txt", FILE_ATTRIBUTE_NORMAL);
                fp=fopen("rpg_chen_2.txt","w+");
                fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",chen_x,chen_y,occupation,gold,level_chen,xp_chen,xp_limit,hp_chen,max_hp_chen,jd,zy,magic_chen,max_magic_chen,drugs_blood,drugs_magic);
                SetFileAttributes("rpg_chen_2.txt",FILE_ATTRIBUTE_HIDDEN );
            } else {
                if(user=3) {
                    SetFileAttributes("rpg_chen_3.txt", FILE_ATTRIBUTE_NORMAL);
                    fp=fopen("rpg_chen_3.txt","w+");
                    fprintf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",chen_x,chen_y,occupation,gold,level_chen,xp_chen,xp_limit,hp_chen,max_hp_chen,jd,zy,magic_chen,max_magic_chen,drugs_blood,drugs_magic);
                    SetFileAttributes("rpg_chen_3.txt",FILE_ATTRIBUTE_HIDDEN );
                } else {
                    cout<<"保存失败!";
                    system("Pause");
                    return;

                }
            }
        }
        fclose(fp);
        system("Pause");
    }
    if(abs(chen_x-D_x)<=1&&abs(chen_y-D_y)<=1) {
        day=rand()%2+1;
        if(zy==1) {
            if(level_chen<=50) {
                system("cls");
                cout<<"你太弱了!\n";
                system("pause");
                system("cls");
            }
        }
        if(zy==2) {
            char n1;
            system("cls");
            cout<<"唔,你要啥\n";
            for(int i1=0; i1>-1; i1++) {
                if(occupation!=3) {
                    cout<<"1.药物 2.职业 3.离开\n";
                } else {
                    if(Dragonborn==0) {
                        cout<<"1.药物 2.职业 3.离开 4.成为魔龙之子!\n";
                    } else {
                        cout<<"1.药物 2.职业 3.离开\n";
                    }
                }
                cin>>n1;
                if((n1-'0')==1) {
                    cout<<"1.血袋(100/1) 2.魔石(150/1) 3.灵魂结晶(150/1) 4.生命之水(300/1) 5.离开\n";
                    cin>>n1;

                    if(n1=='1') {
                        if(gold>=100) {
                            drugs_blood++;
//                      if(hp_chen+200>max_hp_chen) {
//                          hp_chen=max_hp_chen;
//                      } else {
//                          hp_chen+=200;
//                      }
                        }
                    } else {
                        if(n1=='2') {
                            if(gold>=150) {
                                drugs_magic++;
//                          if(magic_chen+150>max_magic_chen) {
//                              magic_chen=max_magic_chen;
//                          } else {
//                              magic_chen+=150;
//                          }
                            }
                        } else {
                            if(n1=='3') {
                                if(gold>=150) {
                                    xp_chen+=300;
                                }
                            } else {
                                if(n1=='4') {
                                    max_hp_chen+=100;
                                } else {
                                    if(n1=='5') {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                } else {
                    if((n1-'0')==2) {
                        if(turn_occupation==0) {
                            cout<<"1.苦痛使者 2.黑暗骑士 3.龙裔\n";
                            cin>>n1;
                            if((n1-'0')==1) {
                                occupation=1;
                                max_hp_chen+=200;
                                fy_chen=0;
                                turn_occupation=1;

                            } else {
                                if((n1-'0')==2) {
                                    occupation=2;
                                    turn_occupation=1;
                                    fy_chen-=2;
                                    hurt_chen+=10;
                                    max_hp_chen+=200;
                                } else {
                                    if((n1-'0')==3) {
                                        occupation=3;
                                        turn_occupation=1;
                                    }
                                }
                            }
                        } else {
                            if(level_chen>=50) {
                                if(turn_occupation==1) {

                                } else {

                                }
                            }
                        }
                    } else {
                        if((n1-'0')==3) {
                            break;
                        } else {
                            if((n1-'0')==4&&occupation==3) {
                                if(Dragonborn==0) {
                                    system("cls");
                                    cout<<"魔龙:你是我的孩子了!\n";
                                    cout<<"力量在流动!\n";
                                    fy_chen+=15;
                                    hurt_chen+=15;
                                    max_hp_chen+=300;
                                    gold+=1500;
                                    Dragonborn=1;

                                }
                            }
                        }
                    }
                }
                system("pause");
                system("cls");
            }
        }

    }
    if(abs(chen_x-m_x)<=1&&abs(chen_y-m_y)<=1) {
        day=rand()%2+1;
        system("cls");
        Sleep(2000);
        for(int i1=0; i1>-2; i1++) {
            cout<<"1.战斗 2.技能 3.药物 4.逃跑\n";
            char n;
            cin>>n;
            if((n-'0')==1) {
                hp_m-=hurt_chen;
                cout<<"现在你的血量:"<<hp_chen<<" 小怪的血量:"<<hp_m<<endl;
            } else {
                if((n-'0')==2) {
                    char n1;
                    if(occupation==5) {
                        cout<<"1.光魔法(伤害型) 2.光魔法(恢复型) 3.召唤光明使者(安全的)\n";
                        cin>>n1;
                        if(n1=='1') {
                            hurt_chen+=((double)(level_chen/10));
                        } else {
                            if(n1=='2') {
                                hp_chen+=((double)(2*level_chen));
                            } else {
                                if(n1=='3') {
                                    hp_chen-=((double)(5*level_chen));
                                    hp_m-=((double)(25*level_chen));
                                }
                            }
                        }
                    } else {
                        if(occupation==6) {
                            cout<<"1.光魔法(血量)\n";
                            cin>>n1;
                            if(n1=='1') {
                                hp_chen+=(10*level_chen),max_hp_chen+=(5*level_chen);
                            }
                        } else {
                            if(occupation==3) {
                                cout<<"1.召唤一个兄弟!(危险)";
                                cin>>n1;
                                int i2;
                                i2=rand()%20+1;
                                if(n1=='1') {
                                    max_magic_chen-=i2;
                                    hp_m=-1;
                                }
                            }
                        }
                    }
                    cout<<"现在你的血量:"<<hp_chen<<" 小怪的血量:"<<hp_m<<endl;
                } else {
                    if((n-'0')==3) {
                        cout<<"1.血袋 2.魔石\n";
                        char n1;
                        cin>>n1;
                        if(n1=='1') {
                            if(drugs_blood>=1) {
                                if(hp_chen+200>max_hp_chen) {
                                    hp_chen=max_hp_chen;
                                } else {
                                    hp_chen+=200;
                                }
                                drugs_blood-=1;
                                cout<<"你感到好多了!\n";
                            } else {
                                cout<<"真穷!\n";
                            }

                        } else {
                            if(n1=='2') {
                                if(drugs_magic>=1) {
                                    if(magic_chen+150>max_magic_chen) {
                                        magic_chen=max_magic_chen;
                                    } else {
                                        magic_chen+=150;
                                    }
                                    drugs_magic-=1;
                                    cout<<"针不戳!\n";
                                } else {
                                    cout<<"没钱的日子好难受啊!\n";
                                }
                            }
                        }
                        cout<<"现在你的血量:"<<hp_chen<<" 小怪的血量:"<<hp_m<<endl;
                    } else {
                        if((n-'0')==4) {
                            break;
                        }
                    }
                }

            }
            if(fy_chen>hurt_m) {
                hp_chen-=1;
            } else {
                hp_chen-=(hurt_m-fy_chen);
            }
            hp_m-=((double)(back_hurt*hurt_m)/10);
            if(hp_chen<0) {
                system("cls");
                system("color 47");
                cout<<"你死了!\n";
                xp_chen-=(xp_up/3);
                Sleep(3000);
                day=rand()%2;
                break;
            }
            if(hp_m<0) {
                system("cls");
                cout<<"你赢了!\n";
                a[m_x][m_y]=' ';
                system("pause");
                int gold1;
                hp_m=500+level_chen*250,hurt_m=1+3.5*level_chen;
                xp_chen+=(hp_m/30+hurt_m);
                xp_chen+=(hp_m/30+hurt_m);
                gold1=rand()%30+1;
                gold+=gold1;
                m_x=rand()%100+2;
                Sleep(114);
                m_x=rand()%100+2;
                if(jd==2) {
                    jd=3;
                }
                day=rand()%2;
                break;
            }
        }
    }
    if(abs(chen_x-girl_x)<=1&&abs(chen_y-girl_y)<=1) {
        day=rand()%2+1;
        if(jd==1) {
            jd=2;
            a[1][1]=' ';
            char n;
            system("cls");
            if(jq==0) {
                cout<"公主:你叫啥?\n";
                Sleep(1400);
                cout<<"陈:你可以叫我陈先生\n";
                Sleep(1400);
                cout<<"公主:很高兴遇见你!\n";
                Sleep(1400);
                cout<<"陈:同感!\n";
                Sleep(1400);
                cout<<"公主:这里有很多...\n";
                Sleep(2800);
                cout<<"公主:魔龙来了,一起跑\n";
                Sleep(1200);
            }
            cout<<"1.魔龙是啥? 2.(跟着公主一起跑) 3.代号:猎龙行动 4.(自己跑)\n";
            cin>>n;
            if((n-'0')==1) {
                if(jq==0) {
                    cout<<"公主:它很强,你很菜,打不过\n";
                    Sleep(1200);
                    cout<<"公主:为了解决你的弱智问题,我们没时间跑了\n";
                    Sleep(1400);
                }
                cout<<"1.为啥?这里毛都没有. 2.你什么意思?\n";
                Sleep(1400);
                char n1;
                cin>>n1;
                if((n1-'0')==2) {
                    cout<<"公主:再见了(双关)!\n";
                    Sleep(3000);
                    system("color 47");
                    cout<<"公主杀了你";
                    girl_x=rand()%1000+1,Sleep(114),girl_y=rand()&1000+1;
                    hp_chen=-1;
                    return;
                } else {
                    cout<<"你死了!\n";
                    Sleep(3000);
                    girl_x=rand()%1000+1,Sleep(114),girl_y=rand()&1000+1;
                    hp_chen=-1;
                    return;
                }
            } else {
                if((n-'0')==2) {
                    cout<<"公主:挺聪明.";
                    Sleep(2000);
                    girl_x=rand()%1000+1,Sleep(114),girl_y=rand()&1000+1;
                    zy=1;
                } else {
                    if((n-'0')==3) {
                        if(jq==0) {
                            cout<<"公主:你会死的!\n";
                            system("color 47");
                            Sleep(5000);
                        }
                        cout<<"魔龙来了.它盯着你看了一会儿,觉得你很有趣并让你去它的公司上班(雾).\n";
                        system("color 07");
                        cout<<"不管怎么说,你活了下来.\n";
                        zy=2;
                        girl_x=rand()%1000+1,Sleep(114),girl_y=rand()&1000+1;
                        system("pause");
                        return;
                    } else {
                        if((n-'0')==4) {
                            system("color 47");
                            cout<<"魔龙似乎对你不感兴趣,这让你开始怀疑公主的真实目的.\n";
                            if(jq==0) {
                                Sleep(3000);
                            }
                            girl_x=rand()%1000+1,girl_y=rand()&1000+1;
                            zy=3;
                            return;

                        } else {
                            cout<<"You died!\n";
                            Sleep(3000);
                            girl_x=rand()%1000+1,girl_y=rand()&1000+1;
                            hp_chen=-1;
                            return;
                        }
                    }
                }
            }

        } else {
            if(zy==2) {
                if(level_chen<=50) {
                    system("cls");
                    cout<<"她太强了,你没机会的!\n";
                    system("pause");
                    system("cls");
                }
            }
            if(zy==1) {
                char n1;
                system("cls");
                cout<<"欢迎来到米奇妙妙屋\n";
                for(int i1=0; i1>-1; i1++) {
                    if(occupation!=3) {
                        cout<<"1.药物 2.职业 3.离开\n";
                    }
                    cin>>n1;
                    if((n1-'0')==1) {
                        cout<<"1.血袋(100/1) 2.灵石(150/1) 3.灵魂结晶(150/1) 4.生命之水(300/1) 5.离开\n";
                        cin>>n1;

                        if(n1=='1') {
                            if(gold>=100) {
                                drugs_blood++;
//                      if(hp_chen+200>max_hp_chen) {
//                          hp_chen=max_hp_chen;
//                      } else {
//                          hp_chen+=200;
//                      }
                            } else {
                                if(n1=='2') {
                                    if(gold>=150) {
                                        drugs_magic++;
//                          if(magic_chen+150>max_magic_chen) {
//                              magic_chen=max_magic_chen;
//                          } else {
//                              magic_chen+=150;
//                          }
                                    }
                                } else {
                                    if(n1=='3') {
                                        if(gold>=150) {
                                            xp_chen+=300;
                                        }
                                    } else {
                                        if(n1=='4') {
                                            max_hp_chen+=100;
                                        } else {
                                            if(n1=='5') {
                                                break;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    } else {
                        if((n1-'0')==2) {
                            if(turn_occupation==0) {
                                cout<<"1.光骑士 2.教徒 3.牧师\n";
                                cin>>n1;
                                if((n1-'0')==1) {
                                    max_hp_chen+=100;
                                    fy_chen+=5;
                                    hurt_chen-=2;
                                    occupation=4;
                                    turn_occupation=1;
                                } else {
                                    if((n1-'0')==2) {
                                        fy_chen-=2;
                                        hurt_chen+=10;
                                        occupation=5;
                                        turn_occupation=1;
                                    } else {
                                        if((n1-'0')==3) {
                                            max_hp_chen+=50;
                                            fy_chen-=1;
                                            hurt_chen-=1;
                                            occupation=6;
                                            turn_occupation=1;
                                        }
                                    }
                                }
                            } else {
                                if(level_chen>=50) {
                                    if(turn_occupation==1) {

                                    } else {

                                    }
                                }
                            }
                        } else {
                            if((n1-'0')==3) {
                                break;
                            } else {

                            }
                        }
                    }
                    system("pause");
                    system("cls");

                }
            }

        }
        return;
    }
}
void in_player_turn(char a,int b) {
    player_go(a,b);
    return ;
}
int main() {
    int i,j,finish=0;
    cday=1;
    char n1,a;
    int b;
    srand(unsigned(time(NULL)));
    m_x=rand()%100+2,Sleep(114),m_y=rand()%100+2;
    D_x=rand()%1000+1,Sleep(514),D_y=rand()&1000+1;
//  B_x=rand()%1000+1,B_y=rand()&1000+1;
    day=rand()%2;
    cout<<"1.登陆 2.帮助\n";
    cin>>n1;user=1;
    if(n1=='1') {
        cout<<"1.一号 2.二号 3.三号\n";
        cin>>n1;
        FILE *fp;
        long long x=0,y=0,j=0,g=0,l=0,x1=0,xl=0,h=0,hp=0,jdd=1,zyy=0,m=0,mm=0,d=0,dd=0;
        user=n1-'0';
        cout<<n1<<" ";
        if(user==1) {
            SetFileAttributes("rpg_chen_1.txt", FILE_ATTRIBUTE_NORMAL);
            fp=fopen("rpg_chen_1.txt","r+");
            fscanf(fp,"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",&x,&y,&j,&g,&l,&x1,&xl,&h,&hp,&jdd,&zyy,&m,&mm,&d,&dd);
            chen_x=x,chen_y=y,occupation=j,gold=g,level_chen=l,xp_chen=x1,xp_limit=xl,hp_chen=h,max_hp_chen=hp,jd=jdd,zy=zyy,magic_chen=m,max_magic_chen=mm,drugs_blood=d,drugs_magic=dd;
            SetFileAttributes("rpg_chen_1.txt",FILE_ATTRIBUTE_HIDDEN );
        } else {
            if(user==2) {
                SetFileAttributes("rpg_chen_2.txt", FILE_ATTRIBUTE_NORMAL);
                fp=fopen("rpg_chen_2.txt","r+");
                fscanf(fp,"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",&x,&y,&j,&g,&l,&x1,&xl,&h,&hp,&jdd,&zyy,&m,&mm,&d,&dd);
                chen_x=x,chen_y=y,occupation=j,gold=g,level_chen=l,xp_chen=x1,xp_limit=xl,hp_chen=h,max_hp_chen=hp,jd=jdd,zy=zyy,magic_chen=m,max_magic_chen=mm,drugs_blood=d,drugs_magic=dd;
                SetFileAttributes("rpg_chen_2.txt",FILE_ATTRIBUTE_HIDDEN );
            } else {
                if(user==3) {
                    SetFileAttributes("rpg_chen_3.txt", FILE_ATTRIBUTE_NORMAL);
                    fp=fopen("rpg_chen_3.txt","r+");
                    fscanf(fp,"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",&x,&y,&j,&g,&l,&x1,&xl,&h,&hp,&jdd,&zyy,&m,&mm,&d,&dd);
                    chen_x=x,chen_y=y,occupation=j,gold=g,level_chen=l,xp_chen=x1,xp_limit=xl,hp_chen=h,max_hp_chen=hp,jd=jdd,zy=zyy,magic_chen=m,max_magic_chen=mm,drugs_blood=d,drugs_magic=dd;
                    SetFileAttributes("rpg_chen_3.txt",FILE_ATTRIBUTE_HIDDEN );
                } else {

                }
            }
        }
    } else {
        cout<<"WASD移动,Q开启瞬移\n";
        cout<"E打开背包\n";
        cout<<"一些重要的地点:\n";
        cout<<"1.存档点("<<c_x<<"_"<<c_y<<")\n";
        cout<<"Good luck,have fun!\n";
        system("Pause");
    }
    if(jd==0){
        jd=1;   
    }
    make_map();
    print_map();
    while(finish>-1) {
        make_map();
        print_map();
        player_go(a,b);
        if(hp_chen<0&&zy==0 ) {
            return 0;
        }
    }
    srd();
    return 0;
}
/*
圣骑士-光骑士-天使(2翼)-战斗天使(4翼)-大天使(6翼)
教徒-传教士-使者-行者-赐予者(半神)
牧师-大祭司-沟通者-窃权者-伪神
苦痛使者-大恶魔-代罚者
恶魔-大恶魔-魔王-地狱君主(半神)-地狱(伪神~)
黑暗骑士-四骑士(瘟疫,死亡,愤怒,永夜)-天启骑士
龙裔-伪龙-龙子-龙-龙王-龙神
术士-血脉术士-龙裔
术士-元素使-元素之灵
猎人-猎手-丛林之王-半神
猎手-深渊猎手-深渊行者-深渊之王-深渊(伪神+)
战士-老兵-将军-战神
巫师-大巫师-真理巫师-永恒巫师
德鲁伊-自然伙伴-半神
萨满-元素伙伴-半神
祭祀-大祭司-元素祭司-半神
注:不同职业间可互相转换(可保留属性前缀转换,也可完全转换)(但实力-1),晋升之路越漫长点燃神火越容易
血脉术士-深渊术士 √
血脉术士-血脉巫师 √
*/
/*
一转角色:
公主阵营(zy=1)
圣骑士(light knight):血+ 防+ 攻-
教徒(Believers):血= 防- 攻++ 祝福系光明魔法+
牧师(minister):血- 防- 攻- 召唤++ 恢复+
————————————————————————————
魔龙阵营(zy=2)
苦痛使者(Pain messenger):血++ 攻= 苦痛系魔法(反甲等)++
黑暗骑士(Dark Knight):血++ 防- 攻++ 魔法+
龙裔(Dragonborn): 血~ 防~ 攻~ 契约(龙)+ 龙语魔法++
(龙裔基础三维视契约之龙波动)
————————————————————————————
中立阵营(zy=3)
术士(Warlock):血- 防- 攻- 神秘系法术+++++
猎人(hunter):血= 防- 攻= 自然系法术++
战士(warrior):血= 防= 攻+
巫师(wizard):血-- 神秘系巫术++++
德鲁伊(Druid):血~ 防~ 攻~ 自然亲和++
萨满(Shaman):血= 防= 攻= 元素亲和+++
祭司(Priesthood):血- 防- 攻- 上位沟通+++
*/