• 个人简介

    🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃更新中...

    加油中🧵🚌

    https://www.cnblogs.com/ggc114514/p/18565009

    (对不起,以后可能无法再更新了,每次更新代码显示bio字段验证错误)主页有贪吃蛇,飞船大战代码(在底下)(本人的肝已废)(唯一正版,认准祖陟秋)

    copy游戏c++代码白名单 杨洲懿(其他人是盗版,谢天昱盗代码已被制裁,盗代码的,坦白从宽,抗拒从严,至少要向洪苏卓然一样)————————————————————————祖陟秋

    一、魔改古诗段子

    真·慈母手中剑

    慈母手中剑, 游子身上劈。 一秒12剑, 剑剑出暴击。 父看子未凉, 掏出七匹狼。 子看七匹狼, 瞬间透心凉。 透心凉, 心飞扬, 果冻我要喜之郎。 十年生死两茫茫, 喜羊羊, 灰太狼, 舒克贝塔, 蓝猫话凄凉。 纵使相逢应不识, 圣斗士, 美猴王。 老夫聊发少年狂, 治肾亏, 不含糖。 锦帽貂裘, 洗衣用奇强。 为报倾城随太守, 三百年, 九芝堂。 夜来幽梦忽还乡, 学外语, 新东方。 相顾无言, 洗洗更健康。 挖掘机, 哪家强, 中国山东找蓝翔。

    趣味古诗接梗

    老师:山穷水复疑无路 大雄:方天画戟捅义父 老师:垂死病中惊坐起 大雄:吃席麻烦先随礼 老师:但使龙城飞将在 大雄:Come on baby don't be shy. 老师:巴山楚水凄凉地 大雄:蜜雪冰城甜蜜蜜 老师:问君能有几多愁 大雄:累了困了喝红牛 老师:大风起兮云飞扬 大雄:意大利炮轰他娘 老师:清明时节雨纷纷 大雄:唱跳rap蔡徐坤 老师:远赴人间惊鸿宴 大雄:大声点我听不见 老师:少小离家老大回 大雄:菊花变成向日葵 老师:后宫佳丽三千人 大雄:铁杵也能磨成针 老师:老骥伏枥,志在千里 大雄:横扫饥饿,做回自己

    二、OI信息学段子

    数学上来先打表,DP一般看规律. 组合数学靠运气,计算几何瞎暴力; 图论强行套模板,数论只会GCD. 递归递推伤不起,搜索茫然TLE; 分治做得像枚举,暴力枚举数第一. 数据结构干瞪眼,怒刷水题找信心; 涨姿势也不容易,考试一来全懵逼!

    改编歌曲

    爱你提交while(1), 爱你去卡测评机, 爱你输出了样例,却还是爆 0 , 爱你天天去卡常,却还是TLE , 爱你和我那么像,变量名一样!

    文理对比

    数学是火,点亮物理的灯; 物理是灯,照亮化学的路; 化学是路,通向生物的坑; 生物是坑,埋葬学理的人。 文言是火,点亮历史宫灯; 历史是灯,照亮社会之路; 社会是路,通向哲学大坑; 哲学是坑,埋葬文科生。

    NOI满江红

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

    OJ趣味解释

    AC=Answer Coarse=粗劣的答案 WA=Wonderful Answer=好答案 TLE=Time Limit Enough=时间充裕 MLE=Memory Limit Enough=内存充裕 CE=Compile Easily=轻松通过编译 RE=Run Excellently=完美运行

    OI打油诗

    暴力出奇迹,骗分过样例。 数学先打表,DP看运气。 穷举TLE,递推UKE。 模拟MLE,贪心还CE。 要想拿A C ,必须先R E 。 想要骗到分,就要有方法。 图论背模板,数论背公式。 动规背方程,高精背代码。 如果都没背,干脆输样例。 珂朵莉OI短句 莫笑分块没头脑,要说好处真不少。 又好写来又好调,代码简单常数小。 对数算法真难找,考虑根号没烦恼。 管它点分线段树,直接分块就没了! 两题了不起,一题夸自己。 六十也算赢,拼暴力也行。 爆零就爆零,天天好心情。

    三、完整版·致敬Minecraft

    有种坚持叫僵尸, 有种精准叫骷髅, 有种牺牲叫爬行者, 有种速度叫末影人, 有种护甲叫潜影贝, 有种伤害叫末影龙, 有种桀骜叫凋灵, 有种呆萌叫菜鸟, 有种实力叫爱丽克斯, 有种黑暗叫Null, 有种恐惧叫恐惧魔王, 有种强大叫实体303, 有种主宰叫Herobrine, 有种神叫notch, 有种灵魂叫史蒂夫, 有种信仰叫minecraft. 记住,神不会流血,但你会—Herobrine, 只有打败我的人,才能得到我的尊重—实体303, 你内心的恐惧,是我最大的快乐—恐惧魔王, 你心中的黑暗便是我的存在—Null, 战斗的事,让男人来—炎黄, 保护自然资源, 爱护生态环境—籽岷, 学会红石,改变MC命运—明月庄主, 还记得第一次撸树的时候, 还记得第一次做出工具的时候, 还记得第一次挖矿的时候, 还记得第一次打怪的时候, 还记得第一次挖到钻石的时候, 还记得第一次做出钻石套的时候, 还记得第一次找到地狱城堡的时候, 还记得第一次打败凋灵的时候, 还记得第一次找到要塞的时候, 还记得第一次去末地的时候, 还记得第一次打败末影龙的时候,这样就结束了吗? 不,这才刚刚开始, 还记得自己撸的第一棵树吗? 此生无悔入MC,来世还做方块人! 致敬minecraft! 那天,他下线了 那天,他再也不会上线了 那天,这个存档再也不会被打开了 那天,僵尸垂下了手臂,感受着阳光 那天,骷髅扔了沉重的弓 那天,蜘蛛盘起了腿,开始养老 那天,女巫扔了所有的瓶子,摔了酿造台,烧了小屋 那天,末影人不再拆房子 那天,苦力怕掏出了火药 那天,史莱姆变小,再变小,最终化作一滩粘液 那天,村民销毁了交易面板,不再做奸商,开始勤勤恳恳的种地。 那天,烈焰人不再发出沉闷的怒吼 那天,恶魂不再痛哭 那天,僵尸猪人扔下金剑,归隐进岩浆 那天,地狱堡垒化作灰尘,因为不会有人再来 那天,凋零化作灵魂沙和头颅,头颅还是三个,只是再也不会复活 那天,HIM换上了正常的瞳色,因为他没有人可以吓了

    四、整蛊文案

    1.你不可能强迫自己用肥皂水洗眼睛 2.你不可能竖起耳朵 3.你不可能一边把舌头吐出来一边用鼻子呼吸 4.刚刚偷偷试第三项 6.你试了第三项之后发现明明就可以,只是看起来像条狗 7.你现在很生气, 因为你发现自己被整了 8.你刚没有读到第五项 9.你刚刚往上看了一眼 10.你会复制粘贴这段话拿去整别人 11.你还在看 12.你笑了 13.第八也没有,你信吗 14.你又往上看了 15.你打喷嚏时睁眼睛,眼珠子会掉下来 17.你现在并没有打喷嚏 18.你正在模仿打喷嚏 19.你的眼珠子并没有掉下来 20.你现在想搜一下:打喷嚏时睁眼睛,眼珠子会掉下来吗? 21.第16项也没有 22.你本不想往上看,但在好奇心的驱使下,你看了一下

    附加整蛊

    1.你绝对不能考一亿个亿百分。 2.你可能是男的,也有可能是女的。 4.你好,hello! 5.没有第三条。 6.你刚刚回头看了。 8.你猜猜我为什么要写英文。 9.我喜欢!!! 10.你的心里十分无语。 11.没有第七条。 12.你本来不想回头看的,但好奇心作祟,你还是回头看了。 13.第十二条前面有个空格,不知道你发现了没有。 14.你又又又回头看了。 15.但是你没发现有空格。

    五、各科老师顺口溜

    语文老师一回头, 鲁迅甘为孺子牛; 数学老师一回头, 六元六次都能求; 英语老师一回头, Sorry加上三克油; 物理老师一回头, 一根杠杆撬地球; 化学老师一回头, 二氧化碳变汽油; 劳动老师一回头, 破铜烂铁来走秀; 体育老师一回头, 黛玉也能踢足球; 政治老师一回头, 全班同学都梦游; 美术老师一回头, 蒙娜丽莎也风流; 音乐老师一回头, 贝多芬呀也不牛; 信息老师一回头, 带着学生玩网游。

    四则小诗

    加法相逢喜洋洋,数九寒冬暖如阳。 减法无穷减烦恼,犹如秋叶离枝飘。 乘法繁花开满径,相乘之力胜千钧。 除法河流归大海,分享平等道义在。 取余旋律多姿态,余音绕梁韵更深。

    六、完整版·童年的发现

    我在背《古诗三首》的时候烧了《祖父的园子》,祖父罚我背《月是故乡明》,我因此染上了《梅花魂》,还去《草船借箭》了。 我偷偷地跨过《景阳冈》,看见了《猴王出世》,体验了《红楼春趣》,写了《古诗三首》和《青山处处埋忠骨》, 当上了《军神》,过上了《清贫》的生活。我在大街上遇到了《人物描写一组》的《刷子李》,我就和他聊天。 聊着聊着,他和我《自相矛盾》了,要和我《田忌赛马》,他输了,于是《跳水》了。我就坐上《威尼斯的小艇》去了《牧场之国》, 看到了《金字塔》,里面竟然有《杨氏之子》的《手指》。这就是我《童年的发现》

    
    
    \\\\ \\ \\ \\ \\ \\ \\        _ooOoo_          // // // // // // ////
    \\\\ \\ \\ \\ \\ \\          o8888888o            // // // // // ////
    \\\\ \\ \\ \\ \\             88" . "88               // // // // ////
    \\\\ \\ \\ \\                (| -_- |)                  // // // ////
    \\\\ \\ \\                   O\  =  /O                     // // ////
    \\\\ \\                   ____/`---'\____                     // ////
    \\\\                    .'  \\|     |//  `.                      ////
    //==                   /  \\|||  :  |||//  \                     ==\\
    //==                  /  _||||| -:- |||||-  \                    ==\\
    //==                  |   | \\\  -  /// |   |                    ==\\
    //==                  | \_|  ''\---/''  |   |                    ==\\
    //==                  \  .-\__  `-`  ___/-. /                    ==\\
    //==                ___`. .'  /--.--\  `. . ___                  ==\\
    //==             ."" '<  `.___\_<|>_/___.'  >' "".               ==\\
    //==            | | :  `- \`.;`\ _ /`;.`/ - ` : | |              \\\\
    ////            \  \ `-.   \_ __\ /__ _/   .-` /  /              \\\\
    ////      ========`-.____`-.___\_____/___.-`____.-'========      \\\\
    ////                           `=---='                           \\\\
    //// //   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  \\ \\\\
    //// // //      佛祖保佑      永无BUG      永不修改        \\ \\ \\\\
    //// // // // // // || || || || || || || || || || \\ \\ \\ \\ \\ \\\\
    
    
    
    
        sb
    

    贪吃蛇

    #include <iostream>
    #include <windows.h>
    #include <conio.h>
    #include <cstdlib>
    #include <ctime>
    using namespace std;   //五一爆肝的贪吃蛇代码
    
    // 超大地图
    const int width = 60;
    const int height = 25;
    const int FOOD_NUM = 8;   // 食物数量,可改
    
    bool gameOver;
    bool pause = false;
    int gameMode;   // 1单人 2双人
    
    // 蛇1 变量
    int x1, y1;
    int tailX1[200], tailY1[200];
    int nTail1;
    
    // 蛇2 变量
    int x2, y2;
    int tailX2[200], tailY2[200];
    int nTail2;
    
    int score1, score2;
    int fruitX[FOOD_NUM], fruitY[FOOD_NUM];
    
    enum Dir { STOP = 0, LEFT, RIGHT, UP, DOWN };
    Dir dir1, dir2;
    
    void gotoxy(int x, int y) {
        COORD pos;
        pos.X = x;
        pos.Y = y;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
    }
    
    void HideCursor() {
        CONSOLE_CURSOR_INFO ci = { 1, 0 };
        SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &ci);
    }
    
    void spawnFood(int idx) {
        fruitX[idx] = rand() % width;
        fruitY[idx] = rand() % height;
    }
    
    // 初始化游戏
    void Setup() {
        gameOver = false;
        pause = false;
        dir1 = STOP;
        dir2 = STOP;
    
        // 蛇1初始位置 左边
        x1 = 10; y1 = height / 2;
        // 蛇2初始位置 右边
        x2 = width - 10; y2 = height / 2;
    
        score1 = 0;
        score2 = 0;
        nTail1 = 0;
        nTail2 = 0;
    
        // 生成多个食物
        for (int i = 0; i < FOOD_NUM; i++)
            spawnFood(i);
    
        HideCursor();
    }
    
    // 绘制超大地图
    void Draw() {
        gotoxy(0, 0);
        // 上边框
        for (int i = 0; i < width + 2; i++) cout << "#";
        cout << endl;
    
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                if (j == 0) cout << "#";
    
                // 蛇1头 O
                if (i == y1 && j == x1)
                    cout << "O";
                // 蛇2头 X
                else if (i == y2 && j == x2 && gameMode == 2)
                    cout << "X";
                else {
                    bool isF = false;
                    // 画所有食物
                    for (int k = 0; k < FOOD_NUM; k++) {
                        if (fruitY[k] == i && fruitX[k] == j) {
                            cout << "F";
                            isF = true;
                            break;
                        }
                    }
                    if (isF) continue;
    
                    // 蛇1身体
                    bool body1 = false;
                    for (int k = 0; k < nTail1; k++) {
                        if (tailX1[k] == j && tailY1[k] == i) {
                            cout << "o";
                            body1 = true;
                        }
                    }
                    if (body1) continue;
    
                    // 蛇2身体
                    bool body2 = false;
                    if (gameMode == 2) {
                        for (int k = 0; k < nTail2; k++) {
                            if (tailX2[k] == j && tailY2[k] == i) {
                                cout << "x";
                                body2 = true;
                            }
                        }
                    }
                    if (!body2) cout << " ";
                }
    
                if (j == width - 1) cout << "#";
            }
            cout << endl;
        }
        // 下边框
        for (int i = 0; i < width + 2; i++) cout << "#";
        cout << endl;
    
        cout << "玩家1分数:" << score1;
        if (gameMode == 2) cout << "     玩家2分数:" << score2;
        cout << "     空格=暂停/继续   X=退出" << endl;
        if (pause) cout << "【游戏已暂停,按空格继续】" << endl;
    }
    
    // 按键监听
    void Input() {
        if (_kbhit()) {
            switch (_getch()) {
                // 玩家1 WASD
                case 'a': if (dir1 != RIGHT) dir1 = LEFT; break;
                case 'd': if (dir1 != LEFT)  dir1 = RIGHT; break;
                case 'w': if (dir1 != DOWN)  dir1 = UP;    break;
                case 's': if (dir1 != UP)    dir1 = DOWN;  break;
    
                // 玩家2 方向键 仅双人模式
                case 72: if (gameMode==2 && dir2!=DOWN) dir2=UP;    break;
                case 80: if (gameMode==2 && dir2!=UP)   dir2=DOWN;  break;
                case 75: if (gameMode==2 && dir2!=RIGHT)dir2=LEFT;  break;
                case 77: if (gameMode==2 && dir2!=LEFT) dir2=RIGHT; break;
    
                case 'x': gameOver = true; break;
                case ' ': pause = !pause;  break;
            }
        }
    }
    
    // 蛇1逻辑
    void Logic1() {
        int px = tailX1[0], py = tailY1[0];
        int px2, py2;
        tailX1[0] = x1; tailY1[0] = y1;
        for (int i = 1; i < nTail1; i++) {
            px2 = tailX1[i]; py2 = tailY1[i];
            tailX1[i] = px;  tailY1[i] = py;
            px = px2; py = py2;
        }
    
        if(!pause){
            switch (dir1) {
                case LEFT: x1--; break;
                case RIGHT:x1++; break;
                case UP:   y1--; break;
                case DOWN: y1++; break;
                default:break;
            }
        }
    
        // 撞墙
        if (x1<0 || x1>=width || y1<0 || y1>=height)
            gameOver = true;
        // 撞自己
        for (int i = 0; i < nTail1; i++)
            if (tailX1[i]==x1 && tailY1[i]==y1)
                gameOver = true;
    
        // 吃食物
        for (int k = 0; k < FOOD_NUM; k++) {
            if (x1==fruitX[k] && y1==fruitY[k]) {
                score1 += 10;
                nTail1++;
                spawnFood(k);
            }
        }
    }
    
    // 蛇2逻辑
    void Logic2() {
        int px = tailX2[0], py = tailY2[0];
        int px2, py2;
        tailX2[0] = x2; tailY2[0] = y2;
        for (int i = 1; i < nTail2; i++) {
            px2 = tailX2[i]; py2 = tailY2[i];
            tailX2[i] = px;  tailY2[i] = py;
            px = px2; py = py2;
        }
    
        if(!pause){
            switch (dir2) {
                case LEFT: x2--; break;
                case RIGHT:x2++; break;
                case UP:   y2--; break;
                case DOWN: y2++; break;
                default:break;
            }
        }
    
        if (x2<0 || x2>=width || y2<0 || y2>=height)
            gameOver = true;
        for (int i = 0; i < nTail2; i++)
            if (tailX2[i]==x2 && tailY2[i]==y2)
                gameOver = true;
    
        for (int k = 0; k < FOOD_NUM; k++) {
            if (x2==fruitX[k] && y2==fruitY[k]) {
                score2 += 10;
                nTail2++;
                spawnFood(k);
            }
        }
    }
    
    // 模式选择界面
    void SelectMode() {
        system("cls");
        cout << "========== 贪吃蛇 模式选择 ==========" << endl;
        cout << "         1. 单人模式" << endl;
        cout << "         2. 双人模式" << endl;
        cout << "====================================" << endl;
        cout << "请输入 1 或 2 选择:";
        cin >> gameMode;
        while(gameMode != 1 && gameMode != 2){
            cout << "输入错误,请重新输入 1 或 2:";
            cin >> gameMode;
        }
        system("cls");
    }
    
    // 游戏说明
    void ShowHelp() {
        system("cls");
        cout << "==================== 游戏说明 ====================" << endl;
        cout << "【玩家1】控制:W(上) A(左) S(下) D(右)" << endl;
        cout << "【玩家2】控制:↑ ↓ ← → 方向键(双人专用)" << endl;
        cout << "空格键:暂停 / 继续" << endl;
        cout << "X键:退出游戏" << endl;
        cout << "吃到F加分变长,撞墙/撞身体游戏结束" << endl;
        cout << "==================================================" << endl;
        cout << "按任意键开始...";
        _getch();
        system("cls");
    }
    
    int main() {
        SelectMode();    // 选单人/双人
        ShowHelp();      // 游戏说明
        Setup();         // 初始化
    
        while (!gameOver) {
            Draw();
            Input();
            Logic1();
            if (gameMode == 2) Logic2();
            Sleep(40);   // 延迟小、速度快,嫌快就改60、80
        }
    
        system("cls");
        cout << "游戏结束!" << endl;
        cout << "玩家1最终分数:" << score1 << endl;
        if(gameMode == 2) cout << "玩家2最终分数:" << score2 << endl;
        Sleep(3000);
        return 0;
    }
    

    飞船大战

    #include <iostream>
    #include <conio.h>
    #include <windows.h>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    const int WIDTH = 45;
    const int HEIGHT = 22;
    
    // 玩家飞船左上角坐标
    int px, py;
    // 子弹
    int bx, by;
    bool haveBullet;
    // 敌机左上角坐标
    int ex, ey;
    int score;
    
    // 隐藏光标
    void HideCursor()
    {
        CONSOLE_CURSOR_INFO ci;
        ci.dwSize = 1;
        ci.bVisible = FALSE;
        SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &ci);
    }
    
    // 光标定位
    void GoTo(int x, int y)
    {
        COORD p;
        p.X = x; p.Y = y;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), p);
    }
    
    // 初始化
    void Init()
    {
        px = WIDTH / 2 - 1;
        py = HEIGHT - 3;
    
        haveBullet = false;
        bx = 0; by = 0;
    
        ex = rand() % (WIDTH - 3);
        ey = 0;
    
        score = 0;
        HideCursor();
        system("cls");
    }
    
    // 绘制大号飞船
    void Draw()
    {
        GoTo(0, 0);
        // 上边框
        for(int i = 0; i < WIDTH + 4; i++) cout << "#";
        cout << endl;
    
        for(int y = 0; y < HEIGHT; y++)
        {
            cout << "#";
            for(int x = 0; x < WIDTH; x++)
            {
                bool flag = false;
    
                // 玩家大号飞船造型
                if(y == py && x == px)      cout << "▲", flag = 1;
                else if(y == py+1 && x == px-1) cout << "<", flag = 1;
                else if(y == py+1 && x == px)   cout << "◆", flag = 1;
                else if(y == py+1 && x == px+1) cout << ">", flag = 1;
    
                // 子弹
                else if(haveBullet && x == bx && y == by)
                    cout << "|", flag = 1;
    
                // 大号敌机
                else if(y == ey && x == ex)        cout << "@", flag = 1;
                else if(y == ey && x == ex+1)      cout << "@", flag = 1;
                else if(y == ey && x == ex+2)      cout << "@", flag = 1;
                else if(y == ey+1 && x == ex+1)    cout << "▼", flag = 1;
    
                if(!flag) cout << " ";
            }
            cout << "#\n";
        }
        // 下边框
        for(int i = 0; i < WIDTH + 4; i++) cout << "#";
        cout << "\n分数:" << score;
    }
    
    // 按键控制
    void Key()
    {
        if(_kbhit())
        {
            char c = _getch();
            switch(c)
            {
                case 'a': case 'A': if(px > 2) px--; break;
                case 'd': case 'D': if(px < WIDTH-3) px++; break;
                case 'w': case 'W': if(py > 1) py--; break;
                case 's': case 'S': if(py < HEIGHT-4) py++; break;
                case ' ':
                    if(!haveBullet)
                    {
                        haveBullet = true;
                        bx = px;
                        by = py - 1;
                    }
                    break;
            }
        }
    }
    
    // 子弹移动
    void BulletRun()
    {
        if(haveBullet)
        {
            by--;
            if(by < 0) haveBullet = false;
        }
    }
    
    // 敌机移动
    void EnemyRun()
    {
        ey++;
        if(ey >= HEIGHT - 2)
        {
            ey = 0;
            ex = rand() % (WIDTH - 3);
        }
    }
    
    // 碰撞检测
    bool Crash()
    {
        // 子弹打敌机
        if(haveBullet)
        {
            if(by == ey && (bx >= ex && bx <= ex+2))
            {
                score += 10;
                ey = 0;
                ex = rand() % (WIDTH - 3);
                haveBullet = false;
            }
        }
    
        // 飞船撞敌机
        if( (py <= ey+1) && (py+1 >= ey) )
        {
            if( (px-1 <= ex+2) && (px+1 >= ex) )
                return true;
        }
        return false;
    }
    
    int main()
    {
        srand((unsigned)time(NULL));
        Init();
        while(1)
        {
            Draw();
            Key();
            BulletRun();
            EnemyRun();
            if(Crash())
            {
                GoTo(15, HEIGHT/2);
                cout << "游戏结束!最终分数:" << score << endl;
                break;
            }
            Sleep(70);
        }
        return 0;
    } 
    
    绝地狂态(原版):
    #include<bits/stdc++.h>
    #include<windows.h>
    #include<stdio.h>
    #include<conio.h>
    #include<time.h>
    #define KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)
    using namespace std;
    int m[10001][21];
    struct node {int xx,yy,Zhong,rr,mr;} B[100001];
    int K,X,Y,tX,tY,tY2,tT,Er,T,Yb,Zb,Win,Blood,Score,Kb;
    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|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_INTENSITY|BACKGROUND_RED);
        if(a==10) 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-1,pos.Y=x+1;
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
    }
    void Zha(int x,int y)
    {
        Zb++;
        int k1=rand()%2+2,k2=rand()%3+2,r=rand()%6;
        if(r==0) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=k1*2;
        if(r==1) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=2;
        if(r==2) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=3,B[Zb].rr=k2,B[Zb].mr=k1;
        if(r==3) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=4;
        if(r==4) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=5,B[Zb].rr=1,B[Zb].mr=k2*2;
        if(r==5) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=rand()%2+6,B[Zb].rr=k1+1,B[Zb].mr=k2+3;
    }
    void Cout(int i,int j,int a)
    {
        int R=rand()%500,jk=0;
        if(i-K>=0&&i-K<=1&&j>=2&&j<=6) return;
        if(a!=4)
        {
        if(m[i][j]==0&&(a==0||a==3)) SetPos(i-K,j),Color(7),cout<<"■";
        if(m[i][j]==1&&a==5) SetPos(i-K,j),Color(0),cout<<"  ";//空气 
        if(m[i][j]==2) SetPos(i-K,j),Color(8),cout<<"■";
        if(m[i][j]>=3&&m[i][j]<6) SetPos(i-K,j),Color(5),cout<<"█",m[i][j]++;
        if(m[i][j]==6&&a!=5) SetPos(i-K,j),cout<<"  ",m[i][j]=1;
        if(m[i][j]==7) SetPos(i-K,j),Color(9),cout<<"~ ";
        if(m[i][j]==8) SetPos(i-K,j),Color(10),cout<<"~ ";
        if(m[i][j]==9) SetPos(i-K,j),Color(3),cout<<"◆";
        if((m[i][j]==1||m[i][j]==8)&&m[i-1][j]>=10&&m[i-1][j]<=30&&a!=5) {int M=m[i][j];m[i][j]=m[i-1][j],m[i-1][j]=M;if(M==1) SetPos(i-K-1,j),cout<<"  ";}//炸弹下落 
        if(m[i][j]==1&&m[i-1][j]==9&&a!=5) {m[i][j]=9,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<"  ";jk=1;}//宝石下落
        if(m[i][j]>=10&&m[i][j]<=30) {m[i][j]++;if(m[i][j]%3==0) Color(4);else Color(5);SetPos(i-K,j),cout<<"●";}//炸弹计时
        if(m[i][j]==1&&m[i-1][j]==7&&a!=5) {m[i][j]=7,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<"  ";jk=1;}//岩浆下落
        if(m[i][j]==0&&m[i-1][j]==7&&R<=2) m[i][j]=m[i-1][j],m[i-1][j]=1,SetPos(i-K-1,j),cout<<"  ";//岩浆融解 
        if(m[i][j]==7&&R>2&&R<=5) {int r=rand()%3-1; if(m[i][j+r]==1) m[i][j+r]=m[i][j];if(m[i][j+r]==8) m[i][j+r]=2;}//岩浆扩散  
        if(R<50&&R>=20&&m[i+1][j+1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j+1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<"  ";
        if(R<80&&R>=50&&m[i+1][j-1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j-1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<"  ";//岩浆平面 
        if(m[i][j]==1&&m[i-1][j]==8&&a!=5) {m[i][j]=8,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<"  ";jk=1;}//水下落
        if(m[i+1][j+1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j+1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<"  ";
        if(m[i+1][j-1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j-1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<"  ";//水平面 
        if((m[i+1][j]==8&&m[i][j]==7)||(m[i+1][j]==7&&m[i][j]==8)) m[i][j]=2,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<"  ";//变石头
        if(m[i][j]==0&&m[i-1][j]==8&&R>5&&R<=7) m[i][j]=m[i-1][j],m[i-1][j]=1,SetPos(i-K-1,j),cout<<"  ";//水融解 
        if(m[i][j]==8&&R>7&&R<=9) {int r=rand()%3-1; if(m[i][j+r]==1) m[i][j+r]=m[i][j];if(m[i][j+r]==7) m[i][j+r]=2;}//水扩散  
        if(m[i][j]==31) SetPos(i-K,j),cout<<"  ",Zha(i,j);
        }
        else if(a!=5)//界外 
        {
            if(m[i][j]>=3&&m[i][j]<6) m[i][j]++; if(m[i][j]==6) m[i][j]=1;
            if((m[i][j]==1||(m[i][j]>=3&&m[i][j]<=6))&&m[i-1][j]>=10&&m[i-1][j]<=30) m[i][j]=m[i-1][j],m[i-1][j]=1;//炸弹下落 
            if(m[i][j]>=10&&m[i][j]<=30) m[i][j]++;//炸弹计时
            if(m[i][j]==1&&m[i-1][j]==9) m[i][j]=9,m[i-1][j]=1;//宝石下落
            if(m[i][j]==1&&m[i-1][j]==7) m[i][j]=7,m[i-1][j]=1;//岩浆下落
            if(m[i][j]==1&&m[i-1][j]==8) m[i][j]=8,m[i-1][j]=1;//水下落
        }if(jk==1) jk=0,Cout(i,j,5);
        Color(0);
    }
    void Map(int a);
    void Wo()
    {
        SetPos(X-K,Y),cout<<"  "; //清除上一次残影
        if(m[X][Y]==9) Blood++,Score+=5,m[X][Y]=1,system("color 2F"),Sleep(50),system("color 0F"),Map(3);
        if(tX!=0&&(m[X-1][Y]==1||m[X-1][Y]==7||m[X-1][Y]==8||m[X-1][Y]==9||(m[X-1][Y]>=3&&m[X-1][Y]<=6))) tX--,X-=2;  //上跳 
        if(m[X+1][Y]==1||(m[X+1][Y]>=3&&m[X+1][Y]<=6)||m[X+1][Y]==7||m[X+1][Y]==8||m[X+1][Y]==9) X++; //掉落 
        if(m[X+1][Y]==0||m[X+1][Y]==2||(m[X+1][Y]>=3&&m[X+1][Y]<=6)) tX=Er=0; //跳跃次数清零 
        if(m[X-1][Y]==0||m[X-1][Y]==2||(m[X-1][Y]>=10&&m[X-1][Y]<=31)) tX=Er=0; //跳跃次数清零 
        if(X<=K) tX=Er=0,X=K; if(X>=K+28) X=K+28,Kb=1; //高度上下限
        if(m[X][Y]==7) m[X-1][Y]=m[X-2][Y]=1,tX+=8;
        if(m[X][Y]!=1&&m[X][Y]!=8&&m[X][Y]!=9) Blood--,m[X][Y]=1,system("color 4F"),Sleep(50),system("color 0F"),Map(3);
        if(Blood<=0) Win=-1;
        SetPos(X-K,Y),Color(1),cout<<"●";
    }
    void Map(int a)
    {
        SetPos(0,2);cout<<"Blood: "<<Blood<<"  ";
        SetPos(1,2);cout<<"Score: "<<Score<<"  ";
        if(a==3) system("cls");
        for(int i=K+28;i>=K;i--)for(int j=1;j<=20;j++) Cout(i,j,a);
        for(int i=K+33;i>K+28;i--)for(int j=1;j<=20;j++) Cout(i,j,4);
        if(a!=3) Wo();
    }
    void CircleBomb(int x,int y,int s,int ms)
    {
        if(s==ms) return;
        for(int i=x-s;i<=x+s;i++)
        for(int j=y-s;j<=y+s;j++)
        {
            float k=(i-x)*(i-x)+(j-y)*(j-y)-s*s;
            if(k<=s&&k>=-s&&j>0&&j<=20&&m[i+K][j]!=2&&m[i+K][j]!=9) m[i+K][j]=3;
        }Zb++;
        B[Zb].xx=x,B[Zb].yy=y,B[Zb].Zhong=1,B[Zb].rr=s+1,B[Zb].mr=ms;
        Sleep(30);
    }
    void LineBomb(int i,int j)
    {
        for(int k=0;j+k<=20;k++) if(m[i+K][j+k]!=2&&m[i+K][j+k]!=9) m[i+K][j+k]=3;
        for(int k=0;j+k<=20;k++) if(m[i+K+1][j+k]!=2&&m[i+K+1][j+k]!=9) m[i+K+1][j+k]=3;
        for(int k=0;j-k>0;k++) if(m[i+K][j-k]!=2&&m[i+K][j-k]!=9) m[i+K][j-k]=3;
        for(int k=0;j-k>0;k++) if(m[i+K+1][j-k]!=2&&m[i+K+1][j-k]!=9) m[i+K+1][j-k]=3;
    }
    void ZuanBomb(int i,int j)
    {
        int k;
        for(k=0;m[i+K+k][j]!=2&&k<=7;k++) if(m[i+K+k][j]!=9) m[i+K+k][j]=3;
        int k1=rand()%2+2;Zb++;
        B[Zb].xx=i+k,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=k1*3/2;
    }
    void TrigleBomb(int i,int j,int r,int mr)
    {
        if(r==mr) return;
        if(r==1) m[i+K][j]=3,i++;
        for(int k=max(0,j-r);k<=min(20,j+r);k++) if(m[i+K][k]!=2&&m[i+K][k]!=9) m[i+K][k]=3;
        Zb++;B[Zb].xx=i+1,B[Zb].yy=j,B[Zb].Zhong=5,B[Zb].rr=r+1,B[Zb].mr=mr;
    }
    void GunBomb(int i,int j,int r,int mr)
    {
        if(mr<=0) return;Zb++;
        B[Zb].xx=i,B[Zb].yy=j+2,B[Zb].Zhong=6,B[Zb].rr=r,B[Zb].mr=mr-1;Zb++;
        B[Zb].xx=i,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=r-1,B[Zb].mr=r;
    }
    void GunBomb2(int i,int j,int r,int mr)
    {
        if(mr<=0) return;Zb++;
        B[Zb].xx=i,B[Zb].yy=j-2,B[Zb].Zhong=7,B[Zb].rr=r,B[Zb].mr=mr-1;Zb++;
        B[Zb].xx=i,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=r-1,B[Zb].mr=r;
    }
    void ThreeBomb(int x,int y,int s,int ms)
    {
        for(int i=1;i<=3;i++)
        {
            int Xx=rand()%(2*s+1)-s,Yy=rand()%(2*s+1)-s; Zb++;
            B[Zb].xx=Xx+x,B[Zb].yy=Yy+y,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=ms+rand()%3-1;
        }
    }
    void Sheng(int a)
    {
        K++;
        for(int i=1;i<=20;i++)
        {
            int R=rand()%max(80-(K/10),30);int Rr=rand()%200;
            if(R<=3) m[K+28][i]=2;
            else if(R<=6) m[K+28][i]=7;
            else if(R<=9) m[K+28][i]=8;
            if(Rr==0) m[K+28][i]=9;
        }
        if(a!=1) system("cls"),Map(0);
    }
    void Jiao()
    {
        SetPos(0,2);Color(1),cout<<"●",Color(7),cout<<"   ■ ",Color(8),cout<<"   ■ ",Color(4),cout<<"   ●    ",Color(9),cout<<"~ ",Color(0),cout<<"   ",Color(10),cout<<"~ ",Color(3),cout<<"   ◆";
        SetPos(2,2);Color(0),cout<<"你  泥土  石块  炸弹  岩浆  水  宝石";
        SetPos(4,1),cout<<"  ↑           空格放炸弹..."; 
        SetPos(5,1),cout<<"←  →移动 ";
        SetPos(6,1),cout<<"  ↓           可二段跳。";
        SetPos(8,1),cout<<"炸弹种类随机,计时3秒爆炸。";
        SetPos(10,1),cout<<"(一共有7种炸弹,有几率组合一起爆炸)";
        SetPos(12,1),cout<<"岩浆和水有几率向左右扩散...";
        SetPos(14,1),cout<<"它们相融会产生石块。";
        SetPos(16,1),cout<<"岩浆和爆炸波会使你减血...";
        SetPos(18,1),cout<<"岩浆还会使你上跳,宝石可以加血。";
        SetPos(20,1),cout<<"画面每隔一段时间会下降...";
        SetPos(22,1),cout<<"当你抵达画面底部时,画面会随你一起下降...";
        SetPos(24,1),cout<<"当你被抵在画面顶部时,会持续减血。";
        SetPos(26,1),cout<<"每隔一段时间分数会增加...",Color(5),cout<<"500分即可通关!";
        SetPos(28,1);Color(1);cout<<"按 y 开始游戏!";
        char tt;while(tt!='y') tt=_getch();
    }
    void Start()
    {
        Color(5);
        SetPos(2,3);Color(7),cout<<" ■        ",Color(5),cout<<"掘",Color(7),cout<<"    ■■■■ ";
        SetPos(3,3);Color(7),cout<<" ■■     ",Color(5),cout<<" ↓",Color(7),cout<<"    ■■■■ ";
        SetPos(4,3);Color(7),cout<<" ■■■■ ",Color(5),cout<<" ↓",Color(7),cout<<"  ■■■■■ ";
        SetPos(5,3);Color(7),cout<<" ■■■■■",Color(5),cout<<"↓",Color(7),cout<<"  ■■■■■ ";
        SetPos(6,3);Color(7),cout<<" ■■■■■  ■■■",Color(5),cout<<"地",Color(7),cout<<"■■ ";
        SetPos(7,3);Color(7),cout<<" ■■■■■■■■■■■■ ";Color(5);
        SetPos(10,3);cout<<"             ■■■     ■    ";
        SetPos(11,3);cout<<"             ■  ■    ■     ";
        SetPos(12,3);Color(8),cout<<"  ■■■ ",Color(5),cout<<"    ■■■  ■    ■ ";
        SetPos(13,3);Color(8),cout<<"  ■",Color(5),cout<<"矿",Color(8),cout<<"■ ",Color(5),cout<<"    ■  ■ ■■■■■";
        SetPos(14,3);Color(8),cout<<"  ■■■ ",Color(5),cout<<"    ■  ■           ";
        SetPos(15,3);cout<<"             ■■■  ■■■■ ";
        SetPos(16,3);cout<<"             ■  ■  ■    ■ ";
        SetPos(17,3);cout<<"             ■  ■  ■    ■ ";
        SetPos(18,3);cout<<"           ■■  ■  ■■■■ ";
        SetPos(22,2);Color(1);cout<<"按 y 确定!";
        SetPos(22,10);Color(9);cout<<"    开始游戏!    ";
        SetPos(24,10);Color(0);cout<<"    操作攻略!    ";
        SetPos(27,1);Color(3);cout<<"注意!这里 绝对不能是拼音输入法!";
        SetPos(28,5);Color(3);cout<<"↓";Color(0);
        char tt;int Ee=0;
        while(tt!='y')
        {
            tt=_getch();
            if(tt==72&&Ee!=0) Ee--;
            if(tt==80&&Ee!=2) Ee++;
            SetPos(22,10);if(Ee==0) Color(9);else Color(0);cout<<"    开始游戏!    ";
            SetPos(24,10);if(Ee==1) Color(9);else Color(0);cout<<"    操作攻略!    ";
        }system("color 0F");system("cls");Color(0);
        if(Ee==1) Jiao();
    }
    int main()
    {
        system("mode con cols=42 lines=31");
        CONSOLE_CURSOR_INFO cursor_info={1,0};
        SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
        srand((unsigned)time(NULL));
        Start();
        St:system("cls");
        K=-5,T=Win=Score=0;X=Y=2;Blood=20;
        memset(m,0,sizeof(m));memset(B,0,sizeof(B));
        for(int i=5;i<=15;i++) for(int j=1;j<=20;j++) m[i][j]=1;
        for(int i=1;i<=10;i++) Sheng(1);
        Map(0);
        while(Win==0)
        {
            T++;Kb=0;if(Score>=500) Win=1;
            if(GetAsyncKeyState(VK_UP)&0x8000&&tT==0&&Er<2) tT++,tX+=4,Er++;
            if((GetAsyncKeyState(VK_UP)&0x8000)?0:1) tT=0;
            if(GetAsyncKeyState(VK_LEFT)&0x8000&&Y>1&&(m[X][Y-1]==1||m[X][Y-1]==7||m[X][Y-1]==8||m[X][Y-1]==9)&&(tY==0||tY>=2)) SetPos(X-K,Y),cout<<"  ",Y--;
            if(GetAsyncKeyState(VK_RIGHT)&0x8000&&Y<20&&(m[X][Y+1]==1||m[X][Y+1]==7||m[X][Y+1]==8||m[X][Y+1]==9)&&(tY2==0||tY2>=2)) SetPos(X-K,Y),cout<<"  ",Y++;
            if((GetAsyncKeyState(VK_LEFT)&0x8000)?0:1) tY=0;if((GetAsyncKeyState(VK_RIGHT)&0x8000)?0:1) tY2=0;
            if((GetAsyncKeyState(VK_LEFT)&0x8000)?1:0) tY++;if((GetAsyncKeyState(VK_RIGHT)&0x8000)?1:0) tY2++;
            if(kbhit()) {char e=_getch();if(e==' '&&m[X-1][Y]!=0&&m[X-1][Y]!=2&&(m[X+1][Y]<=10||m[X+1][Y]>=31)&&Kb==0) m[X][Y]=10,X--;}
            int zb=Zb;
            for(int i=zb-10;i<=zb;i++)
            {
                if(B[i].Zhong==1) CircleBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;
                if(B[i].Zhong==2) LineBomb(B[i].xx,B[i].yy),B[i].Zhong=0;
                if(B[i].Zhong==3) ThreeBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;
                if(B[i].Zhong==4) ZuanBomb(B[i].xx,B[i].yy),B[i].Zhong=0;
                if(B[i].Zhong==5) TrigleBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;
                if(B[i].Zhong==6) GunBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;
                if(B[i].Zhong==7) GunBomb2(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;
            }
            Map(1);Sleep(40);
            if(T%max(10,40-Score/16)==0||Kb>=1) Sheng(0);
            if(T%20==0) Score++;
        }
        if(Win!=0)
        {
            if(Win>0) {system("color 6E"),Color(3);SetPos(0,2);cout<<"You! Win!!!",Sleep(1000);}
            if(Win<0) {system("color 7F"),Color(4);SetPos(0,2);cout<<"You! Die!!!",Sleep(1000);}
            SetPos(1,2);cout<<"Please point 'y' to Play AGain.";
            A:char e=_getch();if(e!='y') goto A;goto St;
        }
    }
    

    狼人杀

    #include<bits/stdc++.h>
    #include<windows.h>
    #include<conio.h>
    using namespace std;
    const int daytime=0,night=1;
    int day=0, during_time=daytime, player_number, my_number;
    HWND hwnd=GetForegroundWindow();
    const int blue=0,yellow=1,red=2,green=3,purple=4,white=5;//颜色常量 
    void color(int c){
    	switch(c){
    		case red:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);break;
    		case green:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);break;
    		case yellow:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN);break;
    		case blue:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);break;
    		case white:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_GREEN | FOREGROUND_BLUE);break;
    		case purple:SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |FOREGROUND_BLUE);break;
    	}
    }
    int idx_police=-1;
    void gotoxy(int x,int y){
    	COORD position;
    	position.X=x;
    	position.Y=y;
    	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), position);
    }
    void init_Show_Window(){
    	system("mode con lines=60 cols=188"); 
    	ShowWindow(hwnd,SW_MAXIMIZE);//窗口最大化 
    	DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND);
    	DrawMenuBar(GetConsoleWindow());//删除×字符 
    }
     
    /*玩家类*/
    const int nvwu=0,cunmin=1,yuyanjia=2,langren=3,lieren=4,shouwei=5,good=6,die=1,life=2;
    class player{
    public:
    	int type;
    	int die_or_life;
    	int how(){
    		return die_or_life;
    	}
    	int is_light;//是否已经公布 
    	int killer;
    };
    player players[1000];
     
    /*转换白天模式*/ 
    void change_daytime(){
    	during_time=daytime;
    	day++;
    }
     
    /*转换黑夜模式*/
    void change_night(){
    	during_time=night;
    }
    int nnvwu=0,ncunmin=0,nyuyanjia=0,nlangren=0,nlieren=0,nshouwei=0;
    int idxnvwu,idxshouwei,idxyuyanjia,idxlieren,idxlangren[4]={-1,-1,-1,-1};
     
    /*b是否在Arr中*/
    bool is_include(int arr[],int b,int l){
    	for(int i=0;i<l;i++){
    		if(arr[i]==b)
    			return true;
    	}
    	return false;
    }
     
    /*初始化人数*/
    void init_players(){
    	my_number=rand()%player_number;
    	if(player_number==12) nlangren=4;
    	else if(player_number>=10) nlangren=3;
    	else nlangren=2;
    	for(int i=0;i<player_number;i++)
    	{
    		players[i].die_or_life=life;
    		players[i].is_light=0;
    		players[i].type=-1;
    		players[i].killer=2147483647;
    	}
    	for(int i=0;i<nlangren;i++)
    	{
    		int p=rand()%player_number;
    		if(!is_include(idxlangren,p,4))
    			idxlangren[i]=p,players[p].type=langren;
    		else
    			i--;
    		Sleep(rand()%80+100);
    	}
    	if(player_number==12)
    	{
    		do{
    			idxshouwei=rand()%player_number;
    		}while(players[idxshouwei].type!=-1);   
    		players[idxshouwei].type=shouwei;   
    	}
    	do{
    		idxnvwu=rand()%player_number;
    	}while(players[idxnvwu].type!=-1);
    	players[idxnvwu].type=nvwu;
    	if(player_number>=10)
    	{
    		do{
    			idxlieren=rand()%player_number;
    		}while(players[idxlieren].type!=-1);
    		players[idxlieren].type=lieren;   
    	}
    	do{
    		idxyuyanjia=rand()%player_number;
    	}while(players[idxyuyanjia].type!=-1);
    	players[idxyuyanjia].type=yuyanjia;
    	for(int i=0;i<player_number;i++)
    		if(players[i].type==-1)
    			players[i].type=cunmin,
    			ncunmin++;
    	if(players[my_number].type==langren)
    	{
    		for(int i=0;i<nlangren;i++)
    		{
    			players[idxlangren[i]].is_light=1;
    		}
    	}
    	players[my_number].is_light=1;
    }
     
    /*在屏幕上打印东西*/
    void print(){
    	gotoxy(0,0);
    	cout<<"作者:洛谷393864";
    	gotoxy(90,0);
    	if(during_time==night)
    		color(red);
    	else
    		color(blue);
    	printf("第%d天 | ",day);
    	if(during_time==night) cout<<"黑夜";
    	else cout<<"白天";
    	
    	gotoxy(0,3);
    	color(blue);
    	cout<<" 我的号位:"<<my_number+1;
    	for(int i=0;i<player_number;i++){
    		gotoxy(i*8+1,4);
    		if(i==idx_police) color(yellow);
    		else color(blue);
    		cout<<i+1<<"号位"; 
    		gotoxy(i*8+1,5);
    		if(players[i].how()==die){
    			color(red);
    			cout<<"死 亡";
    		}else{
    			color(green);
    			cout<<"存 活";
    		}
    		gotoxy(i*8+1,6);
    		color(blue);
    		if(players[i].is_light){
    			if(players[i].is_light==1){
    				switch(players[i].type){
    					case nvwu: cout<<"女 巫";break;
    					case yuyanjia: cout<<"\b预言家";break;
    					case cunmin: cout<<"村 民";break;
    					case langren:cout<<"狼 人"; break;
    					case lieren:cout<<"猎 人"; break; 
    					case shouwei:cout<<"守 卫"; break;
    				}   
    			}else{
    				cout<<"好人";
    			}
    			
    		}else{
    			cout<<"未知";
    		}
    	}
    	
    } 
     
    /*判断是否结束,没结束返回0  好人胜利返回1  狼人胜利返回2   平局返回3*/
    int is_end(){
    	int die_bad=0;
    	int die_people=0;
    	int die_god=0;
    	for(int i=0;i<player_number;i++){
    		if((players[i].type == nvwu || players[i].type == yuyanjia || players[i].type == shouwei)&&players[i].die_or_life==die)
    			die_god++;
    		else if(players[i].type == langren && players[i].die_or_life==die)
    			die_bad++;
    		else if(players[i].type == cunmin && players[i].die_or_life==die)
    			die_people++;
    	}
    	if((die_bad==die_people || die_bad==die_god)&&(die_bad>=nlangren))
    		return 3;
    	if(die_bad>=nlangren)
    		return 1;
    	if(die_people>=ncunmin||die_god>=(player_number>=10 ? 3:2))
    		return 2;
    	return 0;
    }
     
    /*游戏开始前的骚操作*/
    void before_game(){
    	srand(time(NULL));
    	init_Show_Window();
    	color(green);
    	cout<<"欢迎来到狼人杀游戏\t\t\t为了更好的游戏体验,请右键点击上方↑↑,点击\"属性\",点击\"字体\"栏目,将字体修改为宋体或新宋体,将字号改为20\n作者:洛谷393864\n请勿私自转载,违者依法追究法律责任  注:10 11 12人局开设猎人  12人局开设守卫警长\n______________________\n";
    	cout<<"请输入玩家人数(8-12人):";
    	cin>>player_number;
    	while(player_number<8||player_number>12)
    	{ cout<<"请重新输入!\n"; cin>>player_number; }
    	system("cls");
    	cout<<"初始化身份中,请稍等.";
    	for(int i=0;i<6;i++){
    		for(int j=0;j<12;j++){
    			cout<<".";
    			Sleep(50);
    		}   
    		cout<<"\b\b\b\b\b\b\b\b\b\b\b\b            \b\b\b\b\b\b\b\b\b\b\b\b";
    	}
    	system("cls");
    	
    	init_players();
    	cout<<"我的号位:"<<my_number+1<<endl
    	<<"我的身份:";
    	switch(players[my_number].type){
    		case nvwu: cout<<"女巫\n";break;
    		case yuyanjia: cout<<"预言家\n";break;
    		case cunmin: cout<<"村民\n";break;
    		case langren:cout<<"狼人\n";break;  
    		case lieren:cout<<"猎人\n"; break;  
    		case shouwei:cout<<"守卫\n";break;
    	}
    	change_daytime();
    	system("pause");
    	system("cls");
    	cout<<"游戏加载中.";int ppppp=rand()%3+2;
    	for(int i=0;i<ppppp;i++){
    		for(int j=0;j<6;j++){
    			cout<<".";
    			Sleep(rand()%100+150);
    		}   
    		cout<<"\b\b\b\b\b\b      \b\b\b\b\b\b";
    	}   
    	print();
    } 
     
    /*每一天开始前的操作*/
    void something_before_everyday(){
    	change_night();
    	system("cls");
    	print();
    	gotoxy(0,7);
    	cout<<"________________________";
    	gotoxy(0,8);
    	color(white);
    	cout<<"天黑~请闭眼~~~\n";
    }
     
    /*守卫操作*/
    int shouweishou=0;
    int ShouWei(){
    	color(blue);
    	cout<<"守卫~请睁眼~~\n";
    	Sleep(1500);
    	cout<<"你要守护的是?\n";
    	if(players[my_number].type==shouwei&&players[my_number].die_or_life == life){
    		cin>>shouweishou;
    		while(!(shouweishou>=1&&shouweishou<=player_number&&players[shouweishou-1].die_or_life == life)){
    			cout<<"请重新输入!\n";
    			cin>>shouweishou;
    		}
    		cout<<"你今晚要守护的是"<<shouweishou<<"号\n";
    		Sleep(1500); 
    		shouweishou--;
    	}else{
    		if(players[idxshouwei].die_or_life == life){
    			shouweishou=rand()%10;
    			while(!(shouweishou>=1&&shouweishou<=player_number&&players[shouweishou-1].die_or_life == life)){
    				shouweishou=rand()%10;
    			}
    		}
    	}   
    	Sleep(2000);
    	cout<<"守卫请闭眼"<<endl<<endl;
    	return shouweishou;
    } 
     
    /*狼人操作*/
    int LangRen(){
    	int langrensha=-1;
    	color(red);
    	cout<<"狼人~请睁眼~~~\n";
    	Sleep(1500);
    	cout<<"你们今晚要杀~谁~~??\n";
    	if(players[my_number].type==langren&&players[my_number].die_or_life == life){
    		cin>>langrensha;
    		while(!(langrensha>=1&&langrensha<=player_number&&players[langrensha-1].die_or_life==life)){
    			cout<<"请重新输入!\n";
    			cin>>langrensha;
    		}
    		cout<<"你们今晚要杀的是"<<langrensha--<<"号\n";
    		Sleep(3500);
    	}else{
    		while(langrensha==-1 || players[langrensha].die_or_life == die || players[langrensha].type==langren){
    			langrensha=rand()%player_number;
    		}
    		Sleep(3000);
    	}
    	cout<<"狼人请~闭眼~~\n\n";
    	return langrensha;
    }
     
    /*女巫操作*/
    int nvwujiu=0,nvwudu=0,is_nvwujiu=0,is_nvwudu=0;
    int NvWu(int langrensha){
    	color(purple);
    	cout<<"女巫~~请睁眼~~\n";
    	Sleep(2000);
    	if(players[my_number].type==nvwu&&players[my_number].die_or_life == life){
    		if(is_nvwujiu) 
    			cout<<"你已经用过解药\n",Sleep(1500);
    		else
    		{
    			cout<<"今晚"<<langrensha+1<<"号死了,你想用解药吗?(1想 / 2不想)\n";
    			int is_nvwujie=0;
    			cin>>is_nvwujie;
    			while(is_nvwujie!=1&&is_nvwujie!=2){
    				cout<<"请重新输入\n";
    				cin>>is_nvwujie;
    			} 
    			if(is_nvwujie==1) {
    				Sleep(1000);
    				cout<<"已经解救"<<langrensha+1<<"号\n";
    				nvwujiu=langrensha;
    			}
    			is_nvwujiu=1;
    		}
    		Sleep(1500);
    		if(::is_nvwudu) cout<<"你已经用过解药\n",Sleep(1500);
    		else
    		{
    			cout<<"你想用毒药吗?(1想 / 2不想)\n";
    			Sleep(1500);
    			int is_nvwudu=0;
    			cin>>is_nvwudu;
    			while(is_nvwudu!=1&&is_nvwudu!=2){
    				cout<<"请重新输入\n";
    				cin>>is_nvwudu;
    			}   
    			if(is_nvwudu==1){
    				Sleep(1500);
    				cout<<"你想毒谁?\n"; 
    				cin>>nvwudu;
    				while(!(nvwudu>=1&&nvwudu<=player_number&&players[nvwudu].die_or_life==life)){
    					cout<<"请重新输入\n";
    					cin>>nvwudu; 
    				}
    				nvwudu--;
    				Sleep(1500);
    				cout<<"已经毒死了"<<nvwudu+1<<"号\n";
    			}
    			::is_nvwudu=1;
    		}   
    	}else{
    		if(players[idxnvwu].die_or_life == life){
    			if(!is_nvwujiu)
    			{
    				int is_jiu=rand()%8;
    				if(is_jiu==0){
    					nvwujiu=langrensha;
    					is_nvwujiu=1;
    				}   
    			}
    			if(!is_nvwudu)
    			{
    				int is_du=rand()%4;
    				if(is_du==0){
    					int num=rand()%player_number;
    					nvwudu=num;
    					is_nvwudu=1;
    				}
    			}
    		}
    		
    	} 
    	cout<<"女巫~请闭眼~~\n\n";
    	return nvwujiu*10000+nvwudu;//传回两个变量,“加密”操作 
    }
     
    int yuyanjiabixutoupiao=-1;
    /*预言家操作*/
    void YuYanJia(){
    	color(green);
    	cout<<"预言家~请睁眼~~\n";
    	Sleep(2000);
    	if(players[my_number].type==yuyanjia&&players[my_number].die_or_life == life){
    		cout<<"请问你想查验谁的身份\n";
    		int p;
    		cin>>p;
    		while(!(p>=1&&p<=player_number)){
    			cout<<"请重新输入!\n";
    			cin>>p;
    		}
    		Sleep(2000);
    		cout<<p<<"号的身份是——";
    		Sleep(1000);
    		if(players[p-1].type == langren){
    			cout<<"狼人\n";
    			players[p-1].is_light = 1;
    		}else{
    			cout<<"好人\n";
    			players[p-1].is_light = 2;
    		}
    	}else{
    		int p=-1;
    		while(p==-1||players[p].die_or_life==die||p==idxlieren)
    			p=rand()%player_number;
    		if(players[p].type==langren)//锁定目标! 
    		{
    			yuyanjiabixutoupiao=p;
    		}
    	}
    	cout<<"预言家~~请闭眼~~\n";
    }
     
    /*黑夜操作*/
    int LANGRENSHA=-1,NVWUDU=-1,NVWUJIU=-1,SHOUWEISHOU=-1; 
    void Night(){   
    	LANGRENSHA=-1,NVWUDU=-1,NVWUJIU=-1,SHOUWEISHOU=-1; 
    	
    	//如果有12人局,添加守卫 
    	if(player_number==12){
    		SHOUWEISHOU=ShouWei();
    		Sleep(2000);
    	} 
    	/*狼人部分*/
    	LANGRENSHA=LangRen();
    	Sleep(3500);
    	/*女巫部分*/ 
    	int nvwu=NvWu(LANGRENSHA);
    	NVWUDU=nvwu%10+nvwu/10%10;
    	NVWUJIU=nvwu/10000%10+nvwu/100000%10;
    	Sleep(3000);
    	/*预言家部分*/
    	YuYanJia();
    	Sleep(2000);
    }
     
    /*猎人操作*/
    void Lieren(){
    	int lierendai=-1;
    	cout<<idxlieren+1<<"号是猎人\n";
    	
    	players[idxlieren].is_light = 1;
    	Sleep(1000);
    	if(idxlieren==my_number){
    		cout<<"你想带走几号?\n";
    		cin>>lierendai;
    		while(lierendai<1||lierendai>player_number||players[lierendai].die_or_life==die){
    			cout<<"请重新输入!\n";
    			cin>>lierendai;
    		}
    		lierendai--;
    	}else{
    		lierendai=rand()%player_number;
    		while(players[lierendai].die_or_life == die){
    			lierendai=rand()%player_number;
    		}
    	}
    	Sleep(2000);
    	cout<<"猎人选择带走"<<lierendai+1<<"号\n";
    	Sleep(2000);
    	players[lierendai].die_or_life = die;
    }
     
    void police_die();
    /*判断谁死了*/
    void panduansiwang(){
    	system("cls");
    	print(); 
    	gotoxy(0,7);
    	cout<<"________________________\n";
    	Sleep(3000);
    	color(white);
    	cout<<"天亮了\n";
    	Sleep(2000);
    	gotoxy(0,9);
    	cout<<"昨晚";
    	bool is_die[15]={false},is_die_lieren=false,flag=false;
    	for(int i=0;i<player_number;i++)
    	{
    		if(players[i].die_or_life==life)
    		{
    			if(i==LANGRENSHA||i==NVWUDU) {
    				if(players[i].type==lieren) is_die_lieren=true;
    				players[i].killer= (i==LANGRENSHA ? langren:nvwu);
    				players[i].die_or_life=die;
    				is_die[i]=true;
    			}
    			if(i==SHOUWEISHOU||i==NVWUJIU) {
    				if(players[i].type==lieren) is_die_lieren=false;
    				players[i].killer=-1;
    				players[i].die_or_life=life;
    				is_die[i]=false;
    			}   
    		}
    	}
    	bool is_police_die=false;
    	for(int i=0;i<player_number;i++)
    	{
    		if(is_die[i])
    		{
    			if(flag) cout<<"和"<<i+1<<"号";
    			else cout<<i+1<<"号",flag=true;
    			if(i==idx_police) 
    				is_police_die=true;
    		}
    	}
    	if(flag) cout<<"死了\n";
    	else cout<<"是平安夜\n";
    	
    	if(is_die_lieren) Lieren();
    	if(is_police_die) police_die();
    }
     
    /*选警长*/
    void choose_police(){
    	system("cls");
    	print();
    	color(blue);
    	gotoxy(0,7);
    	cout<<"________________________\n";
    	color(yellow);
    	cout<<"下面开始选举警长,各位不能选举自己~\n";
    	int tong[100]={0},cannot[100],must[100]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    	memset(cannot,-1,sizeof(cannot));
    	CHOOSE:
    	color(yellow);
    	Sleep(1500);
    	for(int i=0;i<player_number;i++)
    	{
    		if(players[i].die_or_life==life&&!is_include(cannot,i,player_number))
    		{
    			if(i==my_number)
    			{
    				cout<<"你要选举几号?\n";
    				int n;
    				cin>>n;
    				while(n<1||n>player_number||n==i+1||players[n-1].die_or_life==die||!is_include(must,n-1,player_number))
    				{
    					cout<<"请重新输入!\n";
    					cin>>n;
    				}
    				cout<<i+1<<"号选举"<<n--<<"号\n";
    				tong[n]++;
    			}
    			else
    			{
    				int n=rand()%player_number;
    				while(n==i||players[n].die_or_life==die||!is_include(must,n,player_number))
    					n=rand()%player_number;
    				cout<<i+1<<"号选举"<<n+1<<"号\n";
    				tong[n]++;
    			}
    			Sleep(1500);
    		}
    	}
    	int idx_max=-1,maxn=-1,len=0;
    	for(int i=0;i<player_number;i++)
    		if(maxn<tong[i])
    		{
    			maxn=tong[i];
    			idx_max=i;
    		}
    	int maxn_arr[15]={0};
    	for(int i=0;i<player_number;i++)
    	{
    		if(tong[i]==maxn)
    		{
    			maxn_arr[len++]=i;
    		}
    	}
    	color(blue);
    	if(len>1)
    	{
    		for(int i=0;i<len;i++)
    		{
    			if(i==len-1)
    			{
    				cout<<maxn_arr[i]+1<<"号平票\n"; 
    			}
    			else
    			{
    				cout<<maxn_arr[i]+1<<"号,";
    			}
    		}
    		for(int i=0;i<len;i++)
    			cannot[i]=maxn_arr[i];
    		for(int i=0;i<player_number;i++)
    		{
    			if(is_include(cannot,i,len))
    				must[i]=i;
    			else
    				must[i]=-1;
    		}
    		color(white);
    		goto CHOOSE;
    	}
    	cout<<"恭喜"<<idx_max+1<<"号当选警长\n";
    	Sleep(3000);
    	idx_police=idx_max;
    	return;
    }
     
    /*投票*/
    int toupiao(){
    	int tong[100]={0},cannot[100]={},must[100]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; 
    	memset(cannot,-1,sizeof(cannot));
    	gotoxy(0,7);
    	color(blue);
    	cout<<"________________________\n";
    	color(white);
    	cout<<"下面进入投票环节\n";
    	memset(tong,0,sizeof(tong));
    	Sleep(2000);
    	TOUPIAO:
    	for(int i=0;i<player_number;i++){
    		if(players[i].die_or_life == life&&!is_include(cannot,i,player_number)){
    			if(i==my_number){
    				color(white);
    				cout<<"你要投几号?\n";
    				int n;
    				cin>>n;
    				while(!(n>=1&&n<=player_number&&is_include(must,n-1,player_number))){
    					cout<<"请重新输入!\n";
    					cin>>n;
    				}
    				Sleep(2000);
    				cout<<setw(2)<<my_number+1<<"号投了"<<setw(2)<<n<<"号";
    				if(my_number==n-1) color(red),cout<<"快来看!这有个疯子投自己!"; 
    				if(i==idx_police) color(yellow),cout<<"(警长)\n"; else cout<<"\n";
    				if(i==idx_police) tong[n-1]++;
    				tong[n-1]++;
    			}else{
    				color(white);
    				int t=-1;
    				while(t==-1 || players[t].die_or_life == die || t==i || !is_include(must,t,player_number)){
    					if(i==idxyuyanjia&&yuyanjiabixutoupiao!=-1)
    					{
    						t=yuyanjiabixutoupiao;
    						yuyanjiabixutoupiao=-1;
    						continue;
    					}
    					t=rand()%player_number;
    					if(is_include(idxlangren,i,nlangren))
    					{
    						if(players[t].type == langren)
    							t=-1;
    					}
    				}
    				cout<<setw(2)<<i+1<<"号"<<"投了"<<setw(2)<<t+1<<"号";
    				if(i==idx_police) cout<<"(警长2票)\n"; else cout<<"\n";
    				if(i==idx_police) tong[t]++;
    				tong[t]++;  
    			}
    			
    			Sleep(rand()%1000+1000);
    		}
    	}
    	int idx_max=-1,maxn=-1,len=0;
    	for(int i=0;i<player_number;i++)
    		if(maxn<tong[i])
    		{
    			maxn=tong[i];
    			idx_max=i;
    		}
    	int maxn_arr[15]={0};
    	for(int i=0;i<player_number;i++)
    	{
    		if(tong[i]==maxn)
    		{
    			maxn_arr[len++]=i;
    		}
    	}
    	color(blue);
    	if(len>1)
    	{
    		for(int i=0;i<len;i++)
    		{
    			if(i==len-1)
    			{
    				cout<<maxn_arr[i]+1<<"号平票\n"; 
    			}
    			else
    			{
    				cout<<maxn_arr[i]+1<<"号,";
    			}
    		}
    		for(int i=0;i<len;i++)
    			cannot[i]=maxn_arr[i];
    		for(int i=0;i<player_number;i++)
    		{
    			if(is_include(cannot,i,len))
    				must[i]=i;
    			else
    				must[i]=-1;
    		}
    		color(white);
    		goto TOUPIAO;
    		
    	}
    	
    	cout<<idx_max+1<<"号"<<"出局\n";
    	Sleep(4000);
    	players[idx_max].die_or_life = die;
    	players[idx_max].killer = good;
    	return idx_max;
    }
     
    /*警长死亡*/
    void police_die(){
    	color(yellow);
    	int type;
    	if(idx_police==my_number)
    	{
    		Sleep(1550);
    		cout<<"你是想撕毁警徽还是移交警徽?(撕毁输入1,移交输入2)";
    		
    		cin>>type;
    		while(!(type==1||type==2))
    		{
    			cout<<"请重新输入!\n";
    			cin>>type;
    		}
    	}
    	else{
    		type=rand()%3+1;
    	}
    	if(type==1)
    	{
    		cout<<"警长选择撕毁警徽\n";
    		Sleep(1000);
    		idx_police=-1;
    	}
    	else
    	{
    		int lucky=-1;
    		while(lucky==-1||players[lucky].die_or_life==die)
    			lucky=rand()%player_number;
    		cout<<"警长选择把警徽移交给"<<lucky+1<<"号\n";
    		Sleep(1500);
    		idx_police=lucky; 
    	}
    }
     
    /*故事的最后*/
    void the_end(){
    	system("cls");
    	switch(is_end()){
    		case 1:cout<<"好人胜利\n\n"; break;
    		case 2:cout<<"狼人胜利\n\n"; break;
    		case 3:cout<<"本局平局\n\n"; break;
    	}
    	for(int i=0;i<player_number;i++){
    		cout<<i+1<<"号位:\t";
    		switch(players[i].type){
    			case nvwu: cout<<"女巫\t";break;
    			case yuyanjia: cout<<"预言家\t";break;
    			case cunmin: cout<<"村民\t";break;
    			case langren:cout<<"狼人\t";break;
    			case lieren:cout<<"猎人\t"; break;  
    			case shouwei:cout<<"守卫\t";break;  
    		} 
    		cout<<"最终";
    		switch(players[i].killer){
    			case nvwu:cout<<"被女巫毒死\n"; break;
    			case langren:cout<<"被狼人杀死\n"; break;
    			case good:cout<<"被投票出局\n"; break;
    			case lieren:cout<<"被猎人带走\n";break;
    			default :cout<<"存活\n";
    		}
    		cout<<endl;
    	}
    }
     
    /*主函数*/
    int main(){
    	int wheel=0; 
    	before_game();
    	while(!is_end()){
    		//黑夜准备 
    		something_before_everyday();
    		Sleep(1500); 
    		
    		//黑夜部分 
    		Night(); //进入黑夜! 
    		change_daytime(); //换天 
    		
    		//天亮了 
    		panduansiwang();//判断谁死了 
    		Sleep(2000);
    		system("cls");
    		print();
    		if(is_end()) break;
    		
    		//选警长 
    		if(!wheel&&player_number==12)
    		{
    			choose_police();
    			system("cls");
    			print();
    		}
    		
    		//投票环节 
    		int idx_max=toupiao();//票数最多的人 
    		if(idx_max==idx_police){
    			police_die();
    		}
    		if(players[idx_max].type==lieren){//启动猎人程序 
    			Lieren();
    			if(is_end()) break;
    		}
    		system("cls");
    		print(); 
    		wheel++;
    	}
    	
    	the_end();
    	system("pause");
    	return 0;
    }
    
    #include<bits/stdc++.h>
    using namespace std;
    struct t{
    	string name;
    	int a,b,c,all;
    };
    int main(){
    	t a[1005];
    	int n,maxx=-1;
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i].name>>a[i].a>>a[i].b>>a[i].c;
    		a[i].all+=a[i].a+a[i].b+a[i].b;
    		maxx=max(a[i].all,maxx);
    	}
    	for(int i=1;i<=n;i++){
    		if(a[i].all==maxx){
    			cout<<a[i].name<<' '<<a[i].a<<' '<<a[i].b<<' '<<a[i].b;
    			return 0;
    		}
    	}
    	return 0;
    }
    最厉害的学生
    

    y1116

    #include<bits/stdc++.h>
    using namespace std;
    char a[200][200];;
    int main(){
    	int n,m;
    	cin>>n>>M;
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++) cin>>a[i][j];
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=m;j++){
    			if(a[i][j]=='*'){
    				cout<<
    			}
    			else{
    				int count=0;
    				if(a[i-1][j-1]=='*') count++;
    			}
    			
    			if()
    		}
    	}
    }
    //扫雷游戏半成品
    
    
  • 通过的题目

  • 最近活动

  • 最近编写的题解

    This person is lazy and didn't write any solutions.

题目标签

语言入门
29
模拟
15
循环结构
13
字符串
12
计算几何
9
顺序结构
9
分支结构
8
排序
8
搜索
5
初级班期中考
5
数学
4
结构体
4
其他
3
while循环
3
素数判断
2
质数
2
筛法
2
数组
2
枚举
2
深搜
2