-
个人简介
https://www.arealme.com/aim-test/cn/ https://www.crazygames.com/ https://www.mc.js.cool/ https://cg.163.com/#/mobile 蛋仔派对,真能玩
学术区:
算法网站 ∽ 学习新算法时可以用到算法网站 ∽ 学习新算法时可以用到
打字练习 ∽ zty.pe打字练习 ∽ zty.pe
AC a+b problem的方法 ∽ 14种方法AC a+b problem的方法** ∽ 14种方法**
LaTeX大全 ∽ LaTeX专用LATEX大全 ∽ LATEX专用
全历史 ∽ allhistory全历史 ∽ allhistory
一个动态更新的洛谷综合题单 ∽ 试炼场扩展与补充一个动态更新的洛谷综合题单 ∽ 试炼场扩展与补充
骗分导论V2.0 ∽ 教你骗分骗分导论V2**.**0 ∽ 教你骗分
复赛时要记住的30句话 ∽ 助你得省一复赛时要记住的30句话 ∽ 助你得省一
整数序列在线百科全书 ∽ OEIS整数序列在线百科全书 ∽ OEIS
KaTeX大全 ∽ 洛谷上支持的LaTeX命令都在这里KATEX大全 ∽ 洛谷上支持的LATEX命令都在这里
LaTeX各种字体集合 ∽ 附赠颜色对照表LATEX各种字体集合 ∽ 附赠颜色对照表
Python教程 ∽ 快来学py啊,自带高精的Python教程** ∽ 快来学py啊,自带高精的**
Ruby教程 ∽ 快来学Ruby啊,自带高精的Ruby教程** ∽ 快来学Ruby啊,自带高精的**
OIer必知的编程技巧 ∽ 比赛必须知道!OIer必知的编程技巧** ∽ **比赛必须知道!
灌水区:
一个超级好玩的画画网站 ∽ weavesilk一个超级好玩的画画网站 ∽ weavesilk
网页版音游 ∽ phitogether网页版音游 ∽ phitogether
名字竞技场 ∽ namerena名字竞技场 ∽ namerena
游戏链接集合 ∽ 一些游戏链接游戏链接集合 ∽ 一些游戏链接
像黑客一样打代码 ∽ hackcode像黑客一样打代码 ∽ hackcode
打发时间神器 ∽ Mikutap打发时间神器 ∽ Mikutap
戏弄你的同学/教练/老师/家长 ∽ 记得全屏戏弄你的同学/教练/老师/家长 ∽ 记得全屏
generals ∽ 没智商不要玩generals ∽ 没智商不要玩
yorg ∽ 超级好玩的塔防游戏yorg ∽ 超级好玩的塔防游戏
OI歌 ∽ 刷题时可以听听OI歌** ∽ 刷题时可以听听**
工具区:
一个好van的手写字,完全免费!!!一个好van**的手写字,完全免费!!!**
一个工具箱 ∽ 好用的在线工具都在这里一个工具箱 ∽ 好用的在线工具都在这里
因式分解工具 ∽ 作弊工具!因式分解工具 ∽ **作弊工具!**
啥都能算的c++超级计算器 ∽ 超级计算器啥都能算的c++超级计算器 ∽ 超级计算器
油猴上好用的代码——洛谷版 ∽ 有安装油猴的必装,可以增强使用洛谷的体验感!油猴上好用的代码——洛谷版 ∽ **有安装油猴的必装,可以增强使用洛谷的体验感!**
图形计算器 ∽ geogebra图形计算器 ∽ geogebra
MC成就生成器 ∽ 生成属于你的成就MC成就生成器** ∽ 生成属于你的成就**
零宽短网址与二维码 ∽ 生成器零宽短网址与二维码 ∽ 生成器
OI维基百科 ∽ OIwikiOI维基百科** ∽ OIwiki**
其它区:
洛谷用语、定律合集 ∽ 初来洛谷必看洛谷用语、定律合集 ∽ 初来洛谷必看
OIer查询获奖记录 ∽ OIerDBOIer查询获奖记录** ∽ OIerDB**
宇宙地图 ∽ 100000 ☆宇宙地图 ∽ 100000** **☆
转载于大佬114514VFZkamVscHBWWGxPYm5CdlpGZHdjR0o1VlhsT2JWcHNTbFJXUm1GdGFEVmFRMVV4VWxkc2FrMXBWWGxOTTBwMlRXcEJlRXBVU1hwalZGbDZUWHBuYkU0d1RYaE5WRWwzVG5sVk0xRjZUbTVpVkd0M1QwUmpKVE5F��060075## 亿些有趣的网站
https://classic.minecraft.net/?join=hFtreb3PqC-DGsdN
我的世界↑
好东西来了!!- Waiting 评测:评测请求正在等待被评测机抓取
- Fetched 评测:评测请求已被评测机抓取,正 在准备开始评测
- Compiling 评测:正在编译中
- Judging 评测:编译成功,正在评测中
- Accepted 通过:程序输出完全正确
- Wrong Answer 不通过:程序输出与标准答案不一致(不包括行末空格以及文件末空行)
- Time Limit Exceeded 不通过:程序运行时间超过了题目限制
- Memory Limit Exceeded 不通过:程序运行内存空间超过了题目限制
- Runtime Error 不通过:程序运行时错误(如数组越界、被零除、运算溢出、栈溢出、无效指针等)
- Compile Error 不通过:编译失败
- System Error 错误:系统错误(如果您遇到此问题,请及时在讨论区进行反馈)
- Canceled 其他:评测被取消
- Unknown Error 其他:未知错误
- Ignored 其他:被忽略
============================================================================
- 基于 Katex 语法的数学公式支持。
- 使用
@[](/user/uid)提及用户。 - 使用
==text==高亮文本。 - 使用
设置嵌入图片的大小。 - 使用
@[video](https://.../a.mp4)嵌入视频文件。 - 使用
@[bilibili](BVxxx)嵌入站外视频。 - 使用
@[pdf](https://.../a.pdf)嵌入 PDF 文件。 - 在题目/比赛/作业/训练中,可使用
file://文件名的链接格式引用对应的附件。(推荐) - 支持使用一部分 HTML 标签。
#include<bits/stdc++.h> using namespace std; long long s; int main() { for (int i=1;i<=20110608;i++) { s++; } cout<<s/2+10055303; return 0; }#include <bits/stdc++.h> #include<windows.h> using namespace std; long long k,m,sh=20,fy=10,d,xxl=100,yxl=100,o=1000,xh,sum,xz,sb,dj,zl; long long f[9]={0,4000,2000,100,6000,15000,150000,1000000,100000000}; long long f1[9]={0,100,150,50,1000,3000,88888,666666,1000000}; char x='Y'; bool flag=true; int main() { cout<<"歹徒逃亡简易版震撼来袭!!\n"; Sleep(1000); cout<<" 作者:宣灏泽\n"; Sleep(1000); cout<<" 副编:何欣哲\n"; Sleep(1000); cout<<" 精神支持者:钱老师、姚卓成\n"; Sleep(1000); while (x=='Y') { cout<<"你要去哪?\n"; cout<<"1.商店 2.银行 3.医院 4.赌场 5.整容店 6.工地 7.军事基地 8.市政府 9.城市核心区域 10.当前状态 11.退出\n"; cin>>k; if (k==114514&&flag==true) { Sleep(1000); cout<<"恭喜发现彩蛋!奖励1000万,记得3连一下作者,过年会有好运!\n"; flag=false; o+=10000000; Sleep(1000); } if(k==11) { Sleep(400); cout<<"再见!\n"; Sleep(400); return 0; } if(k==10) { cout<<"伤害:"<<sh<<endl; Sleep(1000); cout<<"防御:"<<fy<<endl; Sleep(1000); cout<<"血量:"<<xxl<<endl; Sleep(1000); cout<<"金币:"<<o<<endl; Sleep(1000); } if(k==9) { if(m<3) { cout<<"你还没资格进入最终区域!\n"; Sleep(1000); } else { cout<<"你进入了大厦,发现一个守卫也没有。\n"; Sleep(1000); cout<<"你:'不应该呀?理当来说核心区域的戒备应该更严密,为啥连个人影也没看到?'。\n"; Sleep(1000); cout<<"忽然,你看见3名警察向你跑来。\n"; if(sh<500) { Sleep(1000); cout<<"你输了。\n"; Sleep(1000); } else { Sleep(1000); cout<<"你赢了。\n"; Sleep(1000); cout<<"这时,你看见市长走来了。\n"; Sleep(1000); cout<<"市长:'你以为我们不认得你了,错,我们早已做出来你的克隆体!'。\n"; Sleep(1000); cout<<"市长拿出了魔法棒,变成了你,向你杀来。\n"; if(sh>50000) { Sleep(1000); cout<<"你赢了,你成为了这个世界的拯救者,游戏胜利!\n"; x='N'; Sleep(1000); } else { Sleep(1000); cout<<"你输了!\n"; Sleep(1000); } } } } if(k==8) { Sleep(1000); cout<<"你看见局长带领着许多坦克向你杀来。\n"; Sleep(1000); cout<<"局长:'为了之后我们能继续压榨人民,兄弟们,给我杀了他!!!'\n"; if(sh>5000) { Sleep(1000); cout<<"你赢了!\n"; Sleep(1000); m++; } else { Sleep(1000); cout<<"你输了!\n"; Sleep(1000); } } if(k==7) { Sleep(1000); cout<<"你看见长官正在毒打他的部队,你十分生气,不由分说,与他扭打在了一起。\n"; Sleep(1000); if(sh>1000) { Sleep(1000); cout<<"你赢了"; Sleep(1000); m++; } else { Sleep(1000); cout<<"你输了"; Sleep(1000); } } if(k==6) { Sleep(1000); cout<<"你来到工地,发现员工们在烈日下埋头苦干,而厂长正在吹着空调,喝着饮料。\n"; Sleep(1000); cout<<"虽然你是歹徒,但你看不下去了,你想要与厂长谈判,他不听,便与你打了起来。\n"; if(sh>500) { Sleep(1000); cout<<"你赢了,大家都为你欢呼了起来。\n"; Sleep(1000); } else { Sleep(1000); cout<<"你输了。\n"; Sleep(1000); } } if(k==5) { Sleep(1000); cout<<"是否花1000元整容?(1 or 2)。\n"; cin>>sum; if(sum==1) { o-=1000; Sleep(1000); cout<<"整容成功!\n"; Sleep(1000); } else { Sleep(1000); cout<<"行吧。\n"; Sleep(1000); } } if(k==4) { Sleep(1000); cout<<"赌场是一个可以快速暴富的地方,请选择您要玩的项目。\n"; Sleep(1000); cout<<"1.大转盘 (概率 1%)\n"; cout<<"2.赌押金 (概率 0.5%)\n"; cout<<"3.头骰子 (概率 1.5%)\n"; cout<<"4.翻翻机 (概率 1.2%)\n"; cout<<"5.退出\n"; cin>>xz; if(xz==5) { Sleep(1000); cout<<"行吧。\n"; Sleep(1000); } else { Sleep(1000); cout<<"你要付多少元赌金?\n"; cin>>dj; o-=dj; srand(time(0)); sb=rand()%4; if (sb==1) { Sleep(1000); cout<<"你输了,赌金扣光!\n"; Sleep(1000); } if (sb==2) { Sleep(1000); cout<<"平局!\n"; o+=dj; Sleep(1000); } else { Sleep(1000); cout<<"你赢了,赌金翻倍!\n"; o+=dj*2; Sleep(1000); } } } if(k==3) { Sleep(1000); cout<<"是否花1000元进行治疗?(1 or 2)\n"; cin>>zl; if(zl==2) { Sleep(1000); cout<<"行吧。\n"; Sleep(1000); } else if (xxl<yxl) { xxl=yxl; Sleep(1000); cout<<"治疗成功!\n"; Sleep(1000); } else { Sleep(1000); cout<<"你很健康,无需治疗!\n"; Sleep(1000); } } if(k==2) { Sleep(1000); cout<<"您要干什么?\n"; Sleep(1000); cout<<"1.办物业 2.抢劫 3.\n"; cin>>d; if(d==2) { Sleep(1000); cout<<"老板:'来人啊,有人抢劫啊!'\n"; Sleep(1000); cout<<"你看见三名警察向你冲来。\n"; if(sh>150) { Sleep(1000); cout<<"你赢了,抢到了1000元,伤害加十,血量加十。\n"; sh+=10; o+=1000; yxl+=10; xxl+=10; Sleep(1000); } else { Sleep(1000); cout<<"你输了。\n"; Sleep(1000); } } else { Sleep(1000); cout<<"你要办什么物业?\n"; Sleep(1000); cout<<"金额10万元 \n"; Sleep(1000); } } if(k==1) { Sleep(1000); cout<<"老板:'请问你要买什么?'。\n"; Sleep(1000); cout<<"1.青龙偃月刀 伤害100 4000元\n"; cout<<"2.水火之盾 防御150 2000元\n"; cout<<"3.手雷 伤害50 100元\n"; cout<<"4.诸葛连弩 伤害1000 6000元\n"; cout<<"5.雌雄双股剑 伤害3000 15000元\n"; cout<<"6.聚能脉冲跑 伤害88888 150000元\n"; cout<<"7.伪.星月神弓 伤害666666 1000000元\n"; cout<<"8.神.创世之刃 伤害1000000 100000000元\n"; cout<<"0.退出\n"; cin>>xh; if(xh!=0&&o>=f[xh]) { o-=f[xh]; if(xh!=2) sh+=f1[xh]; else fy+=f1[2]; Sleep(1000); cout<<"你成功买下来了!\n"; Sleep(1000); } if(o<f[xh]) { Sleep(1000); cout<<"你的钱不够!\n"; Sleep(1000); } } } return 0; }原创: 孙锃宇
#include <bits/stdc++.h> #include <windows.h> #include <conio.h> using namespace std; int m,n,countm,countn,sum,MAX,x,ss,p,hs,M; char c,s,h; int main() { srand(time(0)); countm=countn=sum=0; cout<<"剪刀石头布游戏开始!!!"<<endl; while(1){ Sleep(1000); system ("cls"); cout<<"请选择模式:1.人机对决 2.双人对决\n"; cin>>M; if(M!=1&&M!=2)continue; else break; } if(M==1){ Sleep(1000); system ("cls"); while(1) { cout<<"请你指定局数,1局~20局"<<endl; cin>>MAX; Sleep(1000); system ("cls"); if(MAX>=1&&MAX<=20)break; else cout<<"请输入1~20!"<<endl; Sleep(1000); system ("cls"); } for(int i=0;i<MAX;i++){ m=rand()%3+1; Sleep(1000); system ("cls"); cout<<"请你出招"<<endl; cout<<"1.剪刀2.石头3.布"<<endl; cin>>n; if(n<1||n>3) cout<<"请输入1~3,此局无效!"<<endl; else { Sleep(1000); system ("cls"); switch(m-n) { case -2: case 1:cout<<"计算机赢!"<<endl;countm++;break; case 0:cout<<"平局!"<<endl;sum++;break; default:cout<<"你赢!"<<endl;countn++;break; } } } cout<<endl<<"计算机赢了"<<countm<<"局"<<endl; cout<<"你赢了"<<countn<<"局"<<endl; cout<<"平局了"<<sum<<"局"<<endl; if(countm>countn)cout<<"Winer:计算机!"; else if(countm<countn)cout<<"Winer:你!"; else cout<<"平局,No winer!"; } else if(M==2){ Sleep(1000); system ("cls"); cout<<"请猜奇偶数来决定谁先输入\n"; Sleep(1000); cout<<"决定好请按o\n"; while(1){ c= _getch(); if(c=='o'){ system("cls"); srand(time(0)); x=rand(); if(x%2==1)cout<<"猜奇数者为先手\n"; else cout<<"猜偶数者为先手\n"; break; } else { system("cls"); cout<<"决定好请按o!!!\n"; Sleep(1000); system("cls"); continue; } } Sleep(3000); system("cls"); cout<<"请先手指定局数,最多20局\n"; cin>>n; while(n<1||n>20) { system("cls"); system("color 0C"); cout<<"1~20局!!!"; Sleep(1000); system("cls"); system("color 07"); cin>>n; } for(int i=1;i<=n;i++) { Sleep(1000); system ("cls"); if(i>1)cout<<"请先后手交换!\n"; Sleep(1000); system ("cls"); cout<<"请先手输入\n"; cout<<"j.剪刀、s.石头、b.布\n"; while(1) { s=_getch(); if(s=='j'||s=='s'||s=='b') { system("cls"); break; } else cout<<"j.剪刀、s.石头、b.布\n"; } cout<<"请后手输入,先手离开\n"; cout<<"j.剪刀、s.石头、b.布\n"; while(1){ h=_getch(); if(h=='j'||h=='s'||h=='b'){ system("cls"); break; } else cout<<"j.剪刀、s.石头、b.布\n"; } cout<<"正在加载结果."; Sleep(1000); cout<<"."; Sleep(1000); cout<<"."; Sleep(1000); system("cls"); switch(s-h){ case 8: case 9: case -17: cout<<"先手获胜!!!\n"; ss++; break; case 0: cout<<"平局!!!\n"; p++; break; default : cout<<"后手获胜!!!\n"; hs++; break; } } } }原创:杨哲宇
#include<iostream> #include<windows.h> #include<vector> #include<ctime> using namespace std; short win,x,y,what,his,a[6]={5,-1,1,0,2,1}; bool I,he; string s[6]={"大招","充能","单枪","盾","双枪","二级盾"}; void print(string s){short len=s.size();for(short i=0;i<len;i++){cout<<s[i];Sleep(25);}} void look(){Sleep(1000);system("cls");} void start(){system("mode con cols=28 lines=10");system("color 0E");} void wl(bool q){ system("mode con cols=18 lines=11"); cout<<"\n\n\n\n "; if(q){system("color 4F"); cout<<" WIN";} else{system("color 7F");cout<<"GAME OVER";} cout<<endl; look(); start(); } int main() { srand(time(0)); CONSOLE_CURSOR_INFO info={1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&info); start(); while(true){ I=he=true; x=y=0; while(I&&he){ printf("我的能量:%d \t对方能量:%d\n",x,y); for(short j=0;j<6;j++) if(a[j]<=x)cout<<j<<':'<<s[j]<<" 消耗"<<a[j]<<"能量"<<endl; cout<<"选一项:";cin>>what; if(x<a[what]||what>5){cout<<"你配吗?能量自爆!";I=0;look();break;} if(y==5)his=0; else if(y==0&&x==0)his=1; else{ vector<short> h; h.push_back(1); h.push_back(3); if(y>=1) h.push_back(2),h.push_back(5); if(y>=2) h.push_back(4); his=h[rand()%h.size()]; } x-=a[what]; y-=a[his]; cout<<"你用了"<<s[what]<<"对方用了"<<s[his]; if(what!=his){ cout<<endl; if(what==0)he=false; else if(his==0)I=false; else if(what==4&&his!=5)he=false; else if(his==4&&what!=5)I=false; else if(what==2&&his==1)he=false; else if(his==2&&what==1)I=false; } look(); } if(!he){wl(1);win++;} if(!I)wl(0); } }原创:杨哲宇 塔防1.2
#include <iostream> #include <windows.h> #include <string> #include <conio.h> #include <algorithm> #include <time.h> #define S(c) system(c); #define Set(c) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|(c)) #define R FOREGROUND_RED #define B FOREGROUND_BLUE #define G FOREGROUND_GREEN using namespace std; const short L=10,C=40; HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO info={1,0}; COORD pos={0,0}; string a[L]; short T,x=4,g[L]={6,6,6,6,6,6,6,6,6,6}; void cp(short a,string s) { switch (a) { case 0: Set(R|B|G); break; case 1: Set(R|B); break; case 2: Set(B); break; case 3: Set(B|G); break; case 4: Set(G); break; case 5: Set(R|G); break; case 6: Set(R); break; } cout<<s; } bool Game() { int s=0; for (short i=0;i<L;i++) if (g[i]>1) {s++; if (s>=3) return true;} return false; } int main() { SetConsoleCursorInfo(H,&info); S("color F0"); cout<<"\n\t\t\t\t\t游戏规则:\n"; cout<<"\t 保护所有行的生命值(右侧敌人 ),避免70%生命的命值归 0。"; cout<<"\n\t 使用↑和↓控制<在10行之间切换,选中你要操作的行。"; cout<<"\n\t 选中目标行后,按空格攻击,会攻击该行最右侧的敌人"; cout<<"\n\t 敌人开始,降低其强度(颜色变浅),直到敌人消失。"; cout<<"\n\t 当敌人到每行最右边时,会根据敌人强度削减对应行的生命值。\n\t\t"; S("pause"); S("mode con cols=87 lines=11"); S("color 0F"); for (int i=0;i<L;i++) for (int j=0;j<C;j++) a[i]=a[i]+"0"; time_t start=time(NULL); srand(start); while (Game()) { SetConsoleCursorPosition(H,pos); time_t t=time(NULL); T++; cp(3," "); cout<<" 第 "<<t-start<<" 秒 \t\t\t 敌人生命值对应的颜色:"; for (short i=6;i;i--) cp(i," "),cout<<i<<' '; if (T==20) { T=0; short BX=rand()%L,BB=rand()%6+1; if (g[BX]&&a[BX][0]<'7') a[BX][0]=min(char(a[BX][0]+BB),'6'); } for (short i=0;i<L;i++) { cout<<endl; for (short j=0;j<C;j++) if (a[i][j]>'0') cp(a[i][j]-'0',"●"); else cp(0," "); if (i==x) cp(0,"<"); else cp(0," "); if (g[i]) {cp(7-g[i],"| ("); cout<<g[i]<<')';} } for (short i=0;i<L;i++) { if (a[i][C-1]>'0') g[i]=max(0,g[i]-a[i][C-1]+'0'); a[i]="0"+a[i].erase(C-1,1); } if (_kbhit()) { char k=_getch(); if (k==72&&x>0) x--; if (k==80&&x<L-1) x++; if (k==' ') { for (short i=C-1;i>=0;i--) if (a[x][i]>'0') {a[x][i]--; break;} } } else Sleep(42); } S("cls"); Set(R); cout<<"\n\n\n\t\t游戏结束\n\t 成绩:"<<(time(NULL)-start)*1.000000<<"秒"; }原创:杨哲宇 塔防1.6
#include <iostream> #include <windows.h> #include <string> #include <conio.h> #include <algorithm> #include <time.h> #define S(c) system(c); #define Set(c) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|(c)) #define R FOREGROUND_RED #define B FOREGROUND_BLUE #define G FOREGROUND_GREEN using namespace std; const short L=10,C=40; HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO info={1,0}; string a[L]; short T,d=250,x=4,g[L]={6,6,6,6,6,6,6,6,6,6}; void pos(int x,int y) {COORD Pos={x,y}; SetConsoleCursorPosition(H,Pos);} void cp(short a,string s) { switch (a) { case 0: Set(R|B|G); break; case 1: Set(R|B); break; case 2: Set(B); break; case 3: Set(B|G); break; case 4: Set(G); break; case 5: Set(R|G); break; case 6: Set(R); break; } cout<<s; } bool Game() { int s=0; for (short i=0;i<L;i++) if (g[i]>1) {s++; if (s>=3) return true;} return false; } int main() { SetConsoleCursorInfo(H,&info); S("color F0"); cout<<"\n\t\t\t\t\t游戏规则:\n"; cout<<"\t 保护所有行的生命值(右侧敌人 ),避免70%生命的命值归 0。"; cout<<"\n\t 使用↑和↓控制<在10行之间切换,选中你要操作的行。"; cout<<"\n\t 选中目标行后,按空格攻击,会攻击该行最右侧的敌人"; cout<<"\n\t 敌人开始,降低其强度(颜色变浅),直到敌人消失。"; cout<<"\n\t 当敌人到每行最右边时,会根据敌人强度削减对应行的生命值。"; cout<<"\n\t 共250发子弹,节约使用。Q键暂停,任意键继续\n\t\t"; S("pause"); S("mode con cols=87 lines=12"); S("color 0F"); for (int i=0;i<L;i++) for (int j=0;j<C;j++) a[i]=a[i]+"0"; time_t start=time(NULL); srand(start); while (Game()) { pos(0,0); time_t t=time(NULL); T++; cp(3," "); cout<<" 第 "<<t-start<<" 秒 \t子弹:"<<d<<"发\t\t\t 危险值对应的颜色:"; for (short i=6;i;i--) cp(i," "),cout<<i<<' '; if (T==20) { T=0; short BX=rand()%L; if (g[BX]) a[BX][0]+=rand()%6+1; } for (short i=0;i<L;i++) { cout<<endl; for (short j=0;j<C;j++) if (a[i][j]>'0') cp(a[i][j]-'0',"●"); else cp(0," "); if (i==x) cp(0,"<"); else cp(0," "); if (g[i]>0) {cp(7-g[i],"| ("); cout<<g[i]<<')';} else cp(6,"| ( )"); } for (short i=0;i<L;i++) { if (a[i][C-1]>'0') g[i]-=(a[i][C-1]-'0'); a[i]="0"+a[i].erase(C-1,1); } if (_kbhit()) { char k=_getch(); if (k==72&&x>0) x--; if (k==80&&x<L-1) x++; if (k=='Q'||k=='q') { S("cls"); S("pause"); } if (k==' '&&d>0) { d--; for (int i=C*2-2;i>=0;i--) pos(i,x+1),cp(6,"--"); for (short i=C-1;i>=0;i--) if (a[x][i]>'0') {a[x][i]--; break;} } } else Sleep(42); } S("cls"); Set(R); cout<<"\n\n\n\t\t游戏结束\n\t 成绩:"<<(time(NULL)-start)*1.0<<"秒"; }原创:杨哲宇 但经孙锃宇改进的华容道
#include<bits/stdc++.h> #include<windows.h> #include<stdlib.h> #include<conio.h> using namespace std; void setpos(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } class HUARONG { private: int index; int* array; public: HUARONG(int n) { index = n; array = new int [index * index]; for (int i = 0; i < index * index; i++) { array[i] = i; } for (int i = 0; i < index * index; i++) { int x = array[i]; int pos = rand() % (n * n); array[i] = array[pos]; array[pos] = x; } } void print() { system ("cls"); for (int i = 0; i < index * index; i++) { if (array[i] == 0) { cout.width(4); cout<<" "; } else { cout.width(4); cout << array[i]; } if (i % index == index - 1&&i<index*index-1) { cout << endl; } } } bool isCorrect(){ for (int i = 0; i < index * index - 1; i++) { if (array[i] != i + 1) { return false; } } return true; } void play() { print(); while (isCorrect() != true) { move(); print(); } setpos(index*4-2,index-1); cout<<' '; cout <<index*index<< "\n 成功!"; } void move() { char a; do { cout << "\n请按移动方向↑(w)↓(s)←(a)→(d)\n"; a=_getch(); } while (!((a == 's' && (whereBlank() - index) >= 0) || (a == 'w' && (whereBlank() + index) < index * index) || (a == 'd' && (whereBlank() - 1) >= 0 && whereBlank() % index != 0) || (a == 'a' && (whereBlank() + 1) < index * index && (whereBlank() + 1) % index != 0))); if (a == 'w') { int pos = whereBlank(); int x = array[pos]; array[pos] = array[pos + index]; array[pos + index] = x; } else if (a == 's') { int pos = whereBlank(); int x = array[pos]; array[pos] = array[pos - index]; array[pos - index] = x; } else if (a == 'a') { int pos = whereBlank(); int x = array[pos]; array[pos] = array[pos + 1]; array[pos + 1] = x; } else if (a == 'd') { int pos = whereBlank(); int x = array[pos]; array[pos] = array[pos - 1]; array[pos - 1] = x; } } int whereBlank() { for (int i = 0; i < index * index; i++) { if (array[i] == 0 ) { return i; } } } }; int main() { int n; cout << "请输入华容道的阶数:"; cin >> n; HUARONG a(n); a.play(); } -
通过的题目
-
最近活动
This person is lazy and didn't join any contests or homework. -
最近编写的题解
This person is lazy and didn't write any solutions.