多彩逗比1.0发布!

Crab_Dave

2019-07-18 18:51:13

Personal

Crab_Dave历时1个月(2019.6.18-2019.7.18),终于完成了第五个点子(前四个以后会重制,因为半年前技术不好(那时Crab_Dave刚开始编游戏))! 游戏原型:急速变色龙 2019.7.21:做了一点小优化 代码如下: ```cpp #include<bits/stdc++.h> #include<conio.h> #include<windows.h> using namespace std; int m[11][100050]= { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,106,0,107,0,108,0,109,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,101,0,102,103,0,104,105,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; int score=0,speed=1,jump=0,yan=11,t=0,x=1,y=1,cnt=0,my=4,th=0,yq=0,aj=0,cz=0,xx=0,hscore=0,ww=0,win=0,level=0; bool up=0,down=0; int mouse; bool Pass[5]={0,0,0,0,0}; POINT Windowpos() { POINT pt; GetCursorPos(&pt); HWND h=GetForegroundWindow(); ScreenToClient(h,&pt); pt.x/=8;pt.y/=16; return pt; } void color(int a) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); } void Display(char *p,int speed,int co) { for(int i=1;*p;i++) { if(co==0) color(15); if(co==1) color(14); if(co==2) color(10); if(co==3) color(11); if(co==4) color(13); if(co==5) { switch(rand()%4+1) { case 1:color(10);break; case 2:color(11);break; case 3:color(13);break; case 4:color(14);break; } } if(*p) printf("%c",*p++); Sleep(speed); } } void Go(int x,int y) //光标移动函数,X表示横坐标,Y表示纵坐标。 { COORD coord; //使用头文件自带的坐标结构 coord.X=y; //这里将int类型值传给short,不过程序中涉及的坐标值均不会超过short范围 coord.Y=x; HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出句柄 SetConsoleCursorPosition(a,coord); //以标准输出的句柄为参数设置控制台光标坐标 } void Print(int i,int j) { if(i==x&&j==y) color(yan),printf("●"),color(15); else if(m[i][j]==1) color(15),printf("■"),color(15); else if(m[i][j]==11) color(11),printf("■"),color(15); else if(m[i][j]==13) color(13),printf("■"),color(15); else if(m[i][j]==10) color(10),printf("■"),color(15); else if(m[i][j]==0) color(0),printf(" "),color(15); else if(m[i][j]==101) color(14),printf("by"),color(15); else if(m[i][j]==102) color(14),printf("Cr"),color(15); else if(m[i][j]==103) color(14),printf("ab"),color(15); else if(m[i][j]==104) color(14),printf("Da"),color(15); else if(m[i][j]==105) color(14),printf("ve"),color(15); else if(m[i][j]==106) color(10),printf("多"),color(15); else if(m[i][j]==107) color(11),printf("彩"),color(15); else if(m[i][j]==108) color(12),printf("逗"),color(15); else if(m[i][j]==109) color(13),printf("比"),color(15); else if(m[i][j]==201) color(14),printf("★"),color(15); else if(m[i][j]==202) color(14),printf("★"),color(15); else if(m[i][j]==203) color(14),printf("★"),color(15); else if(m[i][j]==204) color(14),printf("★"),color(15); else if(m[i][j]==205) color(14),printf("★"),color(15); else if(m[i][j]==206) color(14),printf("★"),color(15); else if(m[i][j]==207) color(14),printf("★"),color(15); } void New(int a) { srand(rand()*rand()); if(level==1) { while(a<=100030) { int b=rand()%10+1,c=rand()%5+3,h=rand()%5,f=rand()%10,d=rand()%50,e=rand()%30; for(register int j=a;j<=a+c;j++) { for(int i=1;i<=10;i++) m[i][j]=0; m[0][j]=1; if(!h)//地面二层 for(register int i=6;i<=6;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } if(!f)//地面三层 for(register int i=3;i<=3;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } for(register int i=9;i<=10;i++)//地面一层 { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } } if(c==7&&!d)//by Crab Dave { m[10][a]=101; m[10][a+1]=0; m[10][a+2]=102; m[10][a+3]=103; m[10][a+4]=0; m[10][a+5]=104; m[10][a+6]=105; } if(!e)//星星 { m[1][a]=201+rand()%6; } a+=c; } } else if(level==2) { while(a<=100030) { int b=rand()%10+1,c=rand()%5+3,h=rand()%5,f=rand()%10,d=rand()%50,e=rand()%30; for(register int j=a;j<=a+c;j++) { for(int i=1;i<=10;i++) m[i][j]=0; m[0][j]=1; if(!h)//地面二层 for(register int i=6;i<=6;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } if(!f)//地面三层 for(register int i=3;i<=3;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } for(register int i=9;i<=10;i++)//地面一层 { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==10&&c==3)m[i][j]=0; else if(b==6||b==7||b==8||b==10)m[i][j]=1; } int w=rand()%50; if(!w)//墙 { for(int i=1;i<=10;i++) m[i][j]=1; int en1=rand()%7+1,en2=rand()%7+1,en3=rand()%7+1; m[en1][j]=m[en2][j]=m[en1][j-1]=m[en2][j-1]=m[en3][j]=m[en3][j-1]=m[en1][j+1]=m[en2][j+1]=m[en3][j+1]=0; } } if(c==7&&!d)//by Crab Dave { m[10][a]=101; m[10][a+1]=0; m[10][a+2]=102; m[10][a+3]=103; m[10][a+4]=0; m[10][a+5]=104; m[10][a+6]=105; } if(!e)//星星 { m[1][a]=201+rand()%6; } a+=c; } } else if(level==3) { while(a<=100030) { int b=rand()%10+1,c=rand()%5+3,h=rand()%5,f=rand()%10,d=rand()%50,e=rand()%30; for(register int j=a;j<=a+c;j++) { for(int i=1;i<=10;i++) m[i][j]=0; m[0][j]=1; if(!h)//地面二层 for(register int i=6;i<=6;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } if(!f)//地面三层 for(register int i=3;i<=3;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } for(register int i=9;i<=10;i++)//地面一层 { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } int w=rand()%40; if(!w)//墙 { for(int i=1;i<=10;i++) m[i][j]=1; int en1=rand()%7+1,en2=rand()%7+1,en3=rand()%7+1; m[en1][j]=m[en2][j]=m[en1][j-1]=m[en2][j-1]=m[en3][j]=m[en3][j-1]=m[en1][j+1]=m[en2][j+1]=m[en3][j+1]=0; } } if(c==7&&!d)//by Crab Dave { m[10][a]=101; m[10][a+1]=0; m[10][a+2]=102; m[10][a+3]=103; m[10][a+4]=0; m[10][a+5]=104; m[10][a+6]=105; } if(!e)//星星 { m[1][a]=201+rand()%6; } a+=c; } } else if(level==4) { while(a<=100030) { int b=rand()%10+1,c=rand()%5+3,h=rand()%5,f=rand()%10,d=rand()%50,e=rand()%30; for(register int j=a;j<=a+c;j++) { for(int i=1;i<=10;i++) m[i][j]=0; m[0][j]=1; if(!h)//地面二层 for(register int i=6;i<=6;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } if(!f)//地面三层 for(register int i=3;i<=3;i++) { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } for(register int i=9;i<=10;i++)//地面一层 { if(b==3||b==2||b==1)m[i][j]=11; else if(b==4||b==5||b==9)m[i][j]=13; else if(b==6||b==7)m[i][j]=10; else if(b==10&&c==3)m[i][j]=0; else if(b==8||b==10)m[i][j]=1; } int w=rand()%30; if(!w)//墙 { for(int i=1;i<=10;i++) m[i][j]=1; int en1=rand()%7+1,en2=rand()%7+1,en3=rand()%7+1; m[en1][j]=m[en2][j]=m[en1][j-1]=m[en2][j-1]=m[en3][j]=m[en3][j-1]=m[en1][j+1]=m[en2][j+1]=m[en3][j+1]=0; } } if(c==7&&!d)//by Crab Dave { m[10][a]=101; m[10][a+1]=0; m[10][a+2]=102; m[10][a+3]=103; m[10][a+4]=0; m[10][a+5]=104; m[10][a+6]=105; } if(!e)//星星 { m[1][a]=204+rand()%3; } a+=c; } } m[8][21]=rand()%7+201; // m[8][21]=203;m[8][122]=203;m[8][223]=203;m[8][324]=203;m[8][425]=203;m[8][526]=203;m[8][627]=203;m[8][728]=203;m[8][829]=203;m[8][930]=203; } void FuHuo() { speed=1,jump=0,yan=11,t=0,x=1,cnt=0,my=4,th=0,yq=0,aj=0,cz=0,xx=0,ww=0,win=0; y+=2; int a=score/100+1; y=score+1; while(score) { Go(2,0); for(register int i=1;i<=a;i++) if(y>1) y--; for(register int i=1;i<=a;i++) if(score) score--; for(register int i=1;i<=10;i++) { for(register int j=score;j<score+20;j++) Print(i,j); printf("\n"); } Go(0,0);color(15); printf("Score %d ",score); color(15); } New(score+20); Sleep(1000); Go(0,0);color(yan); printf("Score "); Go(1,0);color(yan); printf("Highest Score "); color(15); int b=rand()%10; if(!b) { Go(x+2,(y-score)*2); Display("隐藏特效:吸星大法!",100,5); Sleep(300); Go(x+2,(y-score)*2); printf(" "); xx=1; } } void Start() { Go(2,0); for(register int i=1;i<=10;i++) { for(register int j=score;j<score+20;j++) Print(i,j); printf("\n"); } Sleep(400); Go(1,4); Display("欢迎来到多彩逗比v1.0ヽ( ̄▽ ̄)↗",125,5); Sleep(300); Go(2,4); Display("这里是教程关卡,是否跳过Y/N",100,0); Sleep(100); char g=_getch(); if(g=='Y'||g=='y')return; system("cls"); Go(0,0); Display("1.白色块■:万能块,随便走\n",25,0); Sleep(150); Display("2.彩色块■:踩在不同色块上无法前进,跳起来或变色是不错的选择\n",25,5); Sleep(150); Display("3.宝箱块★:打开有惊喜!\n",25,1); Sleep(150); Display("4.“↑”键跳跃,越跑越能跳~\n",25,5); Sleep(150); Display("5.“↓”键变色,咦我怎么变色了?!\n",25,5); Sleep(150); Display("6.Space键暂停,Enter键回主页!\n",25,5); Sleep(150); Display("7.1000分后进入无尽模式!\n",25,5); Sleep(150); Display("\n-=≡ヘ( ·ω·)ノ准备好了吗,出发!\n",50,5); Sleep(150); system("color 08"); system("color 19"); system("color 2A"); system("color 3B"); system("color 4C"); system("color 5E"); system("color 6F"); system("color 0F"); system("color 08"); system("color 19"); system("color 2A"); system("color 3B"); system("color 4C"); system("color 5E"); system("color 6F"); system("color 0F"); system("color 08"); system("color 19"); system("color 2A"); system("color 3B"); system("color 4C"); system("color 5E"); system("color 6F"); system("color 0F"); system("cls"); } int main() { srand(unsigned(time(NULL))); ios::sync_with_stdio(false); CONSOLE_CURSOR_INFO cursor_info={1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); system("mode con cols=41 lines=13"); system("cls"); Start(); x: system("cls"); printf("请选择模式:\n"); color(7); printf("┏━━━━┓ ┏━━━━┓ ╔═╗\n"); printf("┃一般模式┃ ┃正常模式┃ ║作║\n"); printf("┗━━━━┛ ┗━━━━┛ ║者║\n"); printf("┏━━━━┓ ┏━━━━┓ ║博║\n"); printf("┃困难模式┃ ┃地狱模式┃ ║客║\n"); printf("┗━━━━┛ ┗━━━━┛ ╚═╝\n"); printf("┏━━━━━━━━━━━━━━━┓\n"); printf("┃更多模式即将出品 (o゜▽゜)o☆┃\n"); printf("┗━━━━━━━━━━━━━━━┛\n"); color(10); printf("这里用鼠标选择~\n"); while(1) { Sleep(10); mouse=GetAsyncKeyState(VK_LBUTTON)&0x8000; POINT pt=Windowpos(); if(pt.x>=28&&pt.x<=33&&pt.y>=1&&pt.y<=6) { color(14); Go(1,28); printf("╔═╗"); Go(2,28); printf("║作║"); Go(3,28); printf("║者║"); Go(4,28); printf("║博║"); Go(5,28); printf("║客║"); Go(6,28); printf("╚═╝"); if(mouse) { HWND hWnd=FindWindow("ConsoleWindowClass",NULL); ShowWindow(hWnd,SW_HIDE); system("start https://www.luogu.org/blog/Crab-Dave233/"); return 0; } } else { color(10); Go(1,28); printf("╔═╗"); Go(2,28); printf("║作║"); Go(3,28); printf("║者║"); Go(4,28); printf("║博║"); Go(5,28); printf("║客║"); Go(6,28); printf("╚═╝"); } if(pt.x>=0&&pt.x<=11&&pt.y>=1&&pt.y<=3) { if(Pass[1])color(14); else color(15); Go(1,0); printf("┏━━━━┓"); Go(2,0); printf("┃一般模式┃"); Go(3,0); printf("┗━━━━┛"); if(mouse) { level=1; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); break; } } else { if(Pass[1])color(2); else color(7); Go(1,0); printf("┏━━━━┓"); Go(2,0); printf("┃一般模式┃"); Go(3,0); printf("┗━━━━┛"); } if(pt.x>=14&&pt.x<=25&&pt.y>=1&&pt.y<=3) { if(Pass[2])color(14); else color(15); Go(1,14); printf("┏━━━━┓"); Go(2,14); printf("┃正常模式┃"); Go(3,14); printf("┗━━━━┛"); if(mouse) { level=2; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); break; } } else { if(Pass[2])color(2); else color(7); Go(1,14); printf("┏━━━━┓"); Go(2,14); printf("┃正常模式┃"); Go(3,14); printf("┗━━━━┛"); } if(pt.x>=0&&pt.x<=11&&pt.y>=4&&pt.y<=6) { if(Pass[3])color(14); else color(15); Go(4,0); printf("┏━━━━┓"); Go(5,0); printf("┃困难模式┃"); Go(6,0); printf("┗━━━━┛"); if(mouse) { level=3; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); break; } } else { if(Pass[3])color(2); else color(7); Go(4,0); printf("┏━━━━┓"); Go(5,0); printf("┃困难模式┃"); Go(6,0); printf("┗━━━━┛"); } if(pt.x>=14&&pt.x<=25&&pt.y>=4&&pt.y<=6) { if(Pass[4])color(14); else color(15); Go(4,14); printf("┏━━━━┓"); Go(5,14); printf("┃地狱模式┃"); Go(6,14); printf("┗━━━━┛"); if(mouse) { level=4; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); break; } } else { if(Pass[4])color(2); else color(7); Go(4,14); printf("┏━━━━┓"); Go(5,14); printf("┃地狱模式┃"); Go(6,14); printf("┗━━━━┛"); } } system("cls"); Go(0,0);color(yan); printf("Score "); Go(1,0);color(yan); printf("Highest Score "); color(15); New(score+20); int b=rand()%10; if(!b) { Go(x+2,(y-score)*2); Display("隐藏特效:吸星大法!",100,5); Sleep(300); Go(x+2,(y-score)*2); printf(" "); xx=1; } while(1) { if(t==(42-speed)*450000) { if(score>=1000&&win==0) { Go(5,15); printf("You Win!"); system("color 0E"); Sleep(2000); system("color 0F"); win=1; Go(5,10); Display("现在开启无尽模式",75,5); Pass[level]=1; Sleep(300); } if(x<0||x>9||y<score) { Go(5,15); system("color 7F"); color(0x7c); printf("You Die!"); Sleep(2000); system("color 0F"); FuHuo(); } if(m[x+1][y]==1||m[x+1][y]==11||m[x+1][y]==13||m[x+1][y]==10) cnt=0; if(xx) for(register int i=1;i<=10;i++) for(register int j=score;j<score+20;j++) if(m[i][j]>200&&x!=i) m[x][j]=m[i][j],m[i][j]=0; if(m[x][y+1]>=201) { if(m[x][y+1]==201) { Go(x,(y-score)*2+4); color(14); printf("突进!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); my+=3; if(my>=20) my=19; } else if(m[x][y+1]==202) { Go(x,(y-score)*2+4); color(14); printf("同化!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); th+=100; } else if(m[x][y+1]==203) { Go(x,(y-score)*2+4); color(14); printf("正向跃迁!"); color(15); Sleep(500); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score+=100; y+=100; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x][y+1]==204) { Go(x,(y-score)*2+4); color(12); printf("反向跃迁···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score-=100; if(score<=0)score=0; y-=100; if(y<=0)y=0; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x][y+1]==205) { Go(x,(y-score)*2+4); if(aj) { color(14); printf("按键正常!"); color(15); } else { color(12); printf("按键紊乱···"); color(15); } Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); aj=!aj; } else if(m[x][y+1]==206) { Go(x,(y-score)*2+4); color(12); printf("超重···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); cz=100; } else if(m[x][y+1]==207) { Go(x,(y-score)*2+4); color(14); printf("无畏!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x][y+1]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); ww=101; } } if(m[x+1][y]>=201) { if(m[x+1][y]==201) { Go(x,(y-score)*2+4); color(14); printf("突进!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); my+=3; if(my>=20) my=19; } else if(m[x+1][y]==202) { Go(x,(y-score)*2+4); color(14); printf("同化!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); th+=100; } else if(m[x+1][y]==203) { Go(x,(y-score)*2+4); color(14); printf("正向跃迁!"); color(15); Sleep(500); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score+=100; y+=100; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x+1][y]==204) { Go(x,(y-score)*2+4); color(12); printf("反向跃迁···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score-=100; if(score<=0)score=0; y-=100; if(y<=0)y=0; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x+1][y]==205) { Go(x,(y-score)*2+4); if(aj) { color(14); printf("按键正常!"); color(15); } else { color(12); printf("按键紊乱···"); color(15); } Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); aj=!aj; } else if(m[x+1][y]==206) { Go(x,(y-score)*2+4); color(12); printf("超重···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); cz=100; } else if(m[x+1][y]==207) { Go(x,(y-score)*2+4); color(14); printf("无畏!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x+1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); ww=101; } } if(m[x-1][y]>=201) { if(m[x-1][y]==201) { Go(x,(y-score)*2+4); color(14); printf("突进!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); my+=3; if(my>=20) my=19; } else if(m[x-1][y]==202) { Go(x,(y-score)*2+4); color(14); printf("同化!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); th+=100; } else if(m[x-1][y]==203) { Go(x,(y-score)*2+4); color(14); printf("正向跃迁!"); color(15); Sleep(500); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score+=100; y+=100; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x-1][y]==204) { Go(x,(y-score)*2+4); color(12); printf("反向跃迁···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); score-=100; if(score<=0)score=0; y-=100; if(y<=0)y=0; m[9][y]=1; m[9][y+1]=1; m[9][y+2]=1; m[9][y+3]=1; m[9][y+4]=1; yq=1; } else if(m[x-1][y]==205) { Go(x,(y-score)*2+4); if(aj) { color(14); printf("按键正常!"); color(15); } else { color(12); printf("按键紊乱···"); color(15); } Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); aj=!aj; } else if(m[x-1][y]==206) { Go(x,(y-score)*2+4); color(12); printf("超重···"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); cz=100; } else if(m[x-1][y]==207) { Go(x,(y-score)*2+4); color(14); printf("无畏!"); color(15); Sleep(1000); Go(x,(y-score)*2+4); printf(" "); m[x-1][y]=0; system("color 18"); system("color 29"); system("color 3A"); system("color 4B"); system("color 5C"); system("color 6E"); system("color 7F"); system("color 0F"); ww=101; } } if(th>0) { for(register int i=1;i<=10;i++) if((m[i][y]>=1&&m[i][y]<=15)&&m[i][y]!=yan) m[i][y]=yan; th--; } if(cz>0) { if(cz%2==0) if(m[x+1][y+1]!=0)m[x+2][y]=m[x+1][y],m[x+1][y]=0,x++; cz--; } ww--; if(((m[x+1][y]==yan||m[x+1][y]==1||m[x+1][y]==0||(m[x+1][y]>100&&m[x+1][y]<200))&&m[x][y+1]==0)||ww>0||(m[x][y+1]>100&&m[x][y+1]<200))y++; if(((m[x+1][y]==yan||m[x+1][y]==1||m[x+1][y]==0)&&m[x][y+1]==0&&y<score+my))y++; if(jump>0) { if((m[x-1][y]==0||(m[x-1][y]>=101&&m[x-1][y]<=109))||(ww>0&&x>1)) x--,jump--; else jump--; } if(jump==0&&(m[x+1][y]==0||(m[x+1][y]>=101&&m[x+1][y]<=109)))x++; Go(2,0); for(register int i=1;i<=10;i++) { for(register int j=score;j<score+20;j++) Print(i,j); printf("\n"); } score++; if(speed<41&&score>=speed*50)speed++; Go(0,0);color(yan);printf("Score %d ",score);color(15); Go(1,0);color(yan);printf("Highest Score %d ",hscore=max(score,hscore));color(15); if(yq) Sleep(1000),yq=0; t=0; if(_kbhit()) { char g=_getch(); if(g==' ')Go(x,(y-score)*2),color(yan),system("pause"),Go(x,(y-score)*2),color(15),printf(" "); if(aj) { int a=rand()%10; if(!a) { if(g==72)g=80; else if(g==80)g=72; } } if(g==72)if(jump==0&&cnt<score/500+2)x--,jump=4,cnt++; if(g==80) { if(level==1||level==2) { if(yan==11)yan=13; else if(yan==13)yan=11; } if(level==3||level==4) { if(yan==10)yan=11; else if(yan==11)yan=13; else if(yan==13)yan=10; } } if(g==13) { score=0,speed=1,jump=0,yan=11,t=0,x=1,y=1,cnt=0,my=4,th=0,yq=0,aj=0,cz=0,xx=0,hscore=0,ww=0,win=0; goto x; } } } t++; } return 0; } ``` 谢谢大家