-
个人简介
投球: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~3个bug,先玩着,搞好更新(码风不像我正常,太难了搜了很多资料)
临时代码区
#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; } } -
最近活动
- 2026年春季班Class10-区间型动态规划2-区间合并 作业
- 2026年春季班Class10-区间型动态规划1-区间分割 作业
- 2026年春季班Class9-背包动态规划2 作业
- 2026年春季班Class8-背包动态规划(背包DP) 作业
- TYOI2026年普及组模拟赛#10 OI
- TYOI2026年普及组模拟赛#09 OI
- TYOI2026年普及组模拟赛#08 OI
- 第五届铁一校园程序设计竞赛(TYCPC‘5th)重现赛 XCPC
- 2026年春季班Class7-最长公共子序列 作业
- TYOI2026年普及组模拟赛#11 OI
- 2026年春季班Class6-线性动规练习题 作业
- TYOI2026年普及组模拟赛#07 OI
- 2026年春季班Class5-最长不下降子序列(LIS) 作业
- TYOI2026年普及组模拟赛#06 OI
- TYOI2026年普及组模拟赛#05 OI
- 2026年小六春季班Class3-单调队列 作业
- TYOI2026年普及组模拟赛#04 OI
- 2026年小六春季班Class2-优先队列 作业
- 2026年小六春季班Class2-哈希表 作业
- TYOI2026年普及组模拟赛#03 OI
- 2026年小六春季班Class1-链表与List 作业
- TYOI2026年普及组模拟赛#02 OI
- TYOI2026年普及组模拟赛#01(副本) IOI
- TYOI2026年普及组模拟赛#01 OI
- 2026年春季班Class4-一维动规 作业
- TYOI冬令营(2026)阶段测试3 IOI
- 2025铁一集团新苗秋冬令营5——二分搜索2(最小值最大) 作业
- 2025铁一集团新苗秋冬令营4——二分搜索1(最大值最小) 作业
- TYOI冬令营(2026)阶段测试2 IOI
- 2025铁一集团新苗秋冬令营3---《广度优先搜索2》 作业
- 2025铁一集团新苗秋冬令营2---《广度优先搜索1》 作业
- 2025铁一集团新苗秋冬令营1---《队列》 作业
- 20260115铁外信息学C班训练 作业
- 2026 年 C 班周赛计划 Extra #1 IOI
- 2025OiClass入门组周赛计划#10 OI
- 2025铁一集团新苗秋季班作业11---《深度优先搜索算法2》 作业
- 20251230铁外信息学C班课上练习 作业
- 2025OiClass入门组周赛计划#06(副本) OI
- 2025铁一集团新苗秋季班作业10----《深度优先搜索算法1》 作业
- 20251230铁外信息学B班练习题 作业
- 2025铁一集团新苗秋季班作业9----《递归算法》 作业
- 铁外信息学BC班限时比赛20251126 IOI(严格)
- 2025铁一集团新苗秋季班作业8----《栈结构》 作业
- 2025OiClass入门组周赛计划#04 OI
- 2025铁一集团新苗秋季班作业7----《前缀和&差分前缀和》 作业
- 2025铁一集团新苗秋季班作业7----贪心+递推 作业
- 铁外信息学BC班函数作业20251104 作业
- 2025铁一集团新苗秋季班作业5----《枚举算法》 作业
- 2025铁一集团新苗秋季班作业4----《模拟算法》 作业
- 2025铁一集团新苗秋季班作业6----《排序和结构体排序》 作业
- 2025铁一集团新苗周赛计划#02 IOI
- 2025铁一集团新苗周赛计划#01 IOI
- 铁外信息学B班字符数组讲解20250925 作业
- 2025铁一集团新苗秋季班作业3------《位运算》 作业
- 2025铁一集团新苗秋季班作业2----《进制转换》 作业
- 第六届oiclass信息学夏令营Class10-一维数组进阶 作业
- 第六届oiclass信息学夏令营Class8-循环嵌套 作业
- 第六届oiclass信息学夏令营Class7-循环结构-while语句 作业
- 第六届oiclass信息学夏令营Class2作业-表达式 作业
- 2025铁一集团新苗for循环专题练习赛 IOI
- 2025铁一集团新苗线下测试2 IOI
- 2025铁一集团新苗线上模拟测试5 OI
- 2025铁一集团新苗线上模拟测试4 OI
- 2025铁一集团新苗线上模拟赛3 OI
- 2025铁一集团新苗线下测试1 IOI
- 2025铁一集团新苗day8作业-while2 作业
- 2025铁一集团新苗线上(8月4日)-循环专题练习 作业
- 2025铁一集团新苗复习-for循环专题练习1 作业
- 2025铁一集团新苗day15作业-结构体和函数 作业
- 2025铁一集团新苗day14作业-二维数组基础 作业
- 2025铁一集团新苗秋季班作业1-二维数组和二维字符数组 作业
- 2025铁一集团新苗day13作业-普通排序和桶排序 作业
- 2025铁一集团新苗线上模拟赛2 OI
- 2025铁一集团新苗day12作业-数组标记的应用 作业
- 2025铁一集团新苗day11作业-字符、字符数组和字符串 作业
- 2025铁一集团新苗day10作业-一维数组基础 作业
- 2025铁一集团新苗day9作业-多重循环 作业
- 2025铁一集团新苗day7作业-循环语句while1 作业
- 2025铁一集团新苗线上模拟赛1 OI
- 2025铁一集团新苗day6作业-for语句3(数据的在线处理) 作业
- 2025铁一集团新苗day5作业-for语句2(枚举和筛选) 作业
- 2025铁一集团新苗day4作业-循环for语句 作业
- 2025铁一集团新苗day3作业-if条件语句 作业
- 2025铁一集团新苗day2作业-表达式 作业
- 2025铁一集团新苗day1作业-C++程序结构 作业
- 【oiClass公益赛】2025CSP-J模拟赛#17 OI
- 2024小六秋季班第七课《前缀和&差分前缀和》 作业
- 2024oiClass入门组周赛计划#18 IOI
- 2024oiClass入门组周赛计划#04 IOI
- 2024oiClass入门组周赛计划#03 IOI
- 2024oiClass入门组周赛计划#01 IOI
- 第五届oiClass信息学夏令营线上正式邀请赛3 OI
- 第五届oiClass信息学夏令营线上正式邀请赛2 OI
- 第五届oiClass信息学夏令营线上正式邀请赛1 OI
- 第五届oiClass信息学夏令营线上模拟测试1 OI
- 2025铁一集团新苗复习-for循环专题练习2 作业
- 第五届oiClass信息学夏令营day7作业-for循环专题练习1 作业
- 第五届oiClass信息学夏令营线上模拟测试4 OI
- 第五届oiClass信息学夏令营day21作业-二维数组和二维字符数组 作业
- 第五届oiClass信息学夏令营day19作业-数组与递推算法 作业
- 第五届oiClass信息学夏令营day18作业-普通排序和桶排序 作业
- 第五届oiClass信息学夏令营线上模拟测试3 OI
- 第五届oiClass信息学夏令营day15作业-字符、字符数组和字符串 作业
- 第五届oiClass信息学夏令营day14作业-一维数组基础 作业
- 第五届oiClass信息学夏令营day12作业-多重循环 作业
- 第五届oiClass信息学夏令营day11作业-while2 作业
- 第五届oiClass信息学夏令营day10作业-while1 作业
- 第五届oiClass信息学夏令营线上模拟测试2 OI
- 第五届oiClass信息学夏令营day5作业-for语句2 作业
- 第五届oiClass信息学夏令营day4作业-for语句1 作业
- 第五届oiClass信息学夏令营day3作业-if语句 作业
- 第五届oiClass信息学夏令营day2作业-表达式 作业
- 第五届oiClass信息学夏令营day1作业-C++程序结构 作业
- 第五届oiClass信息学夏令营day22作业-结构体和函数 作业
- 夏令营day18作业-一维数组3 作业
- 2023年第四届oiClass夏令营线上选拔赛 OI
- 夏令营day17作业-一维数组2 作业
- 第五届oiClass信息学夏令营day6作业-for语句3 作业
- 2022TYSC线上选拔赛 OI
- 2022TYSC模拟测试04 OI
- 2022TYSC模拟测试03 OI
- 2022TYSC模拟测试02 IOI
- 2022TYSC模拟测试01 IOI
-
Stat
-
能力评级