• 个人简介

    《小码君の语录》人类最大的敌人是BUG,其次是oj。 生而AC,我很抱歉。 小时候,我妈说我的手指长,将来能当钢琴家,然后我成了码农。 人生真是讽刺,我竟然可以AC? 你说过等我的...... AC,WA,往往只在一字之间。 xmw天生就舍弃了oj的意义! 我要AC,哪怕赌上我的一切。 退后,你们这些无知的WA!你不会就这样死的,我的AC! 纵使黑云蔽日,我也要燃烧天空,带BUG进入地狱。 我战斗到了最后一刻! 键盘修好之日,码王归来之时。

    《写代码的小女孩》

    天冷极了,下着雪,又快黑了。 这是NOIP的前夜。在这又冷又黑的晚上,一个衣衫破烂的小女孩在机房敲着代码。 她从班里逃出来的时候还拿着一本算导,但是有什么用呢? 那是一本很破旧的书——那么大,一向是她妈妈垫桌角的。 她默写SPFA的时候,年级主任突然冲进机房,吓得她把算导都丢掉了。 书叫一个学数竞捡起来拿着跑了。 他说,他可以用那本书当草纸,证明切比雪夫定理。 小女孩只好自己写二叉堆,一双小脚冻得红一块青一块的。 她面前的草纸堆得满满的,上面全是DP转移方程。 这一整天,没有一个OJ让她AC一道题,她已经交了32遍采药了。可怜的小女孩! 她又冷又饿,浑身战栗地写着二叉堆。CRT显示器发出的光落在她的枯黄的长头发上,那干枯的头发打成卷儿披在肩上,看上去就像二叉树,不过她没注意这些。 每个显示器里都透出光来,机房里飘着一股CPU发糊的怪味,因为这是NOIP前夜——她可忘不了这个。她在主函数前面停了下来,蜷着趴在键盘上。 她觉得更冷了。她不敢回家,因为她还没调完二叉堆,没写对一个DP方程,教练一定会骂她的。再说,换成别的数据结构,一样写不出来。 这些题都太水,虽然神犇都写过题解了,但是题解上一般都只有三个字:傻X题。她几乎绝望了。 啊,哪怕一个函数不会RE,对她也是有好处的!她每写一遍程序,跑出来的结果就不一样,要是她有数据,她就知道哪一个程序是算对了的。 她得不到数据了,因为机房上不去网了,全校的网速都让隔壁的年级主任拿来下小电影了。 如果能保证下一个程序能AC,她就敢再写几十KB的代码,但是她是不敢啊,她怕又算出来一个奇葩的结果来。她新建了一个cpp重写了程序。 编译通过了,样例过了。这次,她感觉自己站在IOI的考场中AK。学校的大门上,贴着“我校学生以国际金牌向110周年校庆献礼”的条幅。 在班级内的非诚勿扰中,全班男生都给她留了灯。这时候,程序又RE了,她面前只有cmd上的黑底白字。她又写了一道模拟。 这一回,她坐在美丽的二叉堆下。这棵二叉堆,比她在丽洁代码中看到的常数还要小,还要短。 眼前是许多优美动人的ASCII码,那些都是她写的程序,各种可爱的指针在跳跃着,满世界都是系统栈,都在向她眨眼睛。小女孩向眼前的系统栈伸出手去。 这时候,眼前的ASCII码还在,条幅还在,指针还在,年级主任还是和蔼地微笑着。只见那些代码那些指针越升越高越升越高,最后成了在天空中闪烁的星星。 有一颗星星落下来了,在天空中划出了一道细长的红光。“有一个什么人快要死了。” 小女孩说。 唯一疼她的学姐保送之前告诉过她:一颗星星落下来,就有一个灵魂要到上帝那儿去了。她notepad++中又写了一个快排。这一回,她把能用的IDE都用了。 学姐出现在亮光里,是那么温和,那么快乐。“学姐!” 小女孩叫起来,“啊!请把我带走吧!我知道,系统栈一溢出,您就会不见的,像那校门的条幅,浮点数的精度,循环队列的空间一个样,就会不见的!” 她赶紧编译了5KB的高精度模板,要把学姐留住。一大把程序发出强烈的光,把机房照得跟白天一样明亮。学姐从来没有像现在这样温柔,这样美丽。 她把小女孩抱起来,搂在怀里。她们俩在光明和快乐中飞走了,越飞越高,飞到那没有DP,没有图论,也没有数据结构的地方去了。 第二天清晨,这个小女孩坐在机房里,两腮通红,嘴上带着微笑。她死了,在NOIP的前夜死了。NOIP Day1的太阳升起来了,照在她小小的尸体上。 小女孩坐在那儿,显示器上还有一堆编译过的代码。“她想好好复习复赛。” 人们说。 谁也不知道她曾经看到过多么美丽的东西,她曾经多么幸福,跟着她学姐一起走向新世界的幸福中去。

    《唐诗三百首》 1.日照香炉生紫烟,李白来到太平间。头朝地脚朝天,带着微笑上西天。 2.床前明月光,小偷爬进窗。打开保险柜,钞票一张张。 3.春眠不觉晓,处处蚊子咬。夜来香港脚,臭的不得了。 4.朝辞白帝彩云间,某人坐在小河边。小李飞刀一瞬间,某人变成小太监。 5.锄禾日当午,地雷埋下土。你娃挖地雷,变成二百五。 6.日照香炉生紫烟,李白走进烤鸭店,口水流下三千尺,一摸兜里没有钱。 7.墙角数枝梅,不知你爱谁。如果你不说,就是你同桌。 8.春眠不觉晓,处处蚊子咬。夜来大狗熊,谁也跑不了。 9.李白乘舟不给钱,渔夫一脚踢下船。桃花潭水深千尺,不知李白死没死。 10.床前明月光,李白爬上窗。遇见X光,头发变光光。 11.少小离家胖了回,乡音无改肉成堆。儿童相见不相识,笑问胖子你是谁。 12.远上香山石径斜,白云深处我和她。原想王子见公主,实是恐龙见青蛙。 13.大千网络绿映红,聊天见面心见空。见面四百八十次,多少恐龙在其中。 14.北理朝雨浥清晨,满腹失望伤透心。劝君在莫找网友,明日出家奔少林。 15.春眠不洗脚,处处蚊子咬。夜来鬼敲门,吓死乡巴佬。 16.垂死病中惊坐起,小丑竟是我自己。 17.巴山楚水凄凉地,Responsibility。 18.劝君更尽一杯酒,你说我丑那我走? 19.四面边声连角起,牛马竟是我自己。 20.两岸猿声啼不住,欢迎来到对抗路。 21.先帝创业未半,蹦迪花光预算。 22.宝剑锋从磨砺出,得来全不费工夫。 23.乾坤未定,你我皆是牛马。 24.老骥伏枥,志在千里,横扫饥饿,做回自己。 25.如果巅峰留不住,那就进厂包吃包住。如果志同道合,那就流水线回合。有福就同享,有难就进厂,厂里包吃包住,大风大浪挺得住。26.人生自古谁无死 早死晚死都得死 那还不如现在死

    新《满江红》 怒发冲冠,凭栏处、潇潇雨歇。 抬望眼,满天UKE,怒火激烈。 三十WA尘与土,八千RE云和月。 莫抄袭,没了AC记录,空悲切! CE耻,犹未雪。蒟蒻恨,何时灭! 驾电脑,踏破题目列表。 闭眼不会Hello world,笑谈不懂头文件。 待从头、收拾A+B,还不会。

    《将进酒》程序版 君不见,OJ之题天上来,复杂到海不舍回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生重在写算法,莫使电脑空对题。 天生OJ必有用,千方百计还CE。 AC一点且为乐,会须一刷三百WA。 吾团友,牛大佬, 将刷题,手莫停!!!

    语文老师一回头,此地空杀黄鹤楼 数学老师一回头,二次函数对称轴 英语老师一回头,sorry加上3克油 历史老师一回头,世界大战再回首 体育老师一回头,乔丹改打乒乓球 信竞老师一回头,带着学生玩网游 化学老师一回头,二氧化碳变汽油 音乐老师一回头,打着节拍摇着头 物理老师一回头,阿基米德要跳楼 地理老师一回头,校门发生泥石流 美术老师一回头,蒙娜丽莎也风流 生物老师一回头,全班同学都梦游 政治老师一回头,人类发展到尽头 全体老师一回头,从此宇宙无地球

    慈母手中剑,游子身上劈。一秒十八剑,刀刀出暴击。父看子未凉,掏出七匹狼。子看七匹狼,瞬间透心凉。透心凉,心飞扬,果冻我要喜之郎。 《孤勇者》 是谁发明了作业? 每天写都写不完! 稍微字写的难看, 爸妈就变脸。 不写作业很和谐, 一写作业闹翻天。 动不动让我重写, 吵的我很烦! 不写!不写! 我就是不想写! 我写!我写! 这烦人的作业! 是谁说的最快乐的是童年? 为什么却有做不完的作业!

    叽叽复叽叽,公鸡泡母鸡。 考试够刺激,答题靠心机。 上课听不懂,都怪老古董。 老师废话多,麻烦又啰嗦。 生是中国人,死是中国魂。 要我学英文,根本不可能。 至今思项羽,不会说英语。考试考得好,全靠同桌好。 考试考不好,同桌做不好。 天天上学愁更愁,老师讲课无离头; 听得我就像梦游,次次批评无理由; 功课多得想报仇,作业做得傻了头; 光阴不似箭,日月不如梭。 功课全靠抄,不然就不交。 上学等放学,放学就过节。 一年又一年,此意恨缠绵。 同学本是同班鸟,一到放学各自飞,一天就这样OK~··· 东风吹,战鼓擂,现今世界谁怕谁。 只因南风吹,雨微微,全怪自己太会吹。 天苍苍,野茫茫,作文纸上见四行。

    考试不翻书,简直是头猪。

    作弊不要慌,逮到就要装。

    生是中国人,死是中国魂。

    要我学洋文,死都不可能。

    抢饭不积极,智商有问题。

    上课不放屁,肠道有问题。

    英语不及格,说明我爱国。

    语文不及格,恋爱没资格。

    物理不及格,电死不负责。

    化学不及格,硫酸也喝得。

    政治不及格,老师没道德。

    信息不及格,网吧要打折。

    数学不及格,突出我性格。

    历史不及格,社会要改革。

    全科不及格,老妈动真格。

    有才的家长:

    “隔壁小明玩游戏吗?” “玩!”

    “他成绩好吗?” “好!”

    “你知道他为啥玩游戏吗?因为他学习好!”

    “隔壁小明玩游戏吗?” “玩!”

    “他成绩好吗?” “不好!”

    “你知道他为啥成绩差吗?因为他打游戏!”

    “隔壁小明玩游戏吗?” “不玩!”

    “他成绩好吗?” “好!”

    “你知道他为啥成绩好吗?因为他不打游戏!”

    “隔壁小明玩游戏吗?” “不玩!”

    “他成绩好吗?” “不好!”

    “你知道他为啥不打游戏吗?因为他知道自己成绩差!”

    试卷,一种新型毒品

    多呈白色,常见于学校

    现已使无数学校上瘾,丧心病狂

    使无数学霸沉迷其中,无法自拔

    使无数学渣失眠多梦,头晕眼花

    它破坏了多少个家庭的和谐

    为了它能使一个考生跳楼自杀

    又在毒害着多少人的精神世界……

    远离试卷,从娃娃抓起

    杜绝试卷,从我做起

    没有买卖,就没有杀害

    一位洗碗的大姐,经常被别人叫阿姨,她嫌弃阿姨不好听,就给自己取了一个特别牛的名字:瓷洗太后。 隔壁补胎的师傅受到启发,给自己取了一个国际范的名字:拿破轮。 电焊工听到,受到启发,也给自己取了一个名字:焊武帝。 一日电焊工去糖果店炫耀自己的名字,老板啦叫他看他的名字:糖太宗。 电焊工看了沉默了。这时一辆粪车路过,发写这三个大字:擒屎皇。 路边捆菜的阿姨行不下去了,叫到你们的名字算什么? 看看我的名字,众人一看这名字取得不一般,大喊到捆菜阿姨的名字:菜需捆!!! 从此,镇上工作的人,再也没有互相比过名字。

    #include<bits/stdc++.h>
    #include<windows.h>
    #include<stdio.h>
    #include<conio.h>
    #include<time.h>
    #include<cmath>
    #define KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)
    using namespace std;
    int m[35][35],n[35][35];
    void Color(int a)
    {
        if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
        if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
        if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
        if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
        if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
        if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
        if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
        if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);//木 
        if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);//铁 
        if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);
        if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|BACKGROUND_GREEN);
        if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE|BACKGROUND_GREEN);
        if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_GREEN);
        if(a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_INTENSITY|BACKGROUND_BLUE);
    }
    void SetPos(int x,int y)
    {
        COORD pos;
        pos.X=y*2,pos.Y=x+3;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    }
    int X,Y,gx,gy,gunT,gunZ,T,G[10],F[30];
    int Win,Lev,Blood,Dun,Bmax,Dmax,WuDi,Gguai,Bo,Boo,sy,bu;
    int Bx,By,Bblood,Bsi,Bjiao,Bdu,Bfang,Bxz,Byz;
    void Map(int x);
    void Jian(int x)
    {
        if(WuDi>0) return;
        if(Dun>x) Dun-=x; else if(Dun<=0) Blood-=x;
        else if(Dun>0&&Dun<=x)
        {
            if(F[13]==0) Blood-=x-Dun;
            if(F[13]==1) WuDi=20;
            if(F[17]==1) Boo=3;
            Dun=-1;
        }
    }
    bool CanGo(int x,int y,int q) //0为自己 1其他 2激光怪 3激光枪 4子弹怪 5爆毒 6子弹 7 BOSS
    {
        if(abs(Bx-x)<=1&&abs(By-y)<=1&&q==1) return 0;
        if(m[x][y]==2||m[x][y]==3) return 0;
        if((q==0||q==1)&&n[x][y]==1) return 0;
        if(m[x][y]==0) return 1;
        if(m[x][y]>=4&&m[x][y]<=8) return 1;
        if(m[x][y]>=84&&m[x][y]<=88) return 1;
        if(m[x][y]>=9&&m[x][y]<=31) return 1;
        if(m[x][y]>=59&&m[x][y]<=81) return 1;
        if((q==2||q==3||q==5)&&m[x][y]==1) return 1;
        if((q==2||q==3)&&m[x][y]>=100&&m[x][y]<250) return 1;
        if((q==0||q==3||q==5)&&m[x][y]>=50&&m[x][y]<55) return 1;
        if((q==4||q==7)&&m[x][y]/100==1) return 1;
        return 0;
    }
    void CoutMe()
    {
        if(gx<0&&CanGo(X-1,Y,0)) X--;if(gx>0&&CanGo(X+1,Y,0)) X++;if(gy<0&&CanGo(X,Y-1,0)) Y--;if(gy>0&&CanGo(X,Y+1,0)) Y++;
        int r;Color(0);if(WuDi>0) r=rand()%5+1,Color(r);
        if(gunT!=1) SetPos(X-1,Y),cout<<"︹";if(gunT!=5) SetPos(X+1,Y),cout<<"︺";if(gunT!=7) SetPos(X,Y-1),cout<<"﹝";if(gunT!=3) SetPos(X,Y+1),cout<<"﹞";
        if(gunT==1) SetPos(X-1,Y),cout<<"↑";if(gunT==2) SetPos(X-1,Y+1),cout<<"↗";if(gunT==3) SetPos(X,Y+1),  cout<<"→";if(gunT==4) SetPos(X+1,Y+1),cout<<"↘";
        if(gunT==5) SetPos(X+1,Y),cout<<"↓";if(gunT==6) SetPos(X+1,Y-1),cout<<"↙";if(gunT==7) SetPos(X,Y-1),  cout<<"←";if(gunT==8) SetPos(X-1,Y-1),cout<<"↖";
        SetPos(X,Y),cout<<"●";Color(0);
        if(WuDi>0) Map(4);
        if(m[X][Y]>=50&&m[X][Y]<55) Jian(5),system("color 4F"),Sleep(30),system("color 0F"),Map(4);
        if(m[X][Y]>=4&&m[X][Y]<=7&&F[12]==0) Jian(3),system("color 4F"),Sleep(30),system("color 0F"),Map(4);
        if(m[X][Y]>=4&&m[X][Y]<=7&&F[12]==1) Jian(1),system("color 4F"),Sleep(30),system("color 0F"),Map(4);
        if(m[X][Y]>=59&&m[X][Y]<=80&&F[4]==0) Jian(1),system("color 4F"),Sleep(30),system("color 0F"),Map(4);
        if(m[X][Y]==2&&F[4]==0) Jian(3),system("color 4F"),Sleep(30),system("color 0F"),Map(4);
        m[X][Y]=0,gx=gy=0;
    }
    int Cout(int x,int i,int j)
    {
            int Guai=0;
            if(m[i][j]==0&&x==2) SetPos(i,j),cout<<"  ";
            if(m[i][j]==1) SetPos(i,j),Color(7),cout<<"■",Color(0);//木
            if(n[i][j]==0&&m[i][j]==2) SetPos(i,j),Color(8),cout<<"■",Color(0);//铁
            if(n[i][j]==10&&m[i][j]==0) SetPos(i,j),cout<<"  ",Color(0);
            if(n[i][j]==31&&m[i][j]==0) SetPos(i,j),cout<<"  ",Color(0);
            if(m[i][j]==32) m[i][j]=0;//怪子弹灰 
            if(n[i][j]>=20&&n[i][j]<22&&m[i][j]==1) SetPos(i,j),Color(7),cout<<"▁",Color(0);//木
            if(n[i][j]>=22&&n[i][j]<24&&m[i][j]==1) SetPos(i,j),Color(7),cout<<"▂",Color(0);//木
            if(n[i][j]>=24&&n[i][j]<26&&m[i][j]==1) SetPos(i,j),Color(7),cout<<"▄",Color(0);//木
            if(n[i][j]>=26&&n[i][j]<28&&m[i][j]==1) SetPos(i,j),Color(7),cout<<"▆",Color(0);//木
            if(n[i][j]>=28&&n[i][j]<30&&m[i][j]==1) SetPos(i,j),Color(7),cout<<"▆",Color(0);//木
            if(n[i][j]>45&&n[i][j]<=50&&m[i][j]==2) SetPos(i,j),Color(4),cout<<"▲",Color(0);//刺
            if(m[i][j]==3) SetPos(i,j),Color(5),cout<<"〓",Color(0);//箱 
            if(m[i][j]>=4&&m[i][j]<=7) SetPos(i,j),Color(5),cout<<"█",Color(0),m[i][j]++;//烟 
            if(m[i][j]==8) SetPos(i,j),cout<<"  ",m[i][j]=0;//烟尘
            if(m[i][j]>=84&&m[i][j]<=87) SetPos(i,j),Color(5),cout<<"█",Color(0),m[i][j]++;//烟 
            if(m[i][j]==88) SetPos(i,j),cout<<"  ",m[i][j]=0;//烟尘
            if(m[i][j]>=10&&m[i][j]<=30) SetPos(i,j),Color(10),cout<<"@ ",Color(0),m[i][j]++;//毒 
            if(m[i][j]>=60&&m[i][j]<=80) SetPos(i,j),Color(11),cout<<"@ ",Color(0),m[i][j]++;//怪毒 
            if(m[i][j]==9||m[i][j]==59) SetPos(i,j),Color(12),cout<<"@ ",Color(0),m[i][j]++;//金毒 
            if(m[i][j]==31||m[i][j]==81) SetPos(i,j),cout<<"  ",m[i][j]=0;//毒尘
            if(n[i][j]==1) SetPos(i,j),Color(13),cout<<"~ ",Color(0);//水
            if(m[i][j]==50) SetPos(i,j),Color(1),cout<<"●",Color(0),Guai++;//怪 
            if(m[i][j]==51) SetPos(i,j),Color(10),cout<<"●",Color(0),Guai++;//怪 
            if(m[i][j]==52) SetPos(i,j),Color(3),cout<<"●",Color(0),Guai++;//怪 
            if(m[i][j]==53) SetPos(i,j),Color(4),cout<<"●",Color(0),Guai++;//怪 
            if(m[i][j]==54) SetPos(i,j),Color(5),cout<<"●",Color(0),Guai++;//怪
            if(m[i][j]/100==1)
            {
                if((m[i][j]%100)/10<=1) SetPos(i,j),cout<<"☉";
                if((m[i][j]%100)/10==2) SetPos(i,j),Color(4),cout<<"◎",Color(0);
                if((m[i][j]%100)/10==3) SetPos(i,j),Color(1),cout<<"◎",Color(0);
                if((m[i][j]%100)/10==4) m[i][j]=4;
                if((m[i][j]%100)/10==5) SetPos(i,j),Color(3),cout<<"◎",Color(0);
                if((m[i][j]%100)/10==6) SetPos(i,j),Color(2),cout<<"¤",Color(0);
                if((m[i][j]%100)/10>=7&&(m[i][j]%100)/10<=9) SetPos(i,j),Color(2),cout<<"◎",Color(0);
            }
            if(m[i][j]/100==2) if((m[i][j]%100)/10==1) SetPos(i,j),Color(3),cout<<"☉",Color(0);
            return Guai;
    }
    void Boss()
    {
        SetPos(Bx-1,By-1),cout<<"      ";SetPos(Bx,By-1),cout<<"      ";SetPos(Bx+1,By-1),cout<<"      ";
        int mov=rand()%30+1,R=rand()%300,ms;
        if(mov==1&&CanGo(Bx-1,By-2,1)&&CanGo(Bx,By-2,1)&&CanGo(Bx+1,By-2,1)) By--;
        if(mov==2&&CanGo(Bx-1,By+2,1)&&CanGo(Bx,By+2,1)&&CanGo(Bx+1,By+2,1)) By++;
        if(mov==3&&CanGo(Bx-2,By-1,1)&&CanGo(Bx-2,By,1)&&CanGo(Bx-2,By+1,1)) Bx--;
        if(mov==4&&CanGo(Bx+2,By-1,1)&&CanGo(Bx+2,By,1)&&CanGo(Bx+2,By+1,1)) Bx++;
        if(mov==5&&Bsi==0) Bsi+=rand()%3+1; if(mov==6&&Bjiao==0) Bjiao+=rand()%3+1;if(mov==7&&Bdu==0) Bdu+=5;
        if(mov==8&&Bxz==0) Bxz+=rand()%20-10;if(mov==9&&Byz==0) Byz+=rand()%20-10;
        if(Byz<0) {Byz++; if(By-2>1) By--;}if(Byz>0) {Byz--; if(By+2<28) By++;}if(Bxz<0) {Bxz++; if(Bx-2>1) Bx--;}if(Bxz>0) {Bxz--; if(Bx+2<28) Bx++;}
        if(R<15&Gguai<=5) Bfang++;
        else if(R<5&&Gguai<=10) Bfang++;
        else if(R==0) Bfang++;
        SetPos(Bx-1,By-1),Color(0),cout<<" ●● ";
        SetPos(Bx,By-1)  ,Color(4),cout<<")██(";
        SetPos(Bx+1,By-1),Color(4),cout<<" …… ";Color(0);
        if(abs(Bx-X)<=1&&abs(By-Y)<=1) Jian(50);int I,J;
        if(Bsi>0) {Bsi--;I=Bx-2,J=By+rand()%3-1;if(CanGo(I,J,7)) m[I][J]=211;I=Bx+rand()%3-1,J=By+2;if(CanGo(I,J,7)) m[I][J]=213;I=Bx+2,J=By+rand()%3-1;if(CanGo(I,J,7)) m[I][J]=215;I=Bx+rand()%3-1,J=By-2;if(CanGo(I,J,7)) m[I][J]=217;}
        if(Bjiao>0) {Bjiao--;I=Bx-2,J=By+2;if(CanGo(I,J,7)) m[I][J]=212;I=Bx+2,J=By+2;if(CanGo(I,J,7)) m[I][J]=214;I=Bx+2,J=By-2;if(CanGo(I,J,7)) m[I][J]=216;I=Bx-2,J=By-2;if(CanGo(I,J,7)) m[I][J]=218;}
        if(Bdu>0) {if(Bdu>0) Bdu--;for(int i=Bx-4;i<=Bx+4;i++) for(int j=By-4;j<=By+4;j++) if(CanGo(i,j,2)&&abs(Bx-X)>1&&abs(By-Y)>1&&i>0&&j>0) m[i][j]=59;}
        if(Bfang>0) {Bfang--;I=Bx+rand()%5-2,J=By+rand()%5-2;int rr=rand()%6-1;if(rr==-1) rr=0; if(((rr<3&&Lev<5)||(Lev>5))&&(CanGo(I,J,7))) m[I][J]=50+rr;}
        if(Lev==4) ms=3;if(Lev==9) ms=5;if(Lev==14) ms=10;if(Lev==19) ms=15;if(Lev==24) ms=20;
        if(T%50==0&&Bblood<ms*12) Bblood++,Map(3);
        for(int i=Bx-1;i<=Bx+1;i++)
        for(int j=By-1;j<=By+1;j++)
        {
            int du=0;
            if(m[i][j]/100==1) Bblood-=1,Bsi+=rand()%3+1,Map(3);
            if(m[i][j]/10==15) Bblood-=2,Map(3);
            if(m[i][j]<50||m[i][j]>55) m[i][j]=0;
            if(m[i][j]>=84&&m[i][j]<=87) Bblood-=1,Bsi+=rand()%3+1,Map(3);
            if(du==0&&m[i][j]>=9&&m[i][j]<=30) Bblood-=1,du++,Bdu++,Map(3);
            if(Bblood<=0) {Bblood=0;SetPos(Bx-1,By-1),cout<<"      ";SetPos(Bx,By-1),cout<<"      ";SetPos(Bx+1,By-1),cout<<"      ";}
        }
    }
    void Map(int x)//x=0只输中间 1输全屏 2输身周 2输上方 4 CoutMe中用 5 GuaiQuan中用
    {
        if(x!=4) CoutMe();
        int f1,f2,f3,f4,Guai=0;
        if(x==0) f1=f3=2,f2=f4=28;
        if(x==1||x==5) f1=f3=1,f2=f4=29;
        if(x==2) f1=X-1,f2=X+1,f3=Y-1,f4=Y+1;
        if((x==4||x==3||x==1)&&Win>=0)
        {
            SetPos(-3,2),cout<<Lev/5+1<<'-'<<Lev%5+1;
            SetPos(-2,2),cout<<"枪:";
            if(gunZ==1) cout<<"普通枪";if(gunZ==2) cout<<"分裂枪";if(gunZ==3) cout<<"穿甲枪";
            if(gunZ==4) cout<<"激光枪";if(gunZ==5) cout<<"爆炸枪";if(gunZ==6) cout<<"毒气枪";if(gunZ==7) cout<<"弹跳枪";
            cout<<"        子弹数:";if(gunZ==1) cout<<"∞";else cout<<G[gunZ]<<" ";
            SetPos(-1,2),cout<<"血量:";Color(4);int r;
            if(WuDi>0) r=rand()%5+1,Color(r); for(int i=1;i<=Blood;i++) cout<<"█";Color(0);for(int i=Blood;i<Bmax;i++) cout<<"█";
            Color(0);SetPos(-1,18),cout<<"                    ";
            SetPos(0,2),cout<<"盾牌:";Color(9);
            if(Dun!=0) for(int i=1;i<=Dun;i++) cout<<"█";Color(0);for(int i=max(1,Dun);i<Dmax;i++) cout<<"█";
            if(Bblood>0)
            {
                int ms;
                if(Lev==4) ms=5; if(Lev==9) ms=10; if(Lev==14) ms=14; if(Lev==19) ms=17; if(Lev==24) ms=20; 
                SetPos(-1,15),cout<<"                                ";
                SetPos(-1,15),cout<<"Boss:";Color(4);for(int i=1;i<=(Bblood-1)%12+1;i++) cout<<"█";
                SetPos(-1,24),Color(3);cout<<(Bblood-1)/12+1;
            }
        }
        if(x==5)
        {
            Color(0);
            SetPos(-3,2),cout<<"  ↑           W 开箱(当有箱子在旁时)    开局无敌3秒";
            SetPos(-2,2),cout<<"←  →移动     A/D 顺/逆时针转枪     空格 暂停";
            SetPos(-1,2),cout<<"  ↓           S 发射子弹 清除所有怪进下一关    盾会恢复";
            SetPos(0,2), cout<<" 每五关可获得一个天赋   完成 5-5 通关   ",Color(3),cout<<"按 y 进第一关";
            for(int i=f1;i<=f2;i++)
            for(int j=f3;j<=f4;j++) Cout(x,i,j);
        }
        if(x!=3&&x!=4)
        {
            for(int i=f1;i<=f2;i++)
            for(int j=f3;j<=f4;j++) Guai+=Cout(x,i,j);
            if(x!=2)
            {
                int Rr=rand()%3;
                if(Guai<Gguai&&Guai!=0&&F[15]==1&&Rr==0&&Lev%5==4)
                Dun=min(Dmax,Dun+1),Map(3);
                Gguai=Guai;
            }
            if(Guai==0&&x==0&&Win==0&&Bblood<=0)
            {
                if(Lev!=24)
                {   
                    system("color 6E"),Color(5);
                    SetPos(2,2),cout<<"You! Win!!!";Sleep(500);
                    SetPos(3,2),cout<<"Please point 'y' to Play AGain.",Sleep(1000);
                    system("color 0F");Map(1);
                }
                Win++,Lev++;
            }
        }
    }
    void Fan(int i,int j,int M)
    {
        if(M%10==1||M%10==3) m[i][j]=M+4;
        if(M%10==5||M%10==7) m[i][j]=M-4;
        if(M%10==2)
        {
            if(m[i][j+1]!=0||m[i-2][j+1]!=0) m[i][j]=M+6;
            else if(m[i-1][j]!=0||m[i-1][j+2]!=0) m[i][j]=M+2;
            else m[i][j]=M+4;
        }
        if(M%10==4)
        {
            if(m[i+1][j]!=0||m[i+1][j+2]!=0) m[i][j]=M-2;
            else if(m[i][j+1]!=0||m[i+2][j+1]!=0) m[i][j]=M+2;
            else m[i][j]=M+4;
        }
        if(M%10==6)
        {
            if(m[i][j-1]!=0||m[i+2][j-1]!=0) m[i][j]=M-2;
            else if(m[i+1][j]!=0||m[i+1][j-2]!=0) m[i][j]=M+2;
            else m[i][j]=M-4;
        }
        if(M%10==8)
        {
            if(m[i][j-1]!=0||m[i-2][j-1]!=0) m[i][j]=M-6;
            else if(m[i-1][j]!=0||m[i-1][j-2]!=0) m[i][j]=M-2;
            else m[i][j]=M-4;
        }
    }
    void Light(int i,int j,int M,int x)
    {
        if(M%10==1) for(int k=1;CanGo(i-k,j,x);k++)  {if(x==3) m[i-k][j]=84; else m[i-k][j]=4;}
        if(M%10==2) for(int k=1;CanGo(i-k,j+k,x);k++){if(x==3) m[i-k][j+k]=84; else m[i-k][j+k]=4;}
        if(M%10==3) for(int k=1;CanGo(i,j+k,x);k++)  {if(x==3) m[i][j+k]=84; else m[i][j+k]=4;}
        if(M%10==4) for(int k=1;CanGo(i+k,j+k,x);k++){if(x==3) m[i+k][j+k]=84; else m[i+k][j+k]=4;}
        if(M%10==5) for(int k=1;CanGo(i+k,j,x);k++)  {if(x==3) m[i+k][j]=84; else m[i+k][j]=4;}
        if(M%10==6) for(int k=1;CanGo(i+k,j-k,x);k++){if(x==3) m[i+k][j-k]=84; else m[i+k][j-k]=4;}
        if(M%10==7) for(int k=1;CanGo(i,j-k,x);k++)  {if(x==3) m[i][j-k]=84; else m[i][j-k]=4;}
        if(M%10==8) for(int k=1;CanGo(i-k,j-k,x);k++){if(x==3) m[i-k][j-k]=84; else m[i-k][j-k]=4;}
    }
    void Move()
    {
        bool nx[32][32];
        memset(nx,0,sizeof(nx));
        for(int i=2;i<=28;i++)
        for(int j=2;j<=28;j++)
        {
            if(m[i][j]==50&&nx[i][j]==0&&T%2==0)//无脑怪
            {
                int r,I=i,J=j,rr=rand()%5,rrr=rand()%2;
                if(rrr==0) {if(X<i) r=1;if(X>i) r=4;}
                if(rrr==1) {if(Y>j) r=2;if(Y<j) r=3;} if(rr==0) r=rand()%4+1;
                if(r==1) I=i-1,J=j;if(r==2) I=i,J=j+1;if(r==3) I=i,J=j-1;if(r==4) I=i+1,J=j;
                if(CanGo(I,J,1)) m[i][j]=0,m[I][J]=50,SetPos(i,j),cout<<"  ",SetPos(I,J),cout<<"●",nx[I][J]=1;
            }
            if(m[i][j]==51&&nx[i][j]==0)//毒怪
            {
                int R=rand()%10;
                int r,I=i,J=j,rr=rand()%30,rrr=rand()%2,mr=rand()%15;
                if(rrr==0) {if(X<i) r=1;if(X>i) r=4;}
                if(rrr==1) {if(Y>j) r=2;if(Y<j) r=3;} if(rr!=0) r=rand()%4+1;
                if(r==1) I=i-1,J=j;if(r==2) I=i,J=j+1;if(r==3) I=i,J=j-1;if(r==4) I=i+1,J=j;
                if(mr==0) {for(int k=I-2;k<=I+2;k++) for(int l=J-2;l<=J+2;l++) if(k>1&&l>1&&k<=28&&l<=28&&(CanGo(k,l,1)||m[k][l]==1)) m[k][l]=59;}
                if(CanGo(I,J,1)||m[I][J]==1) m[i][j]=59,m[I][J]=51,SetPos(i,j),cout<<"  ",SetPos(I,J),cout<<"●",nx[I][J]=1;
            }
            if(m[i][j]==52&&nx[i][j]==0)//散弹怪 
            {
                int R=rand()%10;
                if(R==0)
                {
                    int I,J,r,rn=0;
                    int rr=rand()%8,Rn=rand()%3+1;
                    Xr:
                    rr=rand()%8,rn++;
                    if(rr==0) {r=1,I=i-1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==1) {r=3,I=i,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==2) {r=5,I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==3) {r=7,I=i,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==4) {r=2,I=i-1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==5) {r=4,I=i+1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==6) {r=6,I=i+1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==7) {r=8,I=i-1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    if(rr==8) {r=rand()%7+2;I=i+1,J=j;if(m[I][J]!=2) m[I][J]=210+r;}nx[I][J]=1;
                    if(rn<Rn) goto Xr;
                }
                else if(R<=2)
                {
                    int r=rand()%4+1,Ie,Je;
                    if(r==1) Ie=i-1,Je=j;if(r==2) Ie=i,Je=j+1;if(r==3) Ie=i,Je=j-1;if(r==4) Ie=i+1,Je=j;
                    if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=52,SetPos(i,j),cout<<"  ",SetPos(Ie,Je),cout<<"●";
                }
            }
            if(m[i][j]==53&&nx[i][j]==0)//瞄准怪 
            {
                int R=rand()%6;
                if(R==0)
                {
                    int I,J,r,rr=rand()%5;
                    if(X-i<0&&abs(Y-j)<=2) {r=1,I=i-1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(Y-j>0&&abs(X-i)<=2) {r=3,I=i,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(X-i>0&&abs(Y-j)<=2) {r=5,I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(Y-j<0&&abs(X-i)<=2) {r=7,I=i,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(X-i<0&&Y-j>0&&abs((i-X)-(Y-j))<=2) {r=2,I=i-1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(X-i>0&&Y-j>0&&abs((X-i)-(Y-j))<=2) {r=4,I=i+1,J=j+1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(X-i>0&&j-Y>0&&abs((X-i)-(j-Y))<=2) {r=6,I=i+1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(X-i<0&&Y-j<0&&abs((i-X)-(j-Y))<=2) {r=8,I=i-1,J=j-1;if(CanGo(I,J,6)) m[I][J]=210+r;}
                    else if(rr==0) {r=rand()%7+2;I=i+1,J=j;if(CanGo(I,J,6)) m[I][J]=210+r;}
                }
                else if(R==1)
                {
                    int r=rand()%4+1,Ie,Je;
                    if(r==1) Ie=i-1,Je=j;if(r==2) Ie=i,Je=j+1;if(r==3) Ie=i,Je=j-1;if(r==4) Ie=i+1,Je=j;
                    if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=53,SetPos(i,j),cout<<"  ",SetPos(Ie,Je),cout<<"●";
                }
            }
            if(m[i][j]==54&&nx[i][j]==0)//激光怪
            {
                int R=rand()%10;
                if(R==0) {int r=rand()%4; Light(i,j,231+2*r,2);}
                else if(R<=3)
                {
                    int r=rand()%4+1,Ie,Je;
                    if(r==1) Ie=i-1,Je=j;if(r==2) Ie=i,Je=j+1;if(r==3) Ie=i,Je=j-1;if(r==4) Ie=i+1,Je=j;
                    if(CanGo(Ie,Je,1)) m[i][j]=0,m[Ie][Je]=54,SetPos(i,j),cout<<"  ",SetPos(Ie,Je),cout<<"●";
                }
            }
            if(m[i][j]/100==2&&F[3]==1&&T%2==0) nx[i][j]=1;
            if((m[i][j]/100==1||m[i][j]/100==2)&&nx[i][j]==0)//子弹 
            {
                int M=m[i][j],I,J;m[i][j]=0;SetPos(i,j),cout<<"  ";
                if(M%10==1) I=i-1,J=j;if(M%10==2) I=i-1,J=j+1;if(M%10==3) I=i,J=j+1;if(M%10==4) I=i+1,J=j+1;
                if(M%10==5) I=i+1,J=j;if(M%10==6) I=i+1,J=j-1;if(M%10==7) I=i,J=j-1;if(M%10==8) I=i-1,J=j-1;
    
                if(I==X&&J==Y&&M/100==2) {Jian(2),system("color 4F"),Sleep(30);system("color 0F"),m[i][j]=0;Map(4);}
                else if(I==X&&J==Y&&M/100==1) m[I][J]=0;
                else if(M/100==2&&m[I][J]/100==1) m[i][j]=32;
                else if(M/100==2&&m[I][J]<55&&m[I][J]>=50) m[i][j]=0;
                else if(m[I][J]==2||m[I][J]==3)//石
                {
                    if((M%100)/10==0)
                    {
                        int rr=rand()%3;
                        if(rr==0) Fan(i,j,M),m[i][j]+=10;
                        else m[i][j]=84;
                    }
                    if((M%100)/10==1)
                    {
                        m[i][j]=84;
                        int rr=rand()%5;
                        if(rr==0&&F[14]==1&&M/100==1)
                        {
                                for(int ii=i-1;ii<=i+1;ii++)
                                for(int jj=j-1;jj<=j+1;jj++)
                                if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84;
                        }
                    }
                    if((M%100)/10==2)
                    {
                        m[i][j]=84;
                        if(m[i-1][j]!=2&&m[i-1][j]!=3)     m[i-1][j]=111;
                        if(m[i-1][j+1]!=2&&m[i-1][j+1]!=3) m[i-1][j+1]=112;
                        if(m[i][j+1]!=2&&m[i][j+1]!=3)     m[i][j+1]=113;
                        if(m[i+1][j+1]!=2&&m[i+1][j+1]!=3) m[i+1][j+1]=114;
                        if(m[i+1][j]!=2&&m[i+1][j]!=3)     m[i+1][j]=115;
                        if(m[i+1][j-1]!=2&&m[i+1][j-1]!=3) m[i+1][j-1]=116;
                        if(m[i][j-1]!=2&&m[i][j-1]!=3)     m[i][j-1]=117;
                        if(m[i-1][j-1]!=2&&m[i-1][j-1]!=3) m[i-1][j-1]=118;
                    }
                    if((M%100)/10==3) {if(m[I][J]==2&&(I!=1&&J!=1&&I!=29&&J!=29)) m[I][J]=84;else m[i][j]=84;}
                    if((M%100)/10==4) m[i][j]=84;
                    if((M%100)/10==5)
                    {
                        for(int ii=i-2;ii<=i+2;ii++)
                        for(int jj=j-2;jj<=j+2;jj++)
                        if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84;
                    }
                    if((M%100)/10==6)
                    {
                        for(int ii=i-1;ii<=i+1;ii++)
                        for(int jj=j-1;jj<=j+1;jj++)
                        if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=9;
                    }
                    if((M%100)/10>=7&&(M%100)/10<9) Fan(i,j,M),m[i][j]+=(rand()%2)*10;
                    if((M%100)/10==9) m[i][j]=84;
                }
                else if(!CanGo(I,J,6))//其他
                {
                    if((M%100)/10==0) m[I][J]=84,Fan(i,j,M),m[i][j]+=10;
                    if((M%100)/10==1)
                    {
                        if(M/100==2&&m[I][J]==50) m[i][j]=0;
                        else m[I][J]=84;
                        if(F[14]==1&&M/100==1)
                        {
                                for(int ii=I-1;ii<=I+1;ii++)
                                for(int jj=J-1;jj<=J+1;jj++)
                                if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84;
                        }
                    }
                    if((M%100)/10==2)
                    {
                        m[I][J]=84;
                        if(m[I-1][J]!=2&&m[I-1][J]!=3)     m[I-1][J]=111;
                        if(m[I-1][J+1]!=2&&m[I-1][J+1]!=3) m[I-1][J+1]=112;
                        if(m[I][J+1]!=2&&m[I][J+1]!=3)     m[I][J+1]=113;
                        if(m[I+1][J+1]!=2&&m[I+1][J+1]!=3) m[I+1][J+1]=114;
                        if(m[I+1][J]!=2&&m[I+1][J]!=3)     m[I+1][J]=115;
                        if(m[I+1][J-1]!=2&&m[I+1][J-1]!=3) m[I+1][J-1]=116;
                        if(m[I][J-1]!=2&&m[I][J-1]!=3)     m[I][J-1]=117;
                        if(m[I-1][J-1]!=2&&m[I-1][J-1]!=3) m[I-1][J-1]=118;
                    }
                    if((M%100)/10==3) m[I][J]=M,nx[I][J]=1;
                    if((M%100)/10==4) Light(i,j,M,3);
                    if((M%100)/10==5)
                    {
                        for(int ii=I-2;ii<=I+2;ii++)
                        for(int jj=J-2;jj<=J+2;jj++)
                        if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=84;
                    }
                    if((M%100)/10==6)
                    {
                        for(int ii=I-1;ii<=I+1;ii++)
                        for(int jj=J-1;jj<=J+1;jj++)
                        if(m[ii][jj]!=2&&m[ii][jj]!=3&&ii<=28&&jj<=28) m[ii][jj]=9;
                    }
                    if((M%100)/10>=7&&(M%100)/10<9) m[I][J]=84,Fan(i,j,M);
                    if((M%100)/10==9) m[I][J]=84;
                }
                else//空地
                {
                    if((M%100)/10==6)
                    {
                        m[i][j]=9;
                        if(CanGo(i,j-1,5)) m[i][j-1]=9;if(CanGo(i,j+1,5)) m[i][j+1]=9;
                        if(CanGo(i-1,j,5)) m[i-1][j]=9;if(CanGo(i-1,j,5)) m[i+1][j]=9;
                        m[I][J]=M,nx[I][J]=1;
                    }
                    if((M%100)/10==4) m[i][j]=84,m[I][J]=M,i=2,j=2;
                    else m[I][J]=M,nx[I][J]=1;
                }
            }
        }
        if(Bblood>0) Boss();
    }
    void Bullet()
    {
        int I=0,J=0,R=rand()%10,Rr=rand()%3,Rrr,K=0,tg=gunT;
        Hh:Rrr=rand()%20;
        if(gunT==1&&m[X-1][Y]!=2&&m[X-1][Y]!=3) I=X-1,J=Y;
        if(gunT==2&&m[X-1][Y+1]!=2&&m[X-1][Y+1]!=3) I=X-1,J=Y+1;
        if(gunT==3&&m[X][Y+1]!=2&&m[X][Y+1]!=3) I=X,J=Y+1;
        if(gunT==4&&m[X+1][Y+1]!=2&&m[X+1][Y+1]!=3) I=X+1,J=Y+1;
        if(gunT==5&&m[X+1][Y]!=2&&m[X+1][Y]!=3) I=X+1,J=Y;
        if(gunT==6&&m[X+1][Y-1]!=2&&m[X+1][Y-1]!=3) I=X+1,J=Y-1;
        if(gunT==7&&m[X][Y-1]!=2&&m[X][Y-1]!=3) I=X,J=Y-1;
        if(gunT==8&&m[X-1][Y-1]!=2&&m[X-1][Y-1]!=3) I=X-1,J=Y-1;
        if(I!=0&&J!=0) m[I][J]=100+10*gunZ+gunT;
        if(K==1) m[I][J]=110+gunT;
        if(F[2]==1&&gunZ==1) m[I][J]=100+gunT;
        if(F[8]==1&&R==0&&K==0) {gunT=rand()%8+1;K=1;goto Hh;}
        if(F[8]==1&&K!=0&&K<Rr) {gunT=rand()%8+1;K++;goto Hh;} if(K>=Rr) gunT=tg;
        if(Rrr==0&&F[11]==1&&K==0) {m[I][J]=100+10*(rand()%7+1)+gunT;}
        if(gunZ!=1) {G[gunZ]--; if(G[gunZ]<=0) G[gunZ]=0,gunZ=1;Map(3);}
    }
    void OpenBox(int a)
    {
        for(int i=X-1;i<=X+1;i++)
        for(int j=Y-1;j<=Y+1;j++)
        if(m[i][j]==3)
        {
            int r=2;//
            if(a==1) r=rand()%6+2;
            if(F[9]==1) r=rand()%12+2;
            SetPos(i,j);Color(5);
            if(r==2) cout<<"分裂枪!";
            if(r==3) cout<<"穿甲枪!";
            if(r==4) cout<<"激光枪!";
            if(r==5) cout<<"爆炸枪!";
            if(r==6) cout<<"毒气枪!";
            if(r==7) cout<<"弹跳枪!";
            if(r==8) cout<<"生命药水!",Blood=min(Blood+5,Bmax+2),Map(3);
            if(r==9) cout<<"盾牌药水!",Dun=min(Dun+5,Dmax+2),Map(3);
            if(F[9]==1&&r>=8&&r<=13) cout<<"生命药水!",Blood=min(Blood+5,Bmax+2),Map(3);
            Sleep(1000);m[i][j]=84;if(r<=7&&F[6]==0) gunZ=r,G[r]+=10;if(r<=7&&F[6]==1) gunZ=r,G[r]+=20;
            SetPos(i,j); cout<<"         ";Map(0);
        }
    }
    void Sheng()
    {
        memset(m,0,sizeof(m));memset(n,0,sizeof(n));
        int q=0,T=0,II=0,JJ=0;
        Re: q++;
        int r=rand()%15+1;
        if(F[19]==1) r=rand()%20+1;
        if(r==1) {for(int i=5;i<=7;i++)for(int j=5;j<=7;j++) m[i][j]=2;for(int i=23;i<=25;i++)for(int j=5;j<=7;j++) m[i][j]=2;for(int i=5;i<=7;i++)for(int j=23;j<=25;j++) m[i][j]=2;for(int i=23;i<=25;i++)for(int j=23;j<=25;j++) m[i][j]=2;}
        if(r==2) {for(int i=13;i<=17;i++) for(int j=13;j<=17;j++) m[i][j]=1;}
        if(r==3) {for(int i=2;i<=28;i++) m[i][6]=m[i][24]=m[6][i]=m[24][i]=1;}
        if(r==4) {for(int i=2;i<=28;i++) m[i][15]=m[15][i]=1;}
        if(r==5) {for(int i=2;i<=28;i++) if(abs(i-15)>=3) m[i][15]=m[15][i]=2;}
        if(r==6) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) if(i==j||i+j==30) m[i][j]=1;}
        if(r==7) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) if(abs(i-15)+abs(j-15)==10) m[i][j]=1;}
        if(r==8) {for(int i=5;i<=25;i++) if(abs(i-15)>=2) m[i][10]=m[i][20]=m[10][i]=m[20][i]=2;}
        if(r==9) {for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) {int rr=rand()%20; if(rr==0&&m[i][j]==0) m[i][j]=1;}}
        if(r>=10&&II==0) {T--;int ii=rand()%27+2;int jj=rand()%27+2; for(int i=ii-1;i<=ii+1;i++) for(int j=jj-1;j<=jj+1;j++) if(m[i][j]==0) m[i][j]=1;II=ii,JJ=jj;}
        if(r>=10&&II!=0) goto Re;if(Lev<=5&&q<2) goto Re;
        T++;if(T==1) goto Re;if(II!=0) m[II][JJ]=3;
        r=rand()%15+1;
        if(r==1) {for(int i=5;i<=25;i++) n[i][4]=n[i][9]=n[i][15]=n[i][21]=n[i][26]=31;}
        if(r==2) {for(int i=8;i<=22;i++) n[i][8]=n[i][22]=n[8][i]=n[22][i]=31;}
        if(r==3) {for(int i=1;i<=5;i++) {int ii=rand()%23+4,jj=rand()%23+4;for(int ki=ii-2;ki<=ii+2;ki++)for(int kj=jj-2;kj<=jj+2;kj++) if(abs(ki-X)>2||abs(kj-Y)>2) n[ki][kj]=1;}}
        if(r==4) {for(int i=1;i<=7;i++) {int ii=rand()%23+4,jj=rand()%23+4;for(int ki=ii-1;ki<=ii+1;ki++)for(int kj=jj-1;kj<=jj+1;kj++) n[ki][kj]=11;}}
        if(r==5) {for(int i=1;i<=20;i++) {int ii=rand()%23+4,jj=rand()%13+1;jj*=2;for(int ki=ii-1;ki<=ii+1;ki++) n[jj+1][ki]=31;}}
        if(r==6) {for(int i=2;i<=28;i++) n[i][9]=n[i][10]=n[i][20]=n[i][21]=11;}
        if(r==7) {for(int i=5;i<=25;i++) n[4][i]=n[9][i]=n[15][i]=n[21][i]=n[26][i]=31;}
        if(r==8) {for(int i=7;i<=23;i++) for(int j=7;j<=23;j++) if(i==j||i+j==30) n[i][j]=31;}
        if(r==9) {for(int i=2;i<=28;i++) {if(i!=4&&i!=26&&!(i==Y&&(14<=X&&16>=X))) n[14][i]=n[15][i]=n[16][i]=1; m[14][i]=m[15][i]=m[16][i]=0;}}
        if(r==10) {for(int i=7;i<=23;i++) if(abs(i-15)>1) n[i][7]=n[i][23]=n[7][i]=n[23][i]=1;}
        Kk:
        int k=0,K[35][35]; memset(K,0,sizeof(K));
        if(Lev%5!=4)
        {
            for(int i=2;i<=28;i++)//怪
            for(int j=2;j<=28;j++)
            {
                if(Lev<=1) {int r=rand()%150;if(r==0) K[i][j]=50,k++;}
                else if(Lev<=2) {int r=rand()%200;if(r==0) K[i][j]=50;if(r==1) K[i][j]=51;if(r<=1) k++;}
                else if(Lev<=3) {int r=rand()%300;if(r==0) K[i][j]=50;if(r==1) K[i][j]=51;if(r==2) K[i][j]=52;if(r<=2) k++;}
                else if(Lev<=5) {int r=rand()%400;if(r==0) K[i][j]=50;if(r==1) K[i][j]=51;if(r==2) K[i][j]=52;if(r==3) K[i][j]=53;if(r<=3) k++;}
                else if(Lev<=7) {int r=rand()%350;if(r==0) K[i][j]=50;if(r==1) K[i][j]=51;if(r==2) K[i][j]=52;if(r==3) K[i][j]=53;if(r==4) K[i][j]=54;if(r<=4) k++;}
                else {int r;if(Lev<=10) r=rand()%300;if(Lev<=15) r=rand()%280;if(Lev<=20) r=rand()%250;if(Lev<=25) r=rand()%230;if(r==0) K[i][j]=50;if(r==1) K[i][j]=51;if(r==2) K[i][j]=52;if(r==3) K[i][j]=53;if(r==4) K[i][j]=54;if(r<=4) k++;}
            }if(k<3) goto Kk;if(k>5&&Lev<=3) goto Kk;if(k<5&&Lev>=10) goto Kk;if(k>10&&Lev<=10) goto Kk;if(k>15&&Lev<=15) goto Kk;if(k<10&&Lev>=20) goto Kk;if(k>20&&Lev<=20) goto Kk;
        }
        for(int i=2;i<=28;i++) for(int j=2;j<=28;j++) {if(n[i][j]!=0) m[i][j]=0;if(K[i][j]!=0&&(m[i-1][j]!=2||m[i+1][j]!=2||m[i][j-1]!=2||m[i][j+1]!=2)) m[i][j]=K[i][j];}
        if(Lev%5==4) {int ms;if(Lev==4) ms=3;if(Lev==9) ms=5;if(Lev==14) ms=10;if(Lev==19) ms=15;if(Lev==24) ms=20;Bx=rand()%23+4,By=rand()%23+4;Bblood=ms*12;for(int i=14;i<=16;i++) for(int j=14;j<=16;j++) m[i][j]=n[i][j]=0;}
        for(int i=X-1;i<=X+1;i++) for(int j=Y-1;j<=Y+1;j++) if(i!=1&&i!=29&&j!=1&&j!=29) m[i][j]=0;
        for(int i=1;i<=29;i++) m[1][i]=2,m[29][i]=2; for(int i=1;i<=29;i++) m[i][1]=2,m[i][29]=2;//周围石块
    }
    void TianFu()
    {
        int A[4],ss=0;
        system("cls");
        SetPos(5,5),cout<<"选择一个天赋!(数字键选择)"; 
        Tf:
        int R=rand()%20+1;
        for(int i=1;i<=3;i++) if(R==A[i]) goto Tf;
        if(F[R]==1) goto Tf;
        ss++,A[ss]=R; SetPos(4*ss+5,8),cout<<ss<<"、";
        if(R==1) SetPos(4*ss+5,10),cout<<"盾牌恢复速度增加";
        if(R==2) SetPos(4*ss+5,10),cout<<"普通子弹有概率弹跳";
        if(R==3) SetPos(4*ss+5,10),cout<<"怪物子弹速度变慢";
        if(R==4) SetPos(4*ss+5,10),cout<<"免疫地刺和怪物的毒";
        if(R==5) SetPos(4*ss+5,10),cout<<"开局无敌时间增加";
        if(R==6) SetPos(4*ss+5,10),cout<<"宝箱子弹量增加";
        if(R==7) SetPos(4*ss+5,10),cout<<"盾牌上限增加";
        if(R==8) SetPos(4*ss+5,10),cout<<"有概率发射散弹";
        if(R==9) SetPos(4*ss+5,10),cout<<"宝箱抽出生命水概率增加";
        if(R==10) SetPos(4*ss+5,10),cout<<"每次开局有概率增加生命";
        if(R==11) SetPos(4*ss+5,10),cout<<"有概率发射特殊子弹";
        if(R==12) SetPos(4*ss+5,10),cout<<"激光伤害减半";
        if(R==13) SetPos(4*ss+5,10),cout<<"盾牌爆后无敌一段时间";
        if(R==14) SetPos(4*ss+5,10),cout<<"普通子弹有概率爆炸";
        if(R==15) SetPos(4*ss+5,10),cout<<"杀死怪有几率加盾(BOSS关除外)";
        if(R==16) SetPos(4*ss+5,10),cout<<"出场释放冲击波";
        if(R==17) SetPos(4*ss+5,10),cout<<"盾牌爆后释放冲击波";
        if(R==18) SetPos(4*ss+5,10),cout<<"有概率在身周放毒";
        if(R==19) SetPos(4*ss+5,10),cout<<"刷出宝箱概率增加";
        if(R==20) SetPos(4*ss+5,10),cout<<"每次开局获得一把枪";
        if(ss<3) goto Tf;
        tF:
        char c=_getch();
        if(c>='1'&&c<='3') F[A[c-'0']]=1;
        else goto tF;
        if(A[c-'0']==7) Dmax+=3;
    }
    void GuaiQuan()
    {
        X=3,Y=3;Win=-1;system("cls");Color(0);
        memset(m,0,sizeof(m));memset(n,0,sizeof(n));
        for(int i=1;i<=29;i++) m[1][i]=2,m[29][i]=2;
        for(int i=1;i<=29;i++) m[i][1]=2,m[i][29]=2;//周围石块 
        for(int i=4;i<=12;i++) m[i][4]=m[i][12]=m[4][i]=m[12][i]=m[i][18]=m[i][26]=m[18][i]=m[26][i]=2;
        for(int i=18;i<=26;i++) m[i][4]=m[i][12]=m[4][i]=m[12][i]=m[i][18]=m[i][26]=m[18][i]=m[26][i]=2;
        for(int i=11;i<=19;i++) m[i][11]=m[i][19]=m[11][i]=m[19][i]=2;
        for(int i=6;i<=10;i++) for(int j=13;j<=17;j++) m[i][j]=1; 
        m[8][8]=50;m[8][21]=51;m[15][15]=52;m[21][8]=53;m[21][21]=54;m[16][23]=3;Map(5);
        SetPos(3,5);cout<<"←你";SetPos(4,14);cout<<"木箱↓";SetPos(17,4);cout<<"铁块↓";SetPos(17,21);cout<<"宝箱↑";
        SetPos(13,5);cout<<"无脑小怪↑";SetPos(14,21);cout<<"剧毒小怪↑";
        SetPos(20,13);cout<<"散弹小怪↑";SetPos(27,5);cout<<"狙击小怪↑";SetPos(27,21);cout<<"激光小怪↑";
        while(1)
        {
            if(bu>0) bu--;
            if(GetAsyncKeyState(VK_UP)&0x8000) Map(2),gx--; 
            else if(GetAsyncKeyState(VK_DOWN)&0x8000) Map(2),gx++;
            else if(GetAsyncKeyState(VK_LEFT)&0x8000) Map(2),gy--;
            else if(GetAsyncKeyState(VK_RIGHT)&0x8000) Map(2),gy++;
            if(kbhit())
            {
                char g=_getch();
                if(g=='a') {Map(2); if(gunT!=1) gunT--;else gunT=8;}
                if(g=='d') {Map(2); if(gunT!=8) gunT++;else gunT=1;}
                if(g=='w') OpenBox(1);
                if(g=='s'&&bu<=2) Bullet(),bu+=2;
                if(g==' ') Sleep(100),SetPos(-1,18),sy++,system("pause");
                if(g=='y'&&Win<0) {break;}
            }
            if(sy==1) SetPos(-1,18),cout<<"                           ",sy--;
            Move(); Map(0); Sleep(50);
        }Lev=0;Blood=10,Dun=10,Bmax=10,Dmax=10;
    }
    void Start()
    {
        Color(5);
        SetPos(2,3);cout<<"     ■■■■■■            ■                  ";
        SetPos(3,3);cout<<"                            ■■■■■■■■     ";
        SetPos(4,3);cout<<"                           ■                    ";
        SetPos(5,3);cout<<" ■■■■■■■■■■    ■  ■■■■■■        ";
        SetPos(6,3);cout<<"       ■    ■                                  ";
        SetPos(7,3);cout<<"       ■    ■              ■■■■■■■      ";
        SetPos(8,3);cout<<"      ■     ■  ■                    ■        ";
        SetPos(9,3);cout<<"   ■■       ■■■                  ■        ";
        SetPos(10,3);cout<<"                                      ■    ■  ";
        SetPos(11,3);cout<<"                         小            ■■■■ ";
        SetPos(13,3);cout<<" 2.0版本:                                      ";
        SetPos(14,3);cout<<"                               ■■■     ■    ";
        SetPos(15,3);cout<<" 新增BOSS!Crab-Dave!         ■  ■    ■     ";
        SetPos(16,3);cout<<"                               ■■■  ■    ■ ";
        SetPos(17,3);cout<<" 水,生木块,地刺加入战场!      ■  ■ ■■■■■";
        SetPos(18,3);cout<<"                               ■  ■           ";
        SetPos(19,3);cout<<" 身周不会刷出石和水了!        ■■■  ■■■■ ";
        SetPos(20,3);cout<<"                               ■  ■  ■    ■ ";
        SetPos(21,3);cout<<" BUG修正于小优化!努力通关吧! ■  ■  ■    ■ ";
        SetPos(22,3);cout<<"                            ■■   ■  ■■■■ ";
        SetPos(25,4);Color(1);cout<<"按 y 开始游戏!";
        SetPos(29,3);Color(3);cout<<"注意!这里 绝对不能是拼音输入法!";
        A:char y=_getch();
        if(y=='y') return;
        else goto A;
    }
    void Bling()
    {
        for(int i=0;i<=3;i++)
        {
            system("color 1A");Sleep(10);
            system("color 2B");Sleep(10);
            system("color 3C");Sleep(10);
            system("color 4D");Sleep(10);
            system("color 5D");Sleep(10);
            system("color 6E");Sleep(10);
            system("color 7F");Sleep(10);
        }system("color 0F");system("cls");
    }
    void BaoBo(int B)
    {
        for(int i=X-B;i<=X+B;i++) if(CanGo(i,Y-B,3)&&i>0&&Y-B>0) m[i][Y-B]=86,m[i][Y-B+1]=8;
        for(int i=X-B;i<=X+B;i++) if(CanGo(i,Y+B,3)&&i>0&&Y+B>0) m[i][Y+B]=86,m[i][Y+B-1]=8;
        for(int j=Y-B;j<=Y+B;j++) if(CanGo(X+B,j,3)&&j>0&&X+B>0) m[X+B][j]=86,m[X+B-1][Y]=8;
        for(int j=Y-B;j<=Y+B;j++) if(CanGo(X-B,j,3)&&j>0&&X-B>0) m[X-B][j]=86,m[X-B+1][Y]=8;
    }
    void Ci()
    {
        for(int i=1;i<=29;i++)
        for(int j=1;j<=29;j++)
        {
            if(n[i][j]>=10&&n[i][j]<50&&n[i][j]!=30) n[i][j]++;
            if(n[i][j]==50) {n[i][j]=31;if(m[i][j]==2) m[i][j]=0;}
            if(n[i][j]==45&&!(m[i][j]>=50&&m[i][j]<55)&&!(abs(Bx-i)<=1&&abs(By-i)<=1)) m[i][j]=2;
            if(n[i][j]>20&&n[i][j]<=30&&m[i][j]==0) n[i][j]=10;
            if(n[i][j]==20&&m[i][j]==0&&!(abs(Bx-i)<=1&&abs(By-i)<=1)) m[i][j]=1;
        }
    }
    int main()
    {
        system("mode con cols=62 lines=34");
        CONSOLE_CURSOR_INFO cursor_info={1,0};
        SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
        srand((unsigned)time(NULL));
        SSt: 
        Start();Bling();
        X=4,Y=8,gx=gy=0,gunT=1,gunZ=1,Lev=0,T;
        Blood=10,Dun=10,Bmax=10,Dmax=10;
        memset(G,0,sizeof(G)); memset(F,0,sizeof(F));
        GuaiQuan();
        St:
        Win=0;Bo=Boo=0;
        memset(m,0,sizeof(m));
        if(Lev%5==0&&Lev!=0) TianFu();
        Bling();T=0;Sheng();Map(1);int rr=rand()%3;
        if(F[5]==1) WuDi=60;else WuDi=30;
        if(rr==0&&F[10]==1) Blood=min(Blood+1,Bmax);
        if(F[16]==1) Bo=4;
        if(F[20]==1) {int Q=rand()%7+2;gunZ=Q,G[Q]=5;}
        while(Win<=0&&Blood>0&&Lev<25)
        {
            T++;
            if(bu>0) bu--;
            if(WuDi>0) WuDi--;
            if(WuDi==1) WuDi--,Map(4);
            if(Bo>0) BaoBo(5-Bo),Bo--;
            if(Boo>0) BaoBo(4-Boo),Boo--;
            if(F[18]==1)
            {
                int Rrr=rand()%30;
                if(Rrr==0)
                for(int i=X-2;i<=X+2;i++)
                for(int j=Y-2;j<=Y+2;j++) if(CanGo(i,j,5)&&i>0&&j>0) m[i][j]=9;
            }
            if(Dun<Dmax)
            {
                if(F[1]==1&&T%30==0) Dun++,Map(3);
                if(F[1]==0&&T%70==0) Dun++,Map(3);
            }
            if(GetAsyncKeyState(VK_UP)&0x8000) Map(2),gx--; 
            else if(GetAsyncKeyState(VK_DOWN)&0x8000) Map(2),gx++;
            else if(GetAsyncKeyState(VK_LEFT)&0x8000) Map(2),gy--;
            else if(GetAsyncKeyState(VK_RIGHT)&0x8000) Map(2),gy++;
            if(kbhit())
            {
                char g=_getch();
                if(g=='a') {Map(2); if(gunT!=1) gunT--;else gunT=8;}
                if(g=='d') {Map(2); if(gunT!=8) gunT++;else gunT=1;}
                if(g=='w') OpenBox(0);
                if(g=='s'&&bu<=2) Bullet(),bu+=2;
                if(g==' ') Sleep(100),SetPos(-1,18),sy++,system("pause");
            }
            if(sy==1) SetPos(-1,18),cout<<"                           ",sy--;
            if(T%2==0) Ci();
            Move();Map(0);Sleep(50);
        }
        if(Win==0&&Blood<=0&&Lev<25)
        {
            system("color 7F"),Color(4);Lev=0;Blood=Dun=Bmax=Dmax=10;
            Bblood=Bsi=Bjiao=Bdu=Bfang=0;
            memset(G,0,sizeof(G)); memset(F,0,sizeof(F));
            SetPos(2,2);cout<<"You! Die!!!",Sleep(1000);
            SetPos(3,2);cout<<"Please point 'y' to Play AGain.";
        }
        if(Lev<25) { A:char e=_getch();if(e=='y') goto St;else goto A;}
        if(Lev==25)
        {
            system("color 6E"),Color(5);
            SetPos(2,2),cout<<"You! Pass All The Level!!!";Sleep(3000);
            system("color 0F");system("cls");goto SSt;
        }
        return 0;
    }
    
    
  • 通过的题目

  • 最近活动

题目标签

初窥门径
23
顺序结构
17
循环结构
10
分支结构
6
蓝桥杯
6
略有小成
5
驾轻就熟
4
动态规划
4
GESP四级
4
模拟
3
背包
3
融会贯通
3
进制转换
3
GESP三级
3
搜索
3
枚举
3
递归
2
二维数组
2
计数排序
2
GESP
2