• 个人简介

    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

    2048 ∽ 标准版2048标准版

    2048 ∽ OI版2048 ∽ OI

    2048 ∽ 朝代版2048朝代版

    名字竞技场 ∽ 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

    Copy

    Copy

    我的世界↑

    好东西来了!!

    • 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== 高亮文本。
    • 使用 ![alt](url =100x100) 设置嵌入图片的大小。
    • 使用 @[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;
    }
    

    Copy

    Copy

    #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();
    }
    

    高稳定性的MC1.8 网页版更新1.12.2了! 1.12.2

  • 通过的题目

  • 最近活动

    This person is lazy and didn't join any contests or homework.
  • 最近编写的题解

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