• 个人简介

    投球:396分qrz一辈子 有多远滚多远记录:2014米

    豌豆黄father在此

    ZMF真正性别:

    QRZ爆0了!!!

    豌豆黄

    合苏!!!!!!

    亲眼见证永恒的诞生

    (截图截错了,北京时间7:37 花瓣:基本)

    稀溜!~

    小干货:

    干货1——改c++11及以上

    打开c++ →→ 打开工具(上面) →→ 编译选项 →→ 勾选“编译时加入以下参数” →→ 写上:-std=c++11

    干货2——把c++运行窗口变成终端

    有时候在运行后,运行窗口在显示一些特殊字符如:□ 时会发现它和其他标准字符大小不一样或字符不兼容,在运行一些大内存或动画时会出现帧率低或卡顿——看看左上角是不是一个白色框框中间一些东西——这就是控制台。为了解决以上问题,可以将运行窗口变为终端(就是那个黑黑的):

    以下为方法:

    Win(左下角那4个方块)+i →→ 搜索“开发者设置” →→ 往下滑找到“选择用于托管命令行应用程序的用户界面的默认终端应用” →→ 改为终端

    —————————————————————————————————————————————(华丽分割线)

    c++重要排序以及定义(本人、@、@):

    1.猴子排序(随机打乱数组)
    
    #include<bits/stdc++.h>
    using namespace std;
    long long n,a[100],cnt;
    bool check(){
    	for(int i=2;i<=n;i++){
    		if(a[i]<a[i-1])return 0;
    	}
    	return 1;
    }
    void swap_sort(){
    	srand(time(0));
    	while(!check()){
    		int x=rand()%n+1,y=rand()%n+1;
    		swap(a[x],a[y]);
    	}
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	swap_sort();
    	for(int i=1;i<=n;i++){
    		cout<<a[i]<<' ';
    	}
    }
    
    2.斯大林排序(删除逆序元素)
    
    #include<bits/stdc++.h>
    using namespace std;
    int n,a[100000];
    deque<int>dq;
    void sdl_sort(){
    	for(int i=1;i<=n;i++){
    		if(dq.empty()||a[i]>dq.back())dq.push_back(a[i]);
    	}
    	for(int i=0;i<dq.size();i++)cout<<dq[i]<<' ';
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++)cin>>a[i];
    	sdl_sort();
    }
    
    
    3.睡眠排序(对每个元素建立多线程)
    
    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    int n,a[100000];
    deque<thread>dq;
    void thread_sort(int a){
    	Sleep(a*10);
    	cout<<a<<' ';
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		dq.emplace_back(thread_sort,a[i]);
    	}
    	for(int i=0;i<dq.size();i++)dq[i].join();
    }
    
    
    4.奇迹排序(什么都不做,等待奇迹发生)
    
    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    int main(){
    	long long n;
    	cin>>n;
    	long long a[n];
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	int j=0;
    	while(1){
    		cout<<"等待奇迹发生中";
    		cout<<'.';Sleep(45);
    		cout<<'.';Sleep(45);
    		cout<<'.';Sleep(45);
    		system("cls");	
    	}
    }
    
    
    5.慈禧排序(如果逆序,将前面1个元素减少x,后面1个元素增加x)
    
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[1000000];
    bool check(){
    	for(int i=1;i<n;i++){
    		if(a[i-1]>a[i])return 0;
    	}
    	return 1;
    }
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	while(!check()){
    		for(int i=1;i<n;i++){
    			if(a[i-1]>a[i]){
    				int o=rand()%a[i-1];
    				a[i-1]-=o;
    				a[i]+=o;
    			}
    		}	
    	}
    	for(int i=0;i<n;i++){
    		cout<<a[i]<<' ';
    	}
    }
    
    6.特朗普排序(cout<<"排完了";)
    
    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    int main(){
    	long long n;
    	cin>>n;
    	long long a[n];
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	cout<<"排完了";
    	return 0;
    }
    
    
    7.灭霸排序(如果当前排序未完成,随机删除一半元素)
    
    #include<bits/stdc++.h>
    using namespace std;
    int n,cnt,x;
    vector<int>a;
    bool check(){
    	for(int i=1;i<=a.size();i++){
    		if(a[i]<a[i-1])return 0;
    	}
    	return 1;
    }
    void mb_sort(){
    	while(!check()){
    		int x=a.size()/2;
    		for(int i=1;i<=x;i++)a.erase(a.begin()+rand()%a.size());
    		cout<<"当前保留:";
    		for(int i=0;i<a.size();i++)cout<<a[i]<<' ';
    		cout<<endl;
    		cnt++;
    	}
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>x;
    		a.push_back(x);
    	}
    	mb_sort();
    	cout<<"次数:"<<cnt;
    }
    
    8.急速排序(人人平等)
    
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[1000000];
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	for(int i=0;i<n;i++){
    		cout<<0<<" ";
    	}
    }
    
    
    9.手动排序(你我皆是上帝)
    
    #include <bits/stdc++.h>
    #include <windows.h>
    using namespace std;
    int n,a[1000000];
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	cout<<endl<<"接着请输入正确顺序:";
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	cout<<"\n根据输入排序中.......\n";
    	Sleep(1000);
    	cout<<endl<<"排序完成!!!\n";
    	for(int i=0;i<n;i++){
    		cout<<a[i]<<' ';
    	}
    }
    
    
    10.牙膏排序(慢慢往外挤)
    
    #include <bits/stdc++.h>
    #include <windows.h>
    using namespace std;
    int n,a[1000000];
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	sort(a,a+n);
    	for(int i=0;i<n;i++){
    		cout<<a[i]<<' ';
    		Sleep(1000);
    	}
    }
    
    11.黑猩猩排序(你的肤色有点黑)
    
    #include <bits/stdc++.h>
    #include <windows.h>
    using namespace std;
    int n,a[1000000];
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	sort(a,a+n);
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsole, 0);
    	for(int i=0;i<n;i++){
    		cout<<a[i]<<' ';
    	}
    }
    
    12.豆使排序(有一位来自异国的使者会帮助你)
    
    #include <bits/stdc++.h>
    #include <windows.h>
    using namespace std;
    int n,a[1000000];
    int main(){
    	srand(time(NULL));
    	cin>>n;
    	for(int i=0;i<n;i++){
    		cin>>a[i];
    	}
    	system("start www.doubao.com"); 
    }
    
    13.太平天国排序(全部取平均值)
    
    #include<iostream>
    
    using std::cin;
    using std::cout;
    
    long long n;
    long long a[400005];
    
    void taiping_sort(long long arr[], long long len)
    {
    	long long sum = 0;
    
    	for(long long i = 0; i < len; i++)
    	{
    		sum += arr[i];
    	}
    
    	long long avg = sum / len;
    	long long remainder = sum % len;
    
    	for(long long i = 0; i < len; i++)
    	{
    		if(i < remainder)
    		{
    			arr[i] = avg + 1;
    		}
    		else
    		{
    			arr[i] = avg;
    		}
    	}
    }
    
    signed main()
    {
    	cin >> n;
    
    	for(long long i = 0; i < n; i++)
    	{
    		cin >> a[i];
    	}
    
    	taiping_sort(a, n);
    
    	for(long long i = 0; i < n; i++)
    	{
    		cout << a[i] << " ";
    	}
    }
    
    
    14.大yue排序
    
    #include<iostream>
    
    using std::cin;
    using std::cout;
    
    int a[1000005];
    
    int n;
    
    void big_jump(int arr[], int len)
    {
    	int sum = 0;
    
    	for(int i = 1; i <= len; i++)
    	{
    		int num = arr[i];
    
    		arr[i] += sum;
    
    		sum += num;
    	}
    }
    
    signed main()
    {
    	cin >> n;
    
    	for(int i = 1; i <= n; i++)
    	{
    		cin >> a[i];
    	}
    
    	big_jump(a, n);
    
    	for(int i = 1; i <= n; i++)
    	{
    		cout << a[i] << " ";
    	}
    }
    
    
    

    好玩的(两大网页经典游戏)

    网页植物大战僵尸

    网页我的世界

    steam: steam

    backroom维基

    中文维基

    很多人不知道像这种:

    #include<bits/stdc++.h>
    using namespace std;
    stack<int> s[80001];
    int main(){
    	int a,b;
    	cin>>a>>b;
    	cout<<a+b;
    }
    
    彩色的代码块怎么打,我来教:

    首先看到点击块级代码会出现:

    
    //```c++.line-numbers
    //```
    改成这样
    
    

    就行了

    扫雷:

    @

    #include<bits/stdc++.h>
    #include<windows.h>
    #include<conio.h>
    
    #define FG_BLACK        0
    #define FG_BLUE         FOREGROUND_BLUE
    #define FG_GREEN        FOREGROUND_GREEN
    #define FG_RED          FOREGROUND_RED
    #define FG_CYAN         (FOREGROUND_BLUE | FOREGROUND_GREEN)
    #define FG_MAGENTA      (FOREGROUND_RED | FOREGROUND_BLUE)
    #define FG_YELLOW       (FOREGROUND_RED | FOREGROUND_GREEN)
    #define FG_WHITE        (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE)
    #define FG_INTENSITY    FOREGROUND_INTENSITY
    
    #define BG_BLACK        0
    #define BG_BLUE         BACKGROUND_BLUE
    #define BG_GREEN        BACKGROUND_GREEN
    #define BG_RED          BACKGROUND_RED
    #define BG_CYAN         (BACKGROUND_BLUE | BACKGROUND_GREEN)
    #define BG_MAGENTA      (BACKGROUND_RED | BACKGROUND_BLUE)
    #define BG_YELLOW       (BACKGROUND_RED | BACKGROUND_GREEN)
    #define BG_WHITE        (BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE)
    #define BG_INTENSITY    BACKGROUND_INTENSITY
    
    #define COLOR_UNOPEN    (FG_BLACK | BG_GRAY)
    #define COLOR_FLAG      (FG_WHITE | FG_INTENSITY | BG_RED)
    #define COLOR_MINE      (FG_RED | FG_INTENSITY | BG_BLACK)
    #define COLOR_EMPTY     (FG_BLACK | BG_WHITE)
    #define COLOR_CURSOR_HIGHLIGHT (FG_BLACK | BG_YELLOW | BG_INTENSITY)
    
    #define BG_GRAY         (BACKGROUND_INTENSITY)
    
    using namespace std;
    
    enum GameState { PLAYING, WIN, LOSE };
    
    struct Cell {
        bool isMine;
        bool isRevealed;
        bool isFlagged;
        int adjacentMines;
        Cell() : isMine(false), isRevealed(false), isFlagged(false), adjacentMines(0) {}
    };
    
    class Minesweeper {
    private:
        int width, height;
        int totalMines;
        int flagsPlaced;
        int revealedCount;
        bool firstMove;
        GameState state;
        std::vector<std::vector<Cell>> board;
        int cursorRow, cursorCol;
        int difficultyIndex;
    
        HANDLE hConsole;
    
    public:
        Minesweeper() : hConsole(GetStdHandle(STD_OUTPUT_HANDLE)) {
            srand((unsigned)time(nullptr));
            hideCursor();
            cursorRow = cursorCol = 0;
            difficultyIndex = 0;
        }
    
        void hideCursor() {
            CONSOLE_CURSOR_INFO cursorInfo;
            GetConsoleCursorInfo(hConsole, &cursorInfo);
            cursorInfo.bVisible = FALSE;
            SetConsoleCursorInfo(hConsole, &cursorInfo);
        }
    
        void gotoxy(int x, int y) {
            COORD coord = { (SHORT)x, (SHORT)y };
            SetConsoleCursorPosition(hConsole, coord);
        }
    
        void setColor(int color) {
            SetConsoleTextAttribute(hConsole, color);
        }
    
        void initGame(int w, int h, int mines, int diffIdx) {
            width = w;
            height = h;
            totalMines = mines;
            difficultyIndex = diffIdx;
            flagsPlaced = 0;
            revealedCount = 0;
            firstMove = true;
            state = PLAYING;
            cursorRow = cursorCol = 0;
            board.assign(height, std::vector<Cell>(width));
        }
    
        void placeMines(int excludeRow, int excludeCol) {
            int cells = width * height;
            int minesToPlace = totalMines;
            if (minesToPlace > cells - 1) minesToPlace = cells - 1;
            while (minesToPlace > 0) {
                int idx = rand() % cells;
                int r = idx / width;
                int c = idx % width;
                if ((r == excludeRow && c == excludeCol) || board[r][c].isMine)
                    continue;
                board[r][c].isMine = true;
                minesToPlace--;
            }
            calculateAdjacentNumbers();
        }
    
        void calculateAdjacentNumbers() {
            for (int r = 0; r < height; ++r) {
                for (int c = 0; c < width; ++c) {
                    if (board[r][c].isMine) {
                        board[r][c].adjacentMines = -1;
                    } else {
                        int count = 0;
                        for (int dr = -1; dr <= 1; ++dr) {
                            for (int dc = -1; dc <= 1; ++dc) {
                                if (dr == 0 && dc == 0) continue;
                                int nr = r + dr;
                                int nc = c + dc;
                                if (nr >= 0 && nr < height && nc >= 0 && nc < width && board[nr][nc].isMine)
                                    count++;
                            }
                        }
                        board[r][c].adjacentMines = count;
                    }
                }
            }
        }
    
        void revealCell(int row, int col) {
            if (row < 0 || row >= height || col < 0 || col >= width) return;
            Cell& cell = board[row][col];
            if (cell.isRevealed || cell.isFlagged || state != PLAYING) return;
            
            if (firstMove) {
                firstMove = false;
                if (cell.isMine) {
                    for (int r = 0; r < height; ++r)
                        for (int c = 0; c < width; ++c)
                            board[r][c].isMine = false;
                    placeMines(row, col);
                } else {
                    bool hasMine = false;
                    for (int r = 0; r < height && !hasMine; ++r)
                        for (int c = 0; c < width && !hasMine; ++c)
                            if (board[r][c].isMine) hasMine = true;
                    if (!hasMine) placeMines(row, col);
                }
            }
            
            Cell& current = board[row][col];
            if (current.isMine) {
                state = LOSE;
                revealAllMines();
                return;
            }
            
            current.isRevealed = true;
            revealedCount++;
            
            if (current.adjacentMines == 0) {
                for (int dr = -1; dr <= 1; ++dr) {
                    for (int dc = -1; dc <= 1; ++dc) {
                        if (dr == 0 && dc == 0) continue;
                        int nr = row + dr;
                        int nc = col + dc;
                        if (nr >= 0 && nr < height && nc >= 0 && nc < width) {
                            if (!board[nr][nc].isRevealed && !board[nr][nc].isFlagged) {
                                revealCell(nr, nc);
                            }
                        }
                    }
                }
            }
            checkWinCondition();
        }
    
        void toggleFlag(int row, int col) {
            if (row < 0 || row >= height || col < 0 || col >= width) return;
            if (state != PLAYING) return;
            Cell& cell = board[row][col];
            if (cell.isRevealed) return;
            cell.isFlagged = !cell.isFlagged;
            flagsPlaced += cell.isFlagged ? 1 : -1;
        }
    
        void revealAllMines() {
            for (int r = 0; r < height; ++r)
                for (int c = 0; c < width; ++c)
                    if (board[r][c].isMine)
                        board[r][c].isRevealed = true;
        }
    
        void checkWinCondition() {
            if (revealedCount == width * height - totalMines) {
                state = WIN;
                for (int r = 0; r < height; ++r)
                    for (int c = 0; c < width; ++c)
                        if (board[r][c].isMine && !board[r][c].isFlagged) {
                            board[r][c].isFlagged = true;
                            flagsPlaced++;
                        }
            }
        }
    
        int getCellColor(const Cell& cell) const {
            if (!cell.isRevealed) {
                return cell.isFlagged ? COLOR_FLAG : COLOR_UNOPEN;
            } else {
                if (cell.isMine) return COLOR_MINE;
                if (cell.adjacentMines == 0) return COLOR_EMPTY;
                int fg;
                switch(cell.adjacentMines) {
                    case 1: fg = FG_BLUE  | FG_INTENSITY; break;
                    case 2: fg = FG_GREEN | FG_INTENSITY; break;
                    case 3: fg = FG_RED   | FG_INTENSITY; break;
                    case 4: fg = FG_BLUE;                      break;
                    case 5: fg = FG_RED;                       break;
                    case 6: fg = FG_CYAN  | FG_INTENSITY; break;
                    case 7: fg = FG_MAGENTA | FG_INTENSITY; break;
                    case 8: fg = FG_BLACK | FG_INTENSITY; break;
                    default: fg = FG_BLACK;
                }
                return fg | BG_WHITE;
            }
        }
    
        void draw() {
            gotoxy(0, 0);
            
            setColor(FG_WHITE | BG_BLACK);
            std::cout << "========== 扫雷游戏 ==========" << std::endl;
            
            int remainingMines = totalMines - flagsPlaced;
            std::cout << "剩余雷数: ";
            setColor(FG_RED | FG_INTENSITY | BG_BLACK);
            std::cout << remainingMines << "  ";
            
            if (state == PLAYING) {
                setColor(FG_GREEN | FG_INTENSITY | BG_BLACK);
                std::cout << "[游戏中]";
            } else if (state == WIN) {
                setColor(FG_CYAN | FG_INTENSITY | BG_BLACK);
                std::cout << "[你赢了!]";
            } else if (state == LOSE) {
                setColor(FG_RED | FG_INTENSITY | BG_BLACK);
                std::cout << "[游戏结束]";
            }
            setColor(FG_WHITE | BG_BLACK);
            std::cout << "    光标: (" << cursorRow << "," << cursorCol << ")" << std::endl;
            
            std::cout << "  +";
            for (int c = 0; c < width; ++c) std::cout << "--";
            std::cout << "+" << std::endl;
            
            for (int r = 0; r < height; ++r) {
                std::cout << "  |";
                
                for (int c = 0; c < width; ++c) {
                    const Cell& cell = board[r][c];
                    bool isCursor = (r == cursorRow && c == cursorCol);
                    
                    char content;
                    if (!cell.isRevealed) {
                        content = cell.isFlagged ? 'F' : '#';
                    } else {
                        if (cell.isMine) content = '*';
                        else if (cell.adjacentMines == 0) content = ' ';
                        else content = '0' + cell.adjacentMines;
                    }
                    
                    int color = getCellColor(cell);
                    if (isCursor) {
                        int fg = color & 0x0F;
                        color = fg | COLOR_CURSOR_HIGHLIGHT;
                    }
                    
                    setColor(color);
                    if (isCursor) std::cout << '>';
                    else std::cout << ' ';
                    std::cout << content;
                }
                
                setColor(FG_WHITE | BG_BLACK);
                std::cout << "|" << std::endl;
            }
            
            std::cout << "  +";
            for (int c = 0; c < width; ++c) std::cout << "--";
            std::cout << "+" << std::endl;
            
            setColor(FG_WHITE | BG_BLACK);
            std::cout << "\n操作:";
            setColor(FG_CYAN | FG_INTENSITY | BG_BLACK);   std::cout << " 鼠标移动 ";
            setColor(FG_WHITE | BG_BLACK);                 std::cout << "选择格子  ";
            setColor(FG_CYAN | FG_INTENSITY | BG_BLACK);   std::cout << " 左键 ";
            setColor(FG_WHITE | BG_BLACK);                 std::cout << "揭开格子  ";
            setColor(FG_CYAN | FG_INTENSITY | BG_BLACK);   std::cout << " 右键 ";
            setColor(FG_WHITE | BG_BLACK);                 std::cout << "标记/取消标记" << std::endl;
        }
    
        void runMouseMode() {
            HANDLE hIn = GetStdHandle(STD_INPUT_HANDLE);
            DWORD oldMode;
            GetConsoleMode(hIn, &oldMode);
            SetConsoleMode(hIn, ENABLE_MOUSE_INPUT | ENABLE_EXTENDED_FLAGS);
    
            while (state == PLAYING) {
                draw();
                INPUT_RECORD ir;
                DWORD rd;
                bool ok = false;
                while (!ok && state == PLAYING) {
                    ReadConsoleInput(hIn, &ir, 1, &rd);
                    if (ir.EventType != MOUSE_EVENT) continue;
                    MOUSE_EVENT_RECORD me = ir.Event.MouseEvent;
                    int cx = me.dwMousePosition.X;
                    int cy = me.dwMousePosition.Y;
    
                    int gx = cy - 3;
                    int gy = (cx - 3) / 2;
                    bool in = (gx >= 0 && gx < height) && (gy >= 0 && gy < width);
    
                    if (!in) continue;
    
                    cursorRow = gx;
                    cursorCol = gy;
    
                    if (me.dwEventFlags == MOUSE_MOVED) {
                        ok = true;
                    }
    
                    if ((me.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) && (me.dwEventFlags == 0)) {
                        revealCell(gx, gy);
                        ok = true;
                    }
    
                    if ((me.dwButtonState & RIGHTMOST_BUTTON_PRESSED) && (me.dwEventFlags == 0)) {
                        toggleFlag(gx, gy);
                        ok = true;
                    }
                }
            }
    
            draw();
            SetConsoleMode(hIn, oldMode);
            std::cout << "\n游戏结束,按任意键返回菜单...";
            _getch();
        }
    
        void clearScreen() {
            system("cls");
        }
    };
    const int con_bc[5]={0,9,16,22,30},con_lei[5]={0,10,40,99,200};
    int ci=0,bc,left_flag=2e9;
    int showMenu() {
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsole, FG_WHITE | BG_BLACK);
        system("cls");
        std::cout << "========================================" << std::endl;
        std::cout << "           扫 雷 游 戏(鼠标版)                " << std::endl;
        std::cout << "========================================" << std::endl;
        std::cout << "  选择难度 (正方形棋盘):" << std::endl;
        std::cout << "    1. 初级  (9x9,  10 雷)  " <<  std::endl;
        std::cout << "    2. 中级  (16x16, 40 雷)  " << std::endl;
        std::cout << "    3. 高级  (22x22, 99 雷)  " << std::endl;
        std::cout << "    4. 专家  (30x30, 200 雷) " << std::endl;
        std::cout << "    5. 自定义 (自行输入边长和雷数)" << std::endl;
        std::cout << "    0. 退出" << std::endl;
        std::cout << "----------------------------------------" << std::endl;
        std::cout << "  请输入选项 (0-5): "<<endl;
        std::cout << "  为了游玩舒适,请将窗口调成全屏!!!请匀速缓慢移动鼠标!!!"<<endl;
        int x;cin>>x;
        if(x==0){
    		if(!ci) cout<<"拜拜!!!!!!!!!!!(臭shazi)";
    		else cout<<"感谢游玩!!!"; 
    		return 0;
    	}
    	else if(x==5){
    		cout<<"请输入边长:";
    		cin>>bc;
    		cout<<"输入的边长:"<<bc<<endl<<"请输入雷的个数:"<<endl; 
    		bool p=0;left_flag=2e9; 
    		while(left_flag>=bc*bc){
    			if(p){cout<<"输入的雷数:"<<left_flag<<" (不符合)"<<endl;}
    			cin>>left_flag;
    			p=1;
    		}
    		cout<<"输入的雷数:"<<left_flag<<endl;
    	}
    	else bc=con_bc[x],left_flag=con_lei[x];
    	return 1;
    }
    int main(){
        SetConsoleTitle("扫雷游戏");
        HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
        while(1){
        	if(!showMenu()) break;
            Minesweeper game;
            game.clearScreen();
            game.initGame(bc, bc, left_flag, -1);
            game.runMouseMode();
            game.clearScreen();
            ci++;
        }
        return 0;
    }
    

    数字炸弹!(本人原编,无病毒,放心食用)

    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    int main(){
    	srand(time(0));
    	long long a,b;//生成范围 
    	bool p=true,sx=true;//一个用来是否保存范围,一个是提示输出的 
    	char yn;//yes/no 
    	while(1){//循环开始游戏 
    	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);//获取控制台颜色句柄 
    	SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);//初始颜色(三原色) 
    	system("cls");//清屏 
    	long long sjs1;//随机数应用 
    	long long ss,q,h;//非别为输入的数字,范围前和后 
    		if(sx!=false){
    			cout<<"数"; Sleep(50);cout<<"字"; Sleep(50);cout<<"炸"; Sleep(50);cout<<"弹";Sleep(50);cout<<"!"; Sleep(50);cout<<"!";Sleep(50); cout<<"!";Sleep(1000);  
    			system("cls");//清屏 
    		}//输入顺序重新提示 
    		if(p==true){//锁定范围时每次输入范围 
    			system("cls");//清屏 
    			cout<<"请输入数字生成范围1~n"<<endl;
    			cin>>b;//输入范围 
    			system("cls");//清屏 
    			Sleep(50); cout<<"是"; Sleep(50); cout<<"否"; Sleep(50); cout<<"保"; Sleep(50); cout<<"存"; Sleep(50); cout<<"这"; Sleep(50); cout<<"个"; Sleep(50); cout<<"范"; Sleep(50); cout<<"围"; Sleep(50); cout<<"("; Sleep(50); cout<<"是"; Sleep(50); cout<<"y"; Sleep(50); cout<<"否"; Sleep(50); cout<<"n"; Sleep(50); cout<<")"; 
    			cin>>yn;//保不保存 
    			if(yn=='y'){
    				system("cls");
    				cout<<"ok!";
    				system("cls");
    				p=false;//锁定,以后不用再输入范围 
    			}//保存 
    		}
    		long long n;
    		n=rand()%(b+1);
    		n=rand()%(b+1);
    		n=rand()%(b-1)+1;
    		//生成一个随机数,范围为a~b 
    		cout<<"游戏开始,请输入一个数" ; 
    		q=1;
    		h=b;
    		ss=0; 
    		//初始化前和后 
    		sjs1=n;//将应用的随机数赋值 
    		while(ss!=sjs1){//只要没中一直循环下去 
    			cin>>ss;//输入数 
    			system("cls");//清屏 
    			if(ss<=q||ss>=h){
    				system("cls");//清屏 
    				cout<<"请输入"<<q<<"~"<<h<<"之间的数字!"<<endl; 
    				Sleep(1000);
    				system("cls");//清屏 
    				cout<<q<<'~'<<h<<endl;
    				continue;
    			}//输入范围出错 
    			if(ss>sjs1){
    				h=ss;//改变范围 
    				if(h-q<=7){
    					SetConsoleTextAttribute(hConsole, FOREGROUND_RED);//红 
    					cout<<q<<'~'<<h<<endl;
    				}else if(h-q<=16){
    					SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);//黄 
    					cout<<q<<'~'<<h<<endl;
    				}else{
    					SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);//绿 
    					cout<<q<<'~'<<h<<endl;
    				}//根据前后相差改变范围(<=7为红色,<=16是黄色,>=17是绿色) 
    			}if(ss<sjs1){
    				q=ss;
    				if(h-q<=7){
    					SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
    					cout<<q<<'~'<<h<<endl;
    				}else if(h-q<=16){
    					SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN);
    					cout<<q<<'~'<<h<<endl;
    				}else{
    					SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN);
    					cout<<q<<'~'<<h<<endl;
    				}
    			}//与上面的一样 
    			if(ss==sjs1){
    				cout<<"中!";
    				Sleep(1000);
    			}//中了,回到新一轮 
    		}
    	}
    }
    

    2048:(本人制作放心食用)(方块颜色取于:周昱帆 (2022tysc0819))(本游戏处理非常接近于原版2048,比其他一些写的更还原,全部只有两个不同处1:1 1 2→变为4,原本变:2 2——2处:在某些情况下无法移动也可以生成方块,所有难度低一点)

    #include<bits/stdc++.h>
    #include<windows.h>
    #include <conio.h>
    using namespace std;
    
    int gz[6][6];
    int ppdd=0;
    int jf=0,maxjf;
    // 从第二个代码提取的显示函数
    map<int,int>col;
    int maxn,n=4;
    
    int wcnt(int x){
        int cnt=0;
        while(x>0){
            ++cnt;
            x/=10;
        }
        return cnt;
    }
    
    void mid(int x,int d){
        if(x==0){
            cout<<"          ";
            return;
        }
        int w=wcnt(x);
        if((d-w)%2){
            for(int i=1;i<=(d-w)/2+1;i++){
                cout<<" ";
            }
        }else{
            for(int i=1;i<=(d-w)/2;i++){
                cout<<" ";
            }
        }
        cout<<x;
        for(int i=1;i<=(d-w)/2;i++){
            cout<<" ";
        }
    }
    
    void out(string s,int id=7,int tim=0){
        HANDLE handle=::GetStdHandle(STD_OUTPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO info;
        GetConsoleScreenBufferInfo(handle,&info);
        WORD colorBak=info.wAttributes;
        SetConsoleTextAttribute(handle,id);
        for(int i=0;i<(int)s.size();i++){
            cout<<s[i];
            if(tim>0) Sleep(tim);
        }
        SetConsoleTextAttribute(handle,colorBak);
    }
    void saveJF() {
        std::ofstream file("maxjf.txt");
        file << maxjf;
        file.close();
    }
    // 读取
    void loadJF() {
        std::ifstream file("maxjf.txt");
        if (!file >> maxjf) {
    		std::cout << "存档不存在,maxjf = 0" << std::endl;
        }else file >> maxjf;
        file.close();
    }
    void initColors(){
        col[0]=0;  // 空位置
        col[2]=3;
        col[4]=4;
        col[8]=6;
        col[16]=7;
        col[32]=8;
        col[64]=10;
        col[128]=11;
        col[256]=12;
        col[512]=14;
        col[1024]=3;
        col[2048]=4;
        col[4096]=6;
        col[8192]=7;
        col[16384]=8;
        col[32768]=10;
        col[65536]=11;
        col[131072]=12;
        col[262144]=14;
        col[524288]=3;
        col[1048576]=4;
    }
    
    // 完全复制第二个代码的print函数,只做最小修改
    void printGameBoard(){
        system("cls");
        HANDLE handle=::GetStdHandle(STD_OUTPUT_HANDLE);
        CONSOLE_SCREEN_BUFFER_INFO info;
        GetConsoleScreenBufferInfo(handle,&info);
        WORD colorBak=info.wAttributes;
        
        // 重新计算最大数字位数
        maxn = 0;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                maxn=max(maxn,wcnt(gz[i][j]));
        
        // 完全按照第二个代码的显示逻辑
        out("                                                  \n",0xff);
        
        for(int i=1;i<=n;i++){
            for(int r=1;r<=5;r++){
                for(int j=1;j<=n;j++){
                    SetConsoleTextAttribute(handle,16*col[gz[i][j]]);
                    out("  ",0xff);
                    if(r==3){
                        mid(gz[i][j],10);
                    } else {
                        cout<<"          ";
                    }
                    SetConsoleTextAttribute(handle,colorBak);
                }
                out("  ",0xff);
                cout<<"\n";
            }
            out("                                                  \n",0xff);
        }
        
        SetConsoleTextAttribute(handle, colorBak);
    }
    
    bool IsKeyDown(int keyCode) {
        return (GetAsyncKeyState(keyCode) & 0x8000) != 0;
    }
    
    bool js(){	
    for(int i=1;i<5;i++){
    	for(int j=1;j<5;j++){		
    		for(int jb=0;jb<4;jb++){
    			if(gz[i-1][j]==0){
    				return true;
    			}else if(gz[i-1][j]==gz[i][j]&&gz[i-1][j]!=-1){
    				return true;
    			}
    		}
    	}
    }
    for(int i=4;i>=1;i--){
    	for(int j=1;j<5;j++){	
    		for(int jb=0;jb<4;jb++){
    			if(gz[i+1][j]==0){
    				return true;
    			}else if(gz[i+1][j]==gz[i][j]&&gz[i+1][j]!=-1){
    				return true;
    			}
    		}
    	}
    }
    for(int i=1;i<5;i++){
    	for(int j=1;j<5;j++){	
    		for(int jb=0;jb<4;jb++){
    			if(gz[i][j-1]==0){
    				return true;
    			}else if(gz[i][j-1]==gz[i][j]&&gz[i][j-1]!=-1){
    				return true;
    			}
    		}
    	}
    }
    for(int i=1;i<5;i++){
    	for(int j=4;j>=1;j--){
    		for(int jb=0;jb<4;jb++){
    			if(gz[i][j+1]==0){
    				return true;
    			}else if(gz[i][j+1]==gz[i][j]&&gz[i][j+1]!=-1){
    				return true;
    			}
    		}
    	}
    }
    	return false;	
    } 
    
    void csh2048(){
    	for(int i=0;i<6;i++){
    		for(int j=0;j<6;j++){
    			gz[i][j]=-1;
    		}
    	}
    	for(int i=1;i<5;i++){
    		for(int j=1;j<5;j++){
    			gz[i][j]=0;
    		}
    	}
    }
    
    int main(){
    	loadJF();
    	bool pd2=true;
    	srand(time(0));
    	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        initColors();
    	while(1){
    		system("cls");
    		csh2048(); 
    		if(true){
                // 使用彩色标题
                out("                                                  \n", 0xff);
                out("          ", 7);
                out("2", 12);
                out("0", 10);
                out("4", 9);
                out("8", 11);
                out("  GAME              \n", 7);
                out("                                                  \n", 0xff);
    		}
    		cout<<"当前记录积分:"<<maxjf<<endl;
    		char c;
    		cout<<"开始y不玩n"<<endl;
    		cin>>c;
    		if(c=='n'){
    			cout<<"感谢游玩";
    			Sleep(1000);
    			return 0;
    		}else{
    			cout<<"4*4模式(作者太蠢,只会4*4)";
    			Sleep(1000);
    			system("cls");
    			cout<<"是"; Sleep(60);cout<<"否"; Sleep(60);cout<<"看"; Sleep(60);cout<<"操"; Sleep(60);cout<<"作"; Sleep(60);cout<<"提"; Sleep(60);cout<<"示"; Sleep(60);cout<<"?"; Sleep(60);cout<<endl; cout<<"是"; Sleep(60);cout<<"y"; Sleep(60);cout<<"否"; Sleep(60);cout<<"n"; Sleep(60);
    			cin>>c;
    			if(c=='y'){
    				cout<<"上下左右分别对应键盘右下方的四个箭头↑↓←→\n";
    				Sleep(700);
    				cout<<"按任意键继续..."<<endl;
    				_getch();
    			} 
    			cout<<"游戏开始!!!\n";
    			Sleep(500); 
    			system("cls");
    			jf=0;
    			while(1){
    				//准备工作--------------------------------------------------------------- 
    				int b[16],e=0,h=0,x,y,maxe=0,n;
    				for(int i=1;i<5;i++){
    					for(int j=1;j<5;j++){
    						maxe=max(maxe,gz[i][j]);
    						h++;
    						if(gz[i][j]==0){
    							b[e]=h;
    							e++;
    						}
    					}
    				}
    				if(maxe==2048){
                        printGameBoard();
                        HANDLE handle=::GetStdHandle(STD_OUTPUT_HANDLE);
                        CONSOLE_SCREEN_BUFFER_INFO info;
                        GetConsoleScreenBufferInfo(handle,&info);
                        WORD colorBak=info.wAttributes;
                        SetConsoleTextAttribute(handle, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    					cout<<"You Win!!!"<<endl;
                        SetConsoleTextAttribute(handle, colorBak);
    					cout<<"积分:"<<jf<<endl;
    					maxjf=max(maxjf,jf);
                        cout<<"按任意键返回主菜单..."<<endl;
                        _getch();
    					break; 
    				}
    				int random_number;
    				if(e==1){
    					random_number=0;
    				} else{
    					n=rand()%(e+1);
    					n=rand()%(e+1);
    					n=rand()%(e-1)+1;
    					random_number=n;
    				}
    				
    				if(true){
    					if(b[random_number]==1){
    						x=1;y=1;
    					}if(b[random_number]==2){
    						x=1;y=2;
    					}if(b[random_number]==3){
    						x=1;y=3;
    					}if(b[random_number]==4){
    						x=1;y=4;
    					}if(b[random_number]==5){
    						x=2;y=1;
    					}if(b[random_number]==6){
    						x=2;y=2;
    					}if(b[random_number]==7){
    						x=2;y=3;
    					}if(b[random_number]==8){
    						x=2;y=4;
    					}if(b[random_number]==9){
    						x=3;y=1;
    					}if(b[random_number]==10){
    						x=3;y=2;
    					}if(b[random_number]==11){
    						x=3;y=3;
    					}if(b[random_number]==12){
    						x=3;y=4;
    					}if(b[random_number]==13){
    						x=4;y=1;
    					}if(b[random_number]==14){
    						x=4;y=2;
    					}if(b[random_number]==15){
    						x=4;y=3;
    					}if(b[random_number]==16){
    						x=4;y=4;
    					}
    				}
    				int p[3]={1,2,4},sc,sc1;
    				if(true){
    						sc1=rand()%6;
    						sc1=rand()%6;
    						sc1=rand()%4+1;
    				}
    				if(sc1<=3)sc1=2;
    				if(sc1>3&&sc<=4)sc1=3;
    				sc=p[sc1-1];
    				if(pd2==true){
    					gz[x][y]=sc;
    				}else{
    					pd2=true;
    				}
    				
    				// 使用新的方块效果打印游戏板
    				printGameBoard();
    				
    				// 在"墙"下面显示积分
                    cout<<"积分:"<<jf<<"  最高记录:"<<maxjf<<endl;
                    cout<<"使用方向键移动 (↑↓←→)"<<endl;
    				
    				if(js()==false){
                        printGameBoard();
                        HANDLE handle2=::GetStdHandle(STD_OUTPUT_HANDLE);
                        CONSOLE_SCREEN_BUFFER_INFO info2;
                        GetConsoleScreenBufferInfo(handle2,&info2);
                        WORD colorBak2=info2.wAttributes;
                        SetConsoleTextAttribute(handle2, FOREGROUND_RED | FOREGROUND_INTENSITY);
    					cout<<"WA!"<<endl;
                        SetConsoleTextAttribute(handle2, colorBak2);
    					cout<<"积分:"<<jf<<endl;
    					maxjf=max(maxjf,jf);
    					saveJF();
                        cout<<"按任意键返回主菜单..."<<endl;
                        _getch();
    					break; 
    				}
    				bool cs;
    				cs=true;
    				char ch;
    				if (_kbhit()) { 
                		ch = _getch();
                		switch (ch) {
                    		case 72:{
                    			for(int i=1;i<5;i++){
    								for(int j=1;j<5;j++){
    									bool pd=true;
    									int x1=i,y1=j;
    									for(int jb=0;jb<4;jb++){
    										if(gz[x1-1][y1]==0){
    											cs=false;
    											ppdd=1;
    											gz[x1-1][y1]=gz[x1][y1];
    											gz[x1][y1]=0;
    											x1--;
    										}else if(gz[x1-1][y1]==gz[x1][y1]&&pd==true&&gz[x1-1][y1]!=-1){
    											cs=false;
    											ppdd=1;
    											gz[x1-1][y1]*=2;
    											jf+=gz[x1-1][y1];
    											gz[x1][y1]=0;
    											pd=false;
    											x1--;
    										}
    									}
    								}
    							}
    							break;
    						}
                   			case 80:{
                   			for(int i=4;i>=1;i--){
    							for(int j=1;j<5;j++){
    								bool pd=true;
    								int x1=i,y1=j;
    								for(int jb=0;jb<4;jb++){
    									if(gz[x1+1][y1]==0){
    										cs=false;
    										ppdd=1;
    										gz[x1+1][y1]=gz[x1][y1];
    										gz[x1][y1]=0;
    										x1++;
    									}else if(gz[x1+1][y1]==gz[x1][y1]&&pd==true&&gz[x1+1][y1]!=-1){
    										cs=false;
    										ppdd=1;
    										gz[x1+1][y1]*=2;
    										gz[x1][y1]=0;
    										jf+=gz[x1+1][y1];
    										pd=false;
    										x1++;
    									}
    								}
    							}
    						}
                   				break;
                   			}
                  	  		case 75:{
                  	  				for(int i=1;i<5;i++){
    									for(int j=1;j<5;j++){
    										bool pd=true;
    										int x1=i,y1=j;
    										for(int jb=0;jb<4;jb++){
    											if(gz[x1][y1-1]==0){
    												cs=false;
    												ppdd=1;
    												gz[x1][y1-1]=gz[x1][y1];
    												gz[x1][y1]=0;
    												y1--;
    											}else if(gz[x1][y1-1]==gz[x1][y1]&&pd==true&&gz[x1][y1-1]!=-1){
    												cs=false;
    												ppdd=1;
    												gz[x1][y1-1]*=2;
    												gz[x1][y1]=0;
    												pd=false;
    												jf+=gz[x1][y1-1];
    												y1--;
    											}
    										}
    									}
    								}
    							break;
    						}
                  	  		case 77:{
                  	  			for(int i=1;i<5;i++){
    								for(int j=4;j>=1;j--){
    									bool pd=true;
    									int x1=i,y1=j;
    									for(int jb=0;jb<4;jb++){
    										if(gz[x1][y1+1]==0){
    											cs=false;
    											ppdd=1;
    											gz[x1][y1+1]=gz[x1][y1];
    											gz[x1][y1]=0;
    											y1++;
    										}else if(gz[x1][y1+1]==gz[x1][y1]&&pd==true&&gz[x1][y1+1]!=-1){
    											cs=false;
    											ppdd=1;
    											gz[x1][y1+1]*=2;
    											gz[x1][y1]=0;
    											jf+=gz[x1][y1+1];
    											pd=false;
    											y1++;
    										}
    									}
    								}
    							}
    							break;
    						}
                		}
            		}
    				if(cs==true){
    					if(ppdd==0){
    						cout<<"无法移动,换个方向试试"<<endl;
    					}pd2=false;
    					ppdd=0;
    					_getch();
    					continue;
    				}
    			}
    		}
    	} 
    }
    

    新游戏:末日生存 更新成度:

    (暂时停更)(本次更新时间:2026.4.18)(增加移动视野跟踪(主地图),修复捕鱼陷阱材料bug,给铁矿烧制加上数量选择 2026.5.4 增加矿场出矿爆率)

    以下为末日生存的两段代码(太大了要分两段,先复制1再复制2)

    代码1

    代码2


    愤怒小鸟

    还会更新,第一版有1~3个bug,先玩着,搞好更新(码风不像我正常,太难了搜了很多资料)

    代码1

    代码2


    临时代码区

    
    
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int n,m,c;
    int p[1000001];
    signed main(){
    	cin>>c;
    	cin>>n>>m;
    	for(int i=0;i<n;i++){
    		cin>>p[i];
    	}
    	int fr=0,ba=n-1;
    	for(int i=0;i<m;i++){
    		int pc,x;
    		cin>>pc>>x;
    		bool pd=0;
    		int mine=LLONG_MAX,zy=1;
    		int baba;
    		if((ba-fr+1)%2==0){
    			baba=fr+(ba-fr+1)/2;
    		}else{
    			baba=fr+(ba-fr+1)/2+1;
    		}
    		for(int j=fr;j<=baba;j++){
    			if(p[j]*p[fr+(j+pc-fr)%(ba-fr+1)]==x){
    				mine=min(j+1-fr,mine);
    				pd=1;
    				break;
    			}
    		}
    		if(pd==1){
    			baba=ba-mine;
    		}
    		for(int j=ba;j>=baba;j--){
    			if(p[j]*p[fr+(j+pc-fr)%(ba-fr+1)]==x){
    				if(mine>ba-j+1){
    					mine=ba-j+1;
    					zy=2;
    				}
    				pd=1;
    				break;
    			}
    		}
    		if(pd==0){
    			cout<<'F'<<endl;
    			return 0;
    		}
    		if(zy==1){
    			fr=fr+mine;
    			cout<<'L'<<" "<<mine<<endl;
    			continue;
    		}
    		ba=ba-mine;
    		cout<<'R'<<' '<<mine<<endl;
    	}
    } 
    
    
    
    
  • 最近活动

  • Stat

  • 能力评级