- 某些东西,最好不要乱动,别问我标签怎么搞的
zzz
- @ 2025-10-23 21:56:43
#include<bits/stdc++.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> using namespace std; const double pi=3.1415926536; int toint(float a){return ((int)(a10+5))/10;} void Color(int a) { if(a0||a14||a20) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a1||a12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN); if(a3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE); if(a4||a11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(a5||a13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN); if(a7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE); if(a15) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY); if(a16) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN); if(a17) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED); if(a8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); if(a6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE); if(a9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|BACKGROUND_RED|BACKGROUND_GREEN); } void SetPos(float x,float y) { int xx=toint(x),yy=toint(y); COORD pos;pos.X=yy2,pos.Y=xx;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } struct node { int W,W2,S,mS; float X,Y; float vx,vy; float ax,ay; bool go,boom; }blt[100001],pig[100001],boo[100001]; int T,yX,yY,Xy,put,K,K2,Sle,What; int Bot,Pit,Blt,Pig,Sco,pigk,scok; int m[41][41]; void Cout(int a,int x,int y) { if(a1) SetPos(x,y),Color(5),cout<<put<<' '; if(y202) { SetPos(pig[a].X,pig[a].Y);cout<<" "; if((pig[a].W2||pig[a].W3)&&pig[a].X>=2) SetPos(pig[a].X-2,pig[a].Y);cout<<" ",SetPos(pig[a].X-1,pig[a].Y);cout<<" "; if(pig[a].W4) SetPos(pig[a].X,pig[a].Y-1),cout<<" "; if(pig[a].W5) SetPos(pig[a].X-1,pig[a].Y),cout<<" ",SetPos(pig[a].X-1,pig[a].Y-1),cout<<" "; } if(a2) for(int i=0;i<=40;i++) for(int j=0;j<=40;j++) { if(i<=18&&m[i][j]1) SetPos(i,j),Color(7),cout<<"■"; if(m[i][j]>=2&&m[i][j]<=19) SetPos(i,j),Color(5),cout<<"█",m[i][j]++; if(m[i][j]>19&&m[i][j]<=29) SetPos(i,j),Color(0),cout<<"█",m[i][j]++; if(m[i][j]30) SetPos(i,j),Color(0),cout<<" ",m[i][j]=0; if(m[i][j]>=31&&m[i][j]<=49) SetPos(i,j),Color(0),cout<<"■",m[i][j]++; if(m[i][j]50) SetPos(i,j),Color(7),cout<<"■",m[i][j]=1; } if(y666) { SetPos(blt[a].X,blt[a].Y); Color(10+blt[a].W),cout<<"●"; }Color(0); } void Go(int a) { SetPos(blt[a].X,blt[a].Y);cout<<" "; blt[a].X+=blt[a].vx/2;blt[a].Y+=blt[a].vy/2;blt[a].vx+=blt[a].ax/2;blt[a].vy+=blt[a].ay/2; if(blt[a].X>=20) blt[a].X=19; if(blt[a].X>20||blt[a].Y>38||blt[a].X<0||blt[a].Y<=0) blt[a].go=1; if(blt[a].W21&&blt[a].Y>=Xy) blt[a].go=1,Sle=0;//地跑鸟 if(blt[a].W20) { for(int i=0;i<=blt[a].vx/2+1;i++) { if(blt[a].vx>0&&m[toint(blt[a].X)+i][toint(blt[a].Y)]1) //上反弹 { if(blt[a].W!=5) blt[a].boom=1; blt[a].X=toint(blt[a].X)+i-1,blt[a].Y+=blt[a].vy/2,blt[a].vx=-blt[a].vx0.4,blt[a].vy=blt[a].vy0.8; if(blt[a].W3) blt[a].ax=0.5;if(blt[a].W7) blt[a].vx*=2; if(blt[a].W10) blt[a].go=1,Bot++,boo[Bot].X=blt[a].X,boo[Bot].Y=blt[a].Y,boo[Bot].S=1,boo[Bot].mS=4; } if(blt[a].vx<0&&m[toint(blt[a].X)-i][toint(blt[a].Y)]1) //下反弹 { if(blt[a].W!=5) blt[a].boom=1; blt[a].X=toint(blt[a].X)+i+1,blt[a].Y+=blt[a].vy/2,blt[a].vx=-blt[a].vx,blt[a].vy=blt[a].vy*0.8; if(blt[a].W3) blt[a].ax=0.5;if(blt[a].W7) blt[a].vx*=2; if(blt[a].W10) blt[a].go=1,Bot++,boo[Bot].X=blt[a].X,boo[Bot].Y=blt[a].Y,boo[Bot].S=1,boo[Bot].mS=4; } } if(abs(blt[a].vx)<=0.1&&abs(blt[a].vy)<=0.1&&abs(blt[a].ay)<=0.1) { blt[a].go=1; if(blt[a].W5) Bot++,boo[Bot].X=blt[a].X,boo[Bot].Y=blt[a].Y,boo[Bot].S=1,boo[Bot].mS=4,blt[a].go=1; } } if(blt[a].go0) Cout(a,0,666); } void Kill(int a) { if(pig[a].go0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16; if(pig[a].go0&&pig[a].W4&&pig[a].Y<20) pig[a].W=1; int R=rand()%50;Cout(a,202,202); /////////清除猪猪 pig[a].X+=pig[a].vx/2;pig[a].Y+=pig[a].vy/2;pig[a].vx+=pig[a].ax/2;pig[a].vy+=pig[a].ay/2; for(int i=-2;i<=pig[a].vx/2+1;i++) { if(m[toint(pig[a].X)+i][toint(pig[a].Y)]1) //上反弹 pig[a].X=toint(pig[a].X)+i-1,pig[a].Y+=pig[a].vy/2,pig[a].vx=-pig[a].vx0.5,pig[a].vy=pig[a].vy0.8; } for(int i=Blt-10;i<=Blt;i++) { if(pig[a].W5&&blt[i].go0&&abs(pig[a].X-blt[i].X)<=1&&abs(pig[a].Y-blt[i].Y)<=1) {m[toint(pig[a].X)-1][toint(pig[a].Y)]=2,pig[a].W2++;Sco+=2;break;} if(pig[a].W5&&m[toint(pig[a].X)][toint(pig[a].Y)]>=2&&m[toint(pig[a].X)][toint(pig[a].Y)]<30) {m[toint(pig[a].X)-1][toint(pig[a].Y)]=2,pig[a].W2++;Sco+=2;break;} if(blt[i].go0&&abs(pig[a].X-blt[i].X)<=1&&abs(pig[a].Y-blt[i].Y)<=1) { if(pig[a].W6) Bot++,boo[Bot].X=pig[a].X,boo[Bot].Y=pig[a].Y,boo[Bot].S=1,boo[Bot].mS=4,blt[i].go=1; m[toint(pig[a].X)][toint(pig[a].Y)]=2,pig[a].go=1,Pig--,Sco+=10;break; } if(m[toint(pig[a].X)][toint(pig[a].Y)]>=2&&m[toint(pig[a].X)][toint(pig[a].Y)]<30) { if(pig[a].W6) Bot++,boo[Bot].X=pig[a].X,boo[Bot].Y=pig[a].Y,boo[Bot].S=1,boo[Bot].mS=4; pig[a].go=1,Pig--,Sco+=10;break; } if((pig[a].W2||pig[a].W3)&&blt[i].go0&&abs(pig[a].X-2-blt[i].X)<=1&&abs(pig[a].Y-blt[i].Y)<=1) {m[toint(pig[a].X)][toint(pig[a].Y)]=2,pig[a].go=1,Pig--,Sco+=10;break;} if((pig[a].W2||pig[a].W3)&&m[toint(pig[a].X-2)][toint(pig[a].Y)]>=2&&m[toint(pig[a].X-2)][toint(pig[a].Y)]<30) {pig[a].go=1,Pig--,Sco+=10;break;} } /////////弄死猪猪 if(pig[a].go0) { if(pig[a].go0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16; if(pig[a].go0&&pig[a].W4&&pig[a].Y<20) pig[a].W=1; int Xx=toint(pig[a].X),Xy=toint(pig[a].Y); if(pig[a].W6) SetPos(pig[a].X,pig[a].Y),Color(9),cout<<"TN",Color(0); else{ SetPos(pig[a].X,pig[a].Y),Color(2),cout<<"●"; if((pig[a].W2||pig[a].W3)&&pig[a].X>=2) SetPos(pig[a].X-2,pig[a].Y),Color(0),cout<<"○",SetPos(pig[a].X-1,pig[a].Y),cout<<"|"; if(pig[a].W4) SetPos(pig[a].X,pig[a].Y-1),Color(2),cout<<"﹃"; if(pig[a].W5) { SetPos(pig[a].X-1,pig[a].Y),Color(8);SetPos(pig[a].X-1,pig[a].Y-1),cout<<"▁"; if(pig[a].W20)cout<<"▅";if(pig[a].W21)cout<<"▃";if(pig[a].W22)cout<<"▂";if(pig[a].W23) pig[a].W=1,pig[a].W2=0,SetPos(pig[a].X-1,pig[a].Y-1),cout<<" "; } } /////////输出猪猪 if(pig[a].W2&&pig[a].X>pig[a].S) pig[a].W=3,pig[a].ax=-0.4,pig[a].vx=1.5; else if(pig[a].W3&&pig[a].X<=pig[a].S) pig[a].W=2,pig[a].ax=0.4,pig[a].vx=-1.5; if((pig[a].W2||pig[a].W3)&&(pig[a].Y<=10||pig[a].Y>=38)) pig[a].vy*=-1; if(pig[a].W4&&R0&&pig[a].X20) pig[a].vx=-((rand()%40)/10); if(pig[a].W4) { int r=rand()%20; for(int i=Blt-10;i<=Blt;i++) if(r<=5&&blt[i].go0&&pig[a].Y-blt[i].Y<=5&&abs(blt[i].X-pig[a].X)<=1.5&&r<5) r=0; if(r0) { m[toint(pig[a].X)][toint(pig[a].Y)-2]=10;m[toint(pig[a].X)][toint(pig[a].Y)-3]=2; for(int j=toint(pig[a].Y)-1;j>=toint(pig[a].Y)-5;j--) { for(int i=Blt-10;i<=Blt;i++) if(blt[i].go0&&!(blt[i].W3&&blt[i].boom1)&&blt[i].W20&&toint(blt[i].Y)j&&abs(blt[i].X-pig[a].X)<=2) blt[i].vy=-2; for(int i=Pit-50;i<=Pit;i++) if(pig[i].go0&&toint(pig[i].Y)j&&abs(pig[i].X-pig[a].X)<=2) pig[i].vy=-1; } } } /////////移动猪猪 if(pig[a].go0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16; if(pig[a].go0&&pig[a].W4&&pig[a].Y<20) pig[a].W=1; if(pig[a].X>20||pig[a].Y>38||pig[a].X<0||pig[a].Y<=0) pig[a].go=1,Pig--,Cout(a,202,202); /////////清除猪猪 } } void Creat(int a,int p) { if(a-1&&p==-1) { Blt++;blt[Blt].W=What;blt[Blt].W2=1; blt[Blt].vy=1;blt[Blt].X=19;blt[Blt].Y=0;blt[Blt].boom=1; } else if(a0&&p-1) { int u=rand()%7+1,U=rand()%30; if(u>=5) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=1; if(u1) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].vy=0.5,pig[Pit].ax=0.5,pig[Pit].S=rand()%5+7,pig[Pit].W=2; if(u2) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=4; if(u3) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=5; if(u4) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=6; if(U1) Bot++,boo[Bot].Y=rand()%13+15,boo[Bot].X=(rand()%4)*3+8,boo[Bot].S=0,boo[Bot].mS=rand()%2+2,boo[Bot].W2=1; } else { Blt++;blt[Blt].W=What; if(a1) blt[Blt].X=yX;blt[Blt].Y=yY;blt[Blt].ax=0.5; //抛物线 blt[Blt].vx=-3.5sin(ppi/180); blt[Blt].vy=3cos(ppi/180); if(p<=45) blt[Blt].vy*=1+(0.33-0.01*(45-p)); if(p>=45) blt[Blt].vy*=1+(0.33-0.01*(p-45)); if(blt[Blt].W6) blt[Blt].vy*=1.2,blt[Blt].ax=0.4; } } void Boom(int a) { if(boo[a].W20) { int ms=boo[a].mS,s=boo[a].S,x=boo[a].X,y=boo[a].Y; if(sms) return; for(int i=x-s;i<=x+s;i++) for(int j=y-s;j<=y+s;j++) { float k=(i-x)(i-x)+(j-y)(j-y)-s*s; if(k<=s&&k>=-s&&i<=20&&j<=38&&i>=0&&j>0&&m[i][j]!=1) m[i][j]=2; }boo[a].S++; } if(boo[a].W21) { int ms=boo[a].mS,s=boo[a].S,x=boo[a].X,y=boo[a].Y; if(sms) return; if(y-s>10) m[x][y-s]=31-31*(boo[a].W2-1); if(y+s<40) m[x][y+s]=31-31*(boo[a].W2-1); boo[a].S++; } } void Move(int a) { Color(5); if(a-2) SetPos(17,Xy),cout<<" ",SetPos(18,Xy),cout<<" ",SetPos(19,Xy),cout<<" ",SetPos(20,Xy),cout<<" "; if(a==-1) SetPos(17,Xy),cout<<" ",SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏"; if(a0) SetPos(18,Xy),cout<<" ┃",Color(What+10),cout<<"●",Color(5),cout<<"┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏"; if(a1) SetPos(18,Xy),cout<<" ",Color(What+10),cout<<"●",Color(5),cout<<" ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏"; if(a2) SetPos(18,Xy),Color(What+10),cout<<"●",Color(5),cout<<"┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏"; if(a3) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),Color(What+10),cout<<"●",Color(5),cout<<"╰┳╯",SetPos(20,Xy),cout<<" ▏"; if(a4) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),Color(What+10),cout<<"●",Color(5),cout<<" ▏"; if(a5) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ",Color(What+10),cout<<"●",Color(5),cout<<" ▏"; if(a6) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ",Color(What+10),cout<<"●",Color(5),cout<<" "; Color(0); } void Start() { char g;Color(5);system("cls"); SetPos(1,1);cout<<"------- 愤 怒 的 小 胎 -------";Color(0); SetPos(3,1);cout<<"空格瞄准,按X触发小胎技能,←→移动弹弓"; SetPos(5,1);cout<<"猪猪技能自动触发,空中会有墙出现。"; SetPos(7,1);cout<<"危险值由命中率,猪的存活时间计算!"; SetPos(9,1);cout<<"危险值点满后失败!1500分通关!"; SetPos(1,20);cout<<"-------- 小 胎 技 能 --------"; SetPos(3,20);Color(11),cout<<"●",Color(0),cout<<":无技能"; SetPos(5,20);Color(12),cout<<"●",Color(0),cout<<":分身!不同分身初速度大小相同,"; SetPos(6,20);cout<<" 方向不同。"; SetPos(7,20);Color(13),cout<<"●",Color(0),cout<<":加速!以当前速度做匀速直线运动,"; SetPos(8,20);cout<<" 且免疫狙击猪的冲击。"; SetPos(9,20);Color(14),cout<<"●",Color(0),cout<<":投蛋!并获得向上速度做匀速直线"; SetPos(10,20);cout<<" 运动,快达可以穿墙。"; SetPos(11,20);Color(15),cout<<"●",Color(0),cout<<":爆炸!"; SetPos(13,20);Color(16),cout<<"●",Color(0),cout<<":回旋!开始做向左加速运动!发射"; SetPos(14,20);cout<<" 时获得双倍水平速度。"; SetPos(15,20);Color(17),cout<<"●",Color(0),cout<<":[被动] 弹跳力为普通鸟三倍。发射"; SetPos(16,20);cout<<" 时获得1.5倍水平、竖直速度。"; SetPos(11,1);cout<<"-------- 猪 猪 技 能 --------"; SetPos(13,2);Color(2),cout<<"●",Color(0),cout<<":无技能"; SetPos(14,1);Color(8),cout<<"▁▅"; SetPos(15,2);Color(2),cout<<"●",Color(0),cout<<":防御力为普通猪三倍"; SetPos(16,2);cout<<"○"; SetPos(17,2);cout<<"│:做空中简谐运动,受死范围"; SetPos(18,2);Color(2),cout<<"●",Color(0),cout<<" 为普通猪两倍。"; SetPos(19,2);cout<<" 有几率跳起或发射冲击波,冲"; SetPos(20,1);Color(2),cout<<"﹃●",Color(0),cout<<":开小胎与同类,可以引爆TNT!"; SetPos(18,20);Color(5),cout<<"按 y 开始游戏!"; A:if(kbhit()) g=_getch(); if(g!='y') goto A; } int main() { system("mode con cols=79 lines=22"); CONSOLE_CURSOR_INFO cursor_info={1,0}; SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info); srand((unsigned)time(NULL));St:Start();system("cls"); memset(blt,0,sizeof(blt));memset(pig,0,sizeof(pig)); memset(boo,0,sizeof(boo));memset(m,0,sizeof(m)); T=put=K=K2=Sle=What=Pig=Sco=0;pigk=scok=-1; Xy=4,yX=18,yY=6;Blt=20,Bot=20,Pit=60;Color(7); SetPos(19,14);cout<<"■"; SetPos(20,13);cout<<" █▍";m[19][14]=m[20][13]=m[20][14]=1; SetPos(21,0);for(int i=0;i<39;i++) cout<<"■",m[21][i]=1; Color(0);What=rand()%5+1; while(1) { if(Sco>=1500) break; T++;K=0;Color(0); if(Sco!=scok) SetPos(1,1),cout<<"分数:"<<Sco<<' '; if(Pig!=pigk){SetPos(3,1);cout<<"危险值:";int aa=min(Sco/100,10);Pig+=aa; SetPos(3,5);if(Pig<=2) Color(2);else if(Pig<=4) Color(16);else if(Pig<=6) Color(7);else if(Pig<=9) Color(6); else if(Pig<=12) Color(3);else if(Pig<=15) Color(17);else Color(11); for(int i=1;i<=Pig;i++) cout<<"■";Color(0);cout<<' '<<Pig;for(int i=1;i<=5;i++) cout<<" "; if(Pig>18) break;Pig-=aa;} scok=Sco;pigk=Pig; if(GetAsyncKeyState(VK_LEFT)&0x8000&&Xy>0) Move(-2),Xy--,K=1; if(GetAsyncKeyState(VK_RIGHT)&0x8000&&Xy<10) Move(-2),Xy++,K=1; if(K1) { if(put0&&Sle0) Move(0); else Move(-1); } if(kbhit()) { char g=_getch(); if(g=='x'||g=='X') { for(int i=Blt-10;i<=Blt;i++) if(blt[i].go0&&blt[i].boom0&&blt[i].W!=1&&blt[i].W!=7) { blt[i].boom=1; if(blt[i].W2) { Blt++;blt[Blt].W=2;blt[Blt].vy=blt[i].vy1.2;blt[Blt].vx=blt[i].vx+1; blt[Blt].ax=blt[i].ax;blt[Blt].X=blt[i].X;blt[Blt].Y=blt[i].Y;blt[Blt].boom=1; Blt++;blt[Blt].W=2;blt[Blt].vy=blt[i].vy0.7;blt[Blt].vx=blt[i].vx-1; blt[Blt].ax=blt[i].ax;blt[Blt].X=blt[i].X;blt[Blt].Y=blt[i].Y;blt[Blt].boom=1; } if(blt[i].W3) blt[i].vy=fmax(blt[i].vy*1.5,2.5),blt[Blt].vx+=1,blt[i].ax=0; if(blt[i].W4) { blt[i].vx=-3;blt[i].ax=0.1;Blt++;blt[Blt].boom=1;blt[Blt].W=10; blt[Blt].X=blt[i].X;blt[Blt].Y=blt[i].Y;blt[Blt].ax=blt[i].ax,blt[Blt].vx=1; } if(blt[i].W5) Bot++,boo[Bot].X=blt[i].X,boo[Bot].Y=blt[i].Y,boo[Bot].S=1,boo[Bot].mS=5,blt[i].go=1; if(blt[i].W6) blt[i].ay=-1,blt[i].ax=0.3,blt[i].vx=min(blt[i].vx/2,(float)0); break; } } } if(GetAsyncKeyState(' ')&0x8000&&K0&&Sle0) { if(put<=5) Move(1),yX=18,yY=Xy+1; else if(put<=20) Move(2),yX=18,yY=Xy; else if(put<=40) Move(3),yX=19,yY=Xy; else if(put<=60) Move(4),yX=20,yY=Xy; else if(put<=80) Move(5),yX=20,yY=Xy+1; else Move(6),yX=20,yY=Xy+2; if(put0) K2=1;if(put90) K2=-1; if(K21) put+=min(rand()%7+1,90-put); if(K2==-1) put-=min(rand()%7+1,put); Cout(1,17,Xy+2); } if((!(GetAsyncKeyState(' ')&0x8000)&&(put!=0))||(put!=0&&K1)) Move(-1),Creat(1,put),put=0,yX=18,yY=5,Sle=1,What=rand()%7+1,Creat(-1,-1),Sco=max(Sco-5,0); for(int i=Blt-10;i<=Blt;i++) if(blt[i].go0) Go(i); for(int i=Bot-10;i<=Bot;i++) if(boo[i].go0) Boom(i),Cout(2,0,0); for(int i=Pit-50;i<=Pit;i++) if(pig[i].go0) Kill(i); if(Sle!=0) Move(-1); else if(put0) Move(0); if(T%3000) system("cls"),pigk=scok=-1; if(T%1000) { Color(7); for(int i=0;i<=18;i++) for(int j=0;j<=40;j++) if(m[i][j]1&&T%1000) SetPos(i,j),cout<<"■"; SetPos(19,14),cout<<"■",SetPos(20,13),cout<<" █▍"; SetPos(21,0);for(int i=0;i<39;i++) cout<<"■";Color(0); } if(T%min(50,(2000-Sco)/30)0) Pig++,Creat(0,-1); Sleep(30); } if(Sco<1500) {SetPos(9,17);system("color 7F");Color(11);cout<<"YOU DIE !";} else {SetPos(9,17);system("color 6E");Color(5);cout<<"YOU WIN !";} SetPos(11,16);Sleep(1000);cout<<"play again? (y/n)";Sleep(1000);char g; A:if(kbhit()) g=_getch();SetPos(18,0); if(g'n') return 0; else if(g!='y') goto A; else if(g'y') goto St; }