倔地矿胎
最新修改:难度降低!
//TSzza - 个人中心 - 洛谷
#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#define KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)
using namespace std;
int m[10001][21];
struct node {int xx,yy,Zhong,rr,mr;} B[100001];
int K,X,Y,tX,tY,tY2,tT,Er,T,Yb,Zb,Win,Blood,Score,Kb;
void Color(int a)
{if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_INTENSITY|BACKGROUND_RED);if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE|BACKGROUND_INTENSITY|BACKGROUND_BLUE);
}
void SetPos(int x,int y)
{COORD pos; pos.X=y*2-1,pos.Y=x+1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Zha(int x,int y)
{Zb++;int k1=rand()%2+2,k2=rand()%3+2,r=rand()%6;if(r==0) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=k1*2;if(r==1) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=2;if(r==2) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=3,B[Zb].rr=k2,B[Zb].mr=k1;if(r==3) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=4;if(r==4) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=5,B[Zb].rr=1,B[Zb].mr=k2*2;if(r==5) B[Zb].xx=x-K,B[Zb].yy=y,B[Zb].Zhong=rand()%2+6,B[Zb].rr=k1+1,B[Zb].mr=k2+3;
}
void Cout(int i,int j,int a)
{int R=rand()%500,jk=0;if(i-K>=0&&i-K<=1&&j>=2&&j<=6) return;if(a!=4){if(m[i][j]==0&&(a==0||a==3)) SetPos(i-K,j),Color(7),cout<<"■";if(m[i][j]==1&&a==5) SetPos(i-K,j),Color(0),cout<<" ";//空气 if(m[i][j]==2) SetPos(i-K,j),Color(8),cout<<"■";if(m[i][j]>=3&&m[i][j]<6) SetPos(i-K,j),Color(5),cout<<"█",m[i][j]++;if(m[i][j]==6&&a!=5) SetPos(i-K,j),cout<<" ",m[i][j]=1;if(m[i][j]==7) SetPos(i-K,j),Color(9),cout<<"~ ";if(m[i][j]==8) SetPos(i-K,j),Color(10),cout<<"~ ";if(m[i][j]==9) SetPos(i-K,j),Color(3),cout<<"◆";if((m[i][j]==1||m[i][j]==8)&&m[i-1][j]>=10&&m[i-1][j]<=30&&a!=5) {int M=m[i][j];m[i][j]=m[i-1][j],m[i-1][j]=M;if(M==1) SetPos(i-K-1,j),cout<<" ";}//炸弹下落 if(m[i][j]==1&&m[i-1][j]==9&&a!=5) {m[i][j]=9,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<" ";jk=1;}//宝石下落if(m[i][j]>=10&&m[i][j]<=30) {m[i][j]++;if(m[i][j]%3==0) Color(4);else Color(5);SetPos(i-K,j),cout<<"●";}//炸弹计时if(m[i][j]==1&&m[i-1][j]==7&&a!=5) {m[i][j]=7,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<" ";jk=1;}//岩浆下落if(m[i][j]==0&&m[i-1][j]==7&&R<=2) m[i][j]=m[i-1][j],m[i-1][j]=1,SetPos(i-K-1,j),cout<<" ";//岩浆融解 if(m[i][j]==7&&R>2&&R<=5) {int r=rand()%3-1; if(m[i][j+r]==1) m[i][j+r]=m[i][j];if(m[i][j+r]==8) m[i][j+r]=2;}//岩浆扩散 if(R<50&&R>=20&&m[i+1][j+1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j+1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<" ";if(R<80&&R>=50&&m[i+1][j-1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j-1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<" ";//岩浆平面 if(m[i][j]==1&&m[i-1][j]==8&&a!=5) {m[i][j]=8,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<" ";jk=1;}//水下落if(m[i+1][j+1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j+1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<" ";if(m[i+1][j-1]==1&&m[i+1][j]==8&&m[i][j]==8) m[i+1][j-1]=8,m[i][j]=1,SetPos(i-K,j),Color(0),cout<<" ";//水平面 if((m[i+1][j]==8&&m[i][j]==7)||(m[i+1][j]==7&&m[i][j]==8)) m[i][j]=2,m[i-1][j]=1,SetPos(i-K-1,j),Color(0),cout<<" ";//变石头if(m[i][j]==0&&m[i-1][j]==8&&R>5&&R<=7) m[i][j]=m[i-1][j],m[i-1][j]=1,SetPos(i-K-1,j),cout<<" ";//水融解 if(m[i][j]==8&&R>7&&R<=9) {int r=rand()%3-1; if(m[i][j+r]==1) m[i][j+r]=m[i][j];if(m[i][j+r]==7) m[i][j+r]=2;}//水扩散 if(m[i][j]==31) SetPos(i-K,j),cout<<" ",Zha(i,j);}else if(a!=5)//界外 {if(m[i][j]>=3&&m[i][j]<6) m[i][j]++; if(m[i][j]==6) m[i][j]=1;if((m[i][j]==1||(m[i][j]>=3&&m[i][j]<=6))&&m[i-1][j]>=10&&m[i-1][j]<=30) m[i][j]=m[i-1][j],m[i-1][j]=1;//炸弹下落 if(m[i][j]>=10&&m[i][j]<=30) m[i][j]++;//炸弹计时if(m[i][j]==1&&m[i-1][j]==9) m[i][j]=9,m[i-1][j]=1;//宝石下落if(m[i][j]==1&&m[i-1][j]==7) m[i][j]=7,m[i-1][j]=1;//岩浆下落if(m[i][j]==1&&m[i-1][j]==8) m[i][j]=8,m[i-1][j]=1;//水下落}if(jk==1) jk=0,Cout(i,j,5);Color(0);
}
void Map(int a);
void Wo()
{SetPos(X-K,Y),cout<<" "; //清除上一次残影if(m[X][Y]==9) Blood++,Score+=5,m[X][Y]=1,system("color 2F"),Sleep(50),system("color 0F"),Map(3);if(tX!=0&&(m[X-1][Y]==1||m[X-1][Y]==7||m[X-1][Y]==8||m[X-1][Y]==9||(m[X-1][Y]>=3&&m[X-1][Y]<=6))) tX--,X-=2; //上跳 if(m[X+1][Y]==1||(m[X+1][Y]>=3&&m[X+1][Y]<=6)||m[X+1][Y]==7||m[X+1][Y]==8||m[X+1][Y]==9) X++; //掉落 if(m[X+1][Y]==0||m[X+1][Y]==2||(m[X+1][Y]>=3&&m[X+1][Y]<=6)) tX=Er=0; //跳跃次数清零 if(m[X-1][Y]==0||m[X-1][Y]==2||(m[X-1][Y]>=10&&m[X-1][Y]<=31)) tX=Er=0; //跳跃次数清零 if(X<=K) tX=Er=0,X=K; if(X>=K+28) X=K+28,Kb=1; //高度上下限if(m[X][Y]==7) m[X-1][Y]=m[X-2][Y]=1,tX+=8;if(m[X][Y]!=1&&m[X][Y]!=8&&m[X][Y]!=9) Blood--,m[X][Y]=1,system("color 4F"),Sleep(50),system("color 0F"),Map(3);if(Blood<=0) Win=-1;SetPos(X-K,Y),Color(1),cout<<"●";
}
void Map(int a)
{SetPos(0,2);cout<<"Blood: "<<Blood<<" ";SetPos(1,2);cout<<"Score: "<<Score<<" ";if(a==3) system("cls");for(int i=K+28;i>=K;i--)for(int j=1;j<=20;j++) Cout(i,j,a);for(int i=K+33;i>K+28;i--)for(int j=1;j<=20;j++) Cout(i,j,4);if(a!=3) Wo();
}
void CircleBomb(int x,int y,int s,int ms)
{if(s==ms) 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&&j>0&&j<=20&&m[i+K][j]!=2&&m[i+K][j]!=9) m[i+K][j]=3;}Zb++;B[Zb].xx=x,B[Zb].yy=y,B[Zb].Zhong=1,B[Zb].rr=s+1,B[Zb].mr=ms;Sleep(30);
}
void LineBomb(int i,int j)
{for(int k=0;j+k<=20;k++) if(m[i+K][j+k]!=2&&m[i+K][j+k]!=9) m[i+K][j+k]=3;for(int k=0;j+k<=20;k++) if(m[i+K+1][j+k]!=2&&m[i+K+1][j+k]!=9) m[i+K+1][j+k]=3;for(int k=0;j-k>0;k++) if(m[i+K][j-k]!=2&&m[i+K][j-k]!=9) m[i+K][j-k]=3;for(int k=0;j-k>0;k++) if(m[i+K+1][j-k]!=2&&m[i+K+1][j-k]!=9) m[i+K+1][j-k]=3;
}
void ZuanBomb(int i,int j)
{int k;for(k=0;m[i+K+k][j]!=2&&k<=7;k++) if(m[i+K+k][j]!=9) m[i+K+k][j]=3;int k1=rand()%2+2;Zb++;B[Zb].xx=i+k,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=k1*3/2;
}
void TrigleBomb(int i,int j,int r,int mr)
{if(r==mr) return;if(r==1) m[i+K][j]=3,i++;for(int k=max(0,j-r);k<=min(20,j+r);k++) if(m[i+K][k]!=2&&m[i+K][k]!=9) m[i+K][k]=3;Zb++;B[Zb].xx=i+1,B[Zb].yy=j,B[Zb].Zhong=5,B[Zb].rr=r+1,B[Zb].mr=mr;
}
void GunBomb(int i,int j,int r,int mr)
{if(mr<=0) return;Zb++;B[Zb].xx=i,B[Zb].yy=j+2,B[Zb].Zhong=6,B[Zb].rr=r,B[Zb].mr=mr-1;Zb++;B[Zb].xx=i,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=r-1,B[Zb].mr=r;
}
void GunBomb2(int i,int j,int r,int mr)
{if(mr<=0) return;Zb++;B[Zb].xx=i,B[Zb].yy=j-2,B[Zb].Zhong=7,B[Zb].rr=r,B[Zb].mr=mr-1;Zb++;B[Zb].xx=i,B[Zb].yy=j,B[Zb].Zhong=1,B[Zb].rr=r-1,B[Zb].mr=r;
}
void ThreeBomb(int x,int y,int s,int ms)
{for(int i=1;i<=3;i++){int Xx=rand()%(2*s+1)-s,Yy=rand()%(2*s+1)-s; Zb++;B[Zb].xx=Xx+x,B[Zb].yy=Yy+y,B[Zb].Zhong=1,B[Zb].rr=0,B[Zb].mr=ms+rand()%3-1;}
}
void Sheng(int a)
{K++;for(int i=1;i<=20;i++){int R=rand()%max(80-(K/10),30);int Rr=rand()%200;if(R<=3) m[K+28][i]=2;else if(R<=6) m[K+28][i]=7;else if(R<=9) m[K+28][i]=8;if(Rr==0) m[K+28][i]=9;}if(a!=1) system("cls"),Map(0);
}
void Jiao()
{SetPos(0,2);Color(1),cout<<"●",Color(7),cout<<" ■ ",Color(8),cout<<" ■ ",Color(4),cout<<" ● ",Color(9),cout<<"~ ",Color(0),cout<<" ",Color(10),cout<<"~ ",Color(3),cout<<" ◆";SetPos(2,2);Color(0),cout<<"你 泥土 石块 炸弹 岩浆 水 宝石";SetPos(4,1),cout<<" ↑ 空格放炸弹..."; SetPos(5,1),cout<<"← →移动 ";SetPos(6,1),cout<<" ↓ 可二段跳。";SetPos(8,1),cout<<"炸弹种类随机,计时3秒爆炸。";SetPos(10,1),cout<<"(一共有7种炸弹,有几率组合一起爆炸)";SetPos(12,1),cout<<"岩浆和水有几率向左右扩散...";SetPos(14,1),cout<<"它们相融会产生石块。";SetPos(16,1),cout<<"岩浆和爆炸波会使你减血...";SetPos(18,1),cout<<"岩浆还会使你上跳,宝石可以加血。";SetPos(20,1),cout<<"画面每隔一段时间会下降...";SetPos(22,1),cout<<"当你抵达画面底部时,画面会随你一起下降...";SetPos(24,1),cout<<"当你被抵在画面顶部时,会持续减血。";SetPos(26,1),cout<<"每隔一段时间分数会增加...",Color(5),cout<<"500分即可通关!";SetPos(28,1);Color(1);cout<<"按 y 开始游戏!";char tt;while(tt!='y') tt=_getch();
}
void Start()
{Color(5);SetPos(2,3);Color(7),cout<<" ■ ",Color(5),cout<<"掘",Color(7),cout<<" ■■■■ ";SetPos(3,3);Color(7),cout<<" ■■ ",Color(5),cout<<" ↓",Color(7),cout<<" ■■■■ ";SetPos(4,3);Color(7),cout<<" ■■■■ ",Color(5),cout<<" ↓",Color(7),cout<<" ■■■■■ ";SetPos(5,3);Color(7),cout<<" ■■■■■",Color(5),cout<<"↓",Color(7),cout<<" ■■■■■ ";SetPos(6,3);Color(7),cout<<" ■■■■■ ■■■",Color(5),cout<<"地",Color(7),cout<<"■■ ";SetPos(7,3);Color(7),cout<<" ■■■■■■■■■■■■ ";Color(5);SetPos(10,3);cout<<" ■■■ ■ ";SetPos(11,3);cout<<" ■ ■ ■ ";SetPos(12,3);Color(8),cout<<" ■■■ ",Color(5),cout<<" ■■■ ■ ■ ";SetPos(13,3);Color(8),cout<<" ■",Color(5),cout<<"矿",Color(8),cout<<"■ ",Color(5),cout<<" ■ ■ ■■■■■";SetPos(14,3);Color(8),cout<<" ■■■ ",Color(5),cout<<" ■ ■ ";SetPos(15,3);cout<<" ■■■ ■■■■ ";SetPos(16,3);cout<<" ■ ■ ■ ■ ";SetPos(17,3);cout<<" ■ ■ ■ ■ ";SetPos(18,3);cout<<" ■■ ■ ■■■■ ";SetPos(22,2);Color(1);cout<<"按 y 确定!";SetPos(22,10);Color(9);cout<<" 开始游戏! ";SetPos(24,10);Color(0);cout<<" 操作攻略! ";SetPos(27,1);Color(3);cout<<"注意!这里 绝对不能是拼音输入法!";SetPos(28,5);Color(3);cout<<"↓";Color(0);char tt;int Ee=0;while(tt!='y'){tt=_getch();if(tt==72&&Ee!=0) Ee--;if(tt==80&&Ee!=2) Ee++;SetPos(22,10);if(Ee==0) Color(9);else Color(0);cout<<" 开始游戏! ";SetPos(24,10);if(Ee==1) Color(9);else Color(0);cout<<" 操作攻略! ";}system("color 0F");system("cls");Color(0);if(Ee==1) Jiao();
}
int main()
{system("mode con cols=42 lines=31");CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);srand((unsigned)time(NULL));Start();St:system("cls");K=-5,T=Win=Score=0;X=Y=2;Blood=20;memset(m,0,sizeof(m));memset(B,0,sizeof(B));for(int i=5;i<=15;i++) for(int j=1;j<=20;j++) m[i][j]=1;for(int i=1;i<=10;i++) Sheng(1);Map(0);while(Win==0){T++;Kb=0;if(Score>=500) Win=1;if(GetAsyncKeyState(VK_UP)&0x8000&&tT==0&&Er<2) tT++,tX+=4,Er++;if((GetAsyncKeyState(VK_UP)&0x8000)?0:1) tT=0;if(GetAsyncKeyState(VK_LEFT)&0x8000&&Y>1&&(m[X][Y-1]==1||m[X][Y-1]==7||m[X][Y-1]==8||m[X][Y-1]==9)&&(tY==0||tY>=2)) SetPos(X-K,Y),cout<<" ",Y--;if(GetAsyncKeyState(VK_RIGHT)&0x8000&&Y<20&&(m[X][Y+1]==1||m[X][Y+1]==7||m[X][Y+1]==8||m[X][Y+1]==9)&&(tY2==0||tY2>=2)) SetPos(X-K,Y),cout<<" ",Y++;if((GetAsyncKeyState(VK_LEFT)&0x8000)?0:1) tY=0;if((GetAsyncKeyState(VK_RIGHT)&0x8000)?0:1) tY2=0;if((GetAsyncKeyState(VK_LEFT)&0x8000)?1:0) tY++;if((GetAsyncKeyState(VK_RIGHT)&0x8000)?1:0) tY2++;if(kbhit()) {char e=_getch();if(e==' '&&m[X-1][Y]!=0&&m[X-1][Y]!=2&&(m[X+1][Y]<=10||m[X+1][Y]>=31)&&Kb==0) m[X][Y]=10,X--;}int zb=Zb;for(int i=zb-10;i<=zb;i++){if(B[i].Zhong==1) CircleBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;if(B[i].Zhong==2) LineBomb(B[i].xx,B[i].yy),B[i].Zhong=0;if(B[i].Zhong==3) ThreeBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;if(B[i].Zhong==4) ZuanBomb(B[i].xx,B[i].yy),B[i].Zhong=0;if(B[i].Zhong==5) TrigleBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;if(B[i].Zhong==6) GunBomb(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;if(B[i].Zhong==7) GunBomb2(B[i].xx,B[i].yy,B[i].rr,B[i].mr),B[i].Zhong=0;}Map(1);Sleep(40);if(T%max(10,40-Score/16)==0||Kb>=1) Sheng(0);if(T%20==0) Score++;}if(Win!=0){if(Win>0) {system("color 6E"),Color(3);SetPos(0,2);cout<<"You! Win!!!",Sleep(1000);}if(Win<0) {system("color 7F"),Color(4);SetPos(0,2);cout<<"You! Die!!!",Sleep(1000);}SetPos(1,2);cout<<"Please point 'y' to Play AGain.";A:char e=_getch();if(e!='y') goto A;goto St;}
}
胎红胎蓝
最新修改:多线程全新开放!#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
int m[20][20];
char a,b,c,d;
int xa=16,ya=4,xb=16,yb=15,fxa=20,fya=20;
int xShang,Tiao,Zuo,You,Quan,fang=1,blood=50,lan=20;
int yShang,Tiaob,Zuob,Youb,Quanb,fangb=-1,bloodb=50,lanb=20;
int Zhao,Fen,zou,zhao,Bao,baox,baoy,Di,diy,Bu;
int Lie,liey,lief,liefy,Ji,jiy,jif,Shun,r,R,s,S,M;
void Yan(int a)
{if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
}
void Bai(){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);}
void SetPos(int x,int y)
{COORD pos;pos.X=2*y+8;pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Xue()
{SetPos(0,-4);for(int i=0;i<4;i++) {for(int j=0;j<38;j++)cout<<" ";cout<<endl;}SetPos(0,-4);if(lan>30) lan=30;if(lanb>30) lanb=30;cout<<" ";Yan(5);if(lan==30) Yan(3);for(int i=1;i<=lan;i++) printf("▃");Yan(1);printf("\n1p :");for(int i=2;i<=blood;i+=2) printf("█");if(blood%2==1) printf("▌");cout<<endl<<" ";Yan(5);if(lanb==30) Yan(3);for(int i=1;i<=lanb;i++) printf("▃");Yan(4);printf("\n2p :");for(int i=2;i<=bloodb;i+=2) printf("█");if(bloodb%2==1) printf("▌");cout<<endl;SetPos(17,0);Yan(2);for(int j=0;j<20;j++) {cout<<"■";continue;} Bai();Yan(1);printf("\n\n 蓝方:A W D --控制\t\t");Yan(4);printf("红方:←↑→--控制\n\n"); Yan(1);printf(" J-出拳");if(lan<1) Yan(6);printf(" K-前刺");if(lan<3) Yan(6);printf(" L-分身\t");Yan(4);printf("1-出拳");if(lanb<1) Yan(6);printf(" 2-上挑");Yan(4);if(lanb<3) Yan(6);printf(" 3-瞬移\n\n");Yan(1);if(lan<3) Yan(6);printf(" U-回血");Yan(1);if(lan<5) Yan(6);printf(" I-裂地");Yan(1);if(lan<10) Yan(6);printf(" O-炸地\t");Yan(4);if(lanb<3) Yan(6);printf("4-回血");Yan(4);if(lanb<5) Yan(6);printf(" 5-震爆");Yan(4);if(lanb<7) Yan(6);printf(" 6-激光");Bai();
}
void Wo(){Yan(1),SetPos(xa,ya),cout<<"●";Yan(4),SetPos(xb,yb),cout<<"●";if(Fen!=0) Bai(),SetPos(fxa,fya),cout<<"●";}
void Hong(){Wo();system("color 4F"),Sleep(10),system("color 0F"),Xue();}
void Lan(){Wo();system("color 1F"),Sleep(10),system("color 0F"),Xue();}
void Lv(){Wo();system("color 2F"),Sleep(10),system("color 0F"),Xue();}
void Zou()
{zou=0;SetPos(xa,ya),cout<<" ";SetPos(xb,yb),cout<<" ";if(Fen>0) SetPos(fxa,fya),cout<<" ";SetPos(0,-4);if(fxa<=5||xa<=5) xShang=0;if(xa==xb&&ya==yb) xa--,zou=1;if(fxa==xa&&fya==ya) fxa--,zou=1;if(fxa==xb&&fya==yb) fxa--,zou=1;if(Fen>0){if(xa==fxa+1&&ya==fya&&fang==-1){if(fya>0) fya--;else fya+=2;}if(xa==fxa+1&&ya==fya&&fang==1){if(fya<19) fya++;else fya-=2;}if(fxa+1==xb&&fya==yb&&fang==-1){if(fya>0) fya--;else fya+=2;}if(fxa+1==xb&&fya==yb&&fang==1){if(fya<19) fya++;else fya-=2;}if(Tiao>0){if(fang==-1&&fya>0&&(fxa!=xb||fya-1!=yb)&&(fxa!=xa||fya-1!=ya)) fya--;if(fang==1&&fya<19&&(fxa!=xb||fya+1!=yb)&&(fxa!=xa||fya+1!=ya)) fya++;}if(xShang>0) m[fxa][fya]=0,fxa-=2;if(fxa<16) m[fxa][fya]=0,fxa++;}if(xa+1==xb&&ya==yb&&fang==-1){if(ya>0) ya--;else ya+=2;}if(xa+1==xb&&ya==yb&&fang==1){if(ya<19) ya++;else ya-=2;}if(xa+1==fxa&&ya==fya&&fang==-1){if(ya>0) ya--;else ya+=2;}if(xa+1==fxa&&ya==fya&&fang==1){if(ya<19) ya++;else ya-=2;}if(Zuo>0&&ya>0&&Tiao==0&&(xa!=xb||ya-1!=yb)&&(fxa!=xa||fya!=ya-1)) m[xa][ya]=0,ya--;if(Zuo>0&&fya>0&&Tiao==0&&(fxa!=xb||fya-1!=yb)&&(xa!=fxa||ya!=fya-1)) m[fxa][fya]=0,fya--;Zuo=0;if(You>0&&ya<19&&Tiao==0&&(xa!=xb||ya+1!=yb)&&(fxa!=xa||fya!=ya+1)) m[xa][ya]=0,ya++;if(You>0&&fya<19&&Tiao==0&&(fxa!=xb||fya+1!=yb)&&(xa!=fxa||ya!=fya+1)) m[fxa][fya]=0,fya++;You=0;if(Tiao>0){if(fang==-1&&ya>0&&(xa!=xb||ya-1!=yb)&&(fxa!=xa||fya!=ya-1)) ya--;if(fang==1&&ya<19&&(xa!=xb||ya+1!=yb)&&(fxa!=xa||fya!=ya+1)) ya++;}if(xShang>0) m[xa][ya]=0,xShang--,xa-=2;if(xa<16) m[xa][ya]=0,xa++;if(xa==16) Tiao=0;if(xb<=5) yShang=0;if(xa==xb+1&&ya==yb&&fangb==-1){if(yb>0) yb--;else yb+=2;}if(xa==xb+1&&ya==yb&&fangb==1){if(yb<19) yb++;else yb-=2;}if(xb+1==fxa&&yb==fya&&fangb==-1){if(yb>0) yb--;else yb+=2;}if(xb+1==fxa&&yb==fya&&fangb==1){if(yb<19) yb++;else yb-=2;}if(Zuob>0&&yb>0&&Tiaob==0&&(xa!=xb||ya!=yb-1)&&(fxa!=xb||fya!=yb-1)) m[xb][yb]=0,Zuob=0,yb--;Zuob=0;if(Youb>0&&yb<19&&Tiaob==0&&(xa!=xb||ya!=yb+1)&&(fxa!=xb||fya!=yb+1)) m[xb][yb]=0,Youb=0,yb++;Youb=0;if(Tiaob>0&&Bu==0){if(fangb==-1&&yb>0&&(xa!=xb||ya!=yb-1)&&(fxa!=xb||fya!=yb-1)) yb--;if(fangb==1&&yb<19&&(xa!=xb||ya!=yb+1)&&(fxa!=xb||fya!=yb+1)) yb++;}if(yShang>0) m[xb][yb]=0,yShang--,xb-=2;if(xb<16) m[xb][yb]=0,xb++;if(xb==16) Tiaob=0;SetPos(0,-4);if(zou==1) Zou();Sleep(10);
}
void Xian()
{zhao=0;s++;if(M>=5) {Zhao=0;return;}if(s==70) {s=0;if(lan<40)lan++;if(lanb<40)lanb++;Xue();}SetPos(0,-4);if(Bao!=0){Bao--;Zhao--;for(int i=baox-3;i<=baox+3;i++)for(int j=baoy-3;j<=baoy+3;j++) if(i<=16&&j>=0&&j<=19) m[i][j]=9;for(int i=baox-1;i<=baox+1;i++)for(int j=baoy-1;j<=baoy+1;j++) if(i<=16&&j>=0&&j<=19) m[i][j]=0;}if(Bao==0) baox=0,baoy=0;if(Lie!=0){Lie--;Zhao--;if(lief==-1) for(int i=1;i<=7-Lie;i++) if(liey+Lie>=0) m[18-i][liey+Lie]=11;if(lief==1) for(int i=1;i<=7-Lie;i++) if(liey-Lie<=19) m[18-i][liey-Lie]=10;if(Fen>0){if(lief==-1) for(int i=1;i<=7-Lie;i++) if(liefy+Lie>=0) m[18-i][liefy+Lie]=11;if(lief==1) for(int i=1;i<=7-Lie;i++) if(liefy-Lie<=19) m[18-i][liefy-Lie]=10;}}if(Lie==0) liey=0,lief=0,liefy=0;if(Ji!=0){Ji--;Zhao--;if(jif==-1) for(int i=jiy;i>=0;i--) m[xb][i]=14;if(jif==1) for(int i=jiy;i<=19;i++) m[xb][i]=13;}if(Ji==0) jiy=0,jif=0;if(Di!=0){Di--;Zhao--;for(int i=2;i<=16;i++) m[i][diy]=19;if(Fen>0&&yb!=0&&yb!=19) for(int i=2;i<=16;i++) m[i][diy+fangb]=19;}if(Di==0) diy=0;if(Shun!=0){SetPos(Shun,-4);cout<<" ";Shun=0;}Bu=0;if(m[xa][ya]==3) {Shun=xa,Zuo+=1,xShang+=4,blood-=1,Zhao=0,m[xa][ya]=7,Lan(),lan++,zhao=1;Xue();}else if(m[xa][ya]==4) {Shun=xa,You+=1,xShang+=4,blood-=1,Zhao=0,m[xa][ya]=7,Lan(),lan++,zhao=1;Xue();}else if(m[xa][ya]==9) {Shun=xa,xShang=7,blood-=2,Zhao=0,m[xa][ya]=7,Lan(),lan+=2,zhao=1;Xue();}else if(m[xa][ya]==13) {Shun=xa,You+=1,blood-=2,Zhao=0,m[xa][ya]=7,Lan(),lan+=2,zhao=1;Xue();}else if(m[xa][ya]==14) {Shun=xa,Zuo+=1,blood-=2,Zhao=0,m[xa][ya]=7,Lan(),lan+=2,zhao=1;Xue();}else if(m[xa][ya]==15) {Shun=xa,You+=1,blood-=1,Zhao=0,m[xa][ya]=7,Lan(),lan+=1,zhao=1;Xue();}else if(m[xa][ya]==16) {Shun=xa,Zuo+=1,blood-=1,Zhao=0,m[xa][ya]=7,Lan(),lan+=1,zhao=1;Xue();}else m[xa][ya]=1;if(m[fxa][fya]==3||m[fxa][fya]==4||m[fxa][fya]==9||m[fxa][fya]==13||m[fxa][fya]==14||m[fxa][fya]==15||m[fxa][fya]==16){Zhao=0,m[fxa][fya]=7,fxa=20,fya=20,Fen=0,Lan(),zhao=1;Xue();}if(m[xb][yb]==5) {Shun=xb,Zuob+=4,yShang+=1,bloodb-=1,Zhao=0,m[xb][yb]=7,Hong(),lanb++,zhao=1;Xue();}else if(m[xb][yb]==6) {Shun=xb,Youb+=4,yShang+=1,bloodb-=1,Zhao=0,m[xb][yb]=7,Hong(),lanb++,zhao=1;Xue();}else if(m[xb][yb]==10) {Shun=xb,Youb+=1,yShang+=1,bloodb-=2,Zhao=0,m[xb][yb]=7,Hong(),lanb+=2,zhao=1;Xue();}else if(m[xb][yb]==11) {Shun=xb,Zuob+=1,yShang+=1,bloodb-=2,Zhao=0,m[xb][yb]=7,Hong(),lanb+=2,zhao=1;Xue();}else if(m[xb][yb]==17) {Shun=xb,Youb+=1,bloodb-=1,Zhao=0,m[xb][yb]=7,Hong(),lanb+=1,zhao=1;Xue();}else if(m[xb][yb]==18) {Shun=xb,Zuob+=1,bloodb-=1,Zhao=0,m[xb][yb]=7,Hong(),lanb+=1,zhao=1;Xue();}else if(m[xb][yb]==19) {Shun=xb,Bu=1,yShang+=3,bloodb-=1,Zhao=0,m[xb][yb]=7,Hong(),lanb+=1,zhao=1;Xue();}else m[xb][yb]=2;if(Fen>0) m[fxa][fya]=8;for(int i=5;i<=16;i++)for(int j=0;j<20;j++){if(m[i][j]==20) {SetPos(i,j);cout<<" ",m[i][j]=0;continue;}if(m[i][j]==1) {Yan(1),SetPos(i,j);cout<<"●",m[i][j]=20,Bai();continue;}if(m[i][j]==2) {Yan(4),SetPos(i,j);cout<<"●",m[i][j]=20,Bai();continue;}if(m[i][j]==8) {Bai(),SetPos(i,j);cout<<"●",m[i][j]=20;continue;}if(m[i][j]==7) {Yan(5),SetPos(i,j);cout<<"█",m[i][j]=20,zhao=1;Bai();continue;}if(m[i][j]==12) {Bai(),SetPos(i,j);cout<<"●",Shun=xb;continue;}if(m[i][j]>=3&&m[i][j]<=6||(m[i][j]>=9&&m[i][j]<=11)||(m[i][j]>=13)){Bai(),SetPos(i,j);cout<<"■";m[i][j]=20,Zhao=0,zhao=1;continue;}}if(zhao>0) {M++,Zou(),Xian();M=0;return;}memset(m,0,sizeof(m));M=0;
}
void Go(char a)
{if(a=='j') Quan++; else Quan=0;if(a=='w'&&Tiao==0) Tiao++,xShang+=3;if(a=='a'&&Tiao==0) Zuo=1,You=0,fang=-1;if(a=='d'&&Tiao==0) You=1,Zuo=0,fang=1;if(a=='j'&&Quan<=3&&fang==-1&&ya-1>=0) {m[xa][ya-1]=18;if(Fen>0&&fya-1>=0) m[fxa][fya-1]=18;}if(a=='j'&&Quan<=3&&fang==1&&ya+1<=19) {m[xa][ya+1]=17;if(Fen>0&&fya+1<=19) m[fxa][fya+1]=17;}if(a=='k'&&fang==-1&&lan>=1&&ya!=0) {lan--,Xue();Zhao++;for(int i=1;i<=3;i++){if(ya-i>=0) m[xa][ya-i]=5;if(Fen>0&&fya-i>=0) m[fxa][fya-i]=5;}}if(a=='k'&&fang==1&&lan>=1&&ya!=19) {lan--,Xue();Zhao++;for(int i=1;i<=3;i++){if(ya+i<=19) m[xa][ya+i]=6;if(Fen>0&&fya+i<=19) m[fxa][fya+i]=6;}}if(a=='l'&&Fen==0&&lan>=3) lan-=3,Xue(),Lan(),fxa=xa-3,fya=rand()%19,Fen=1,Zou(),Xian();if(a=='u'&&lan>=3) lan-=3,Xue(),Lv(),blood+=2;if(a=='i'&&lan>=5) lan-=5,Xue(),Zhao+=3,Di+=3,diy=yb;if(a=='o'&&fang==-1&&lan>=10) {lan-=10,Xue();Zhao+=6,Lie=6,liey=ya-6,lief=-1,liefy=0;if(Fen>0) liefy=fya-6;}if(a=='o'&&fang==1&&lan>=10) {lan-=10,Xue();Zhao+=6,Lie=6,liey=ya+6,lief=1,liefy=0;if(Fen>0) liefy=fya+6;}if(a=='1') Quanb++; else Quanb=0;if(a==72&&Tiaob==0) Tiaob++,yShang+=3;if(a==75&&Tiaob==0) Zuob=1,Youb=0,fangb=-1;if(a==77&&Tiaob==0) Youb=1,Zuob=0,fangb=1;if(a=='1'&&Quanb<=3&&fangb==-1&&yb-1>=0) m[xb][yb-1]=16;if(a=='1'&&Quanb<=3&&fangb==1&&yb+1<=19) m[xb][yb+1]=15;if(a=='2'&&fangb==-1&&lanb>=1&&yb!=0) {lanb--,Xue();Zhao++;for(int i=1;i<=3;i++){if(yb-i>=0) m[xb][yb-i]=3;}}if(a=='2'&&fangb==1&&lanb>=1&&yb!=19) {lanb--,Xue();Zhao++;for(int i=1;i<=3;i++){if(yb+i<=19) m[xb][yb+i]=4;}}if(a=='3'&&fangb==1&&lanb>=3&&yb!=19) {lanb-=3;Xue();for(int i=yb;i<=18;i++) m[xb][i]=12;yb=19;Xian();}if(a=='3'&&fangb==-1&&lanb>=3&&yb!=0) {lanb-=3;Xue();for(int i=yb;i>0;i--) m[xb][i]=12;yb=0;Xian();}if(a=='4'&&lanb>=3) lanb-=3,Xue(),Lv(),bloodb+=2;if(a=='5'&&lanb>=5) lanb-=5,Xue(),Zhao+=3,Bao+=3,baox=xb,baoy=yb;if(a=='6'&&lanb>=7) lanb-=7,Xue(),Zhao+=3,Ji+=3,jiy=yb,jif=fangb;
}
int main()
{x:system("cls");srand((unsigned)time(NULL));Bai();cout<<endl<<" -------------------胎红 VS 胎蓝---------------------"<<endl;cout<<" ---------------------------作者:胎神---------------"<<endl<<endl;Yan(5);cout<<" 2.0版本,憾世来袭!"<<endl<<endl;cout<<" 2大更新:"<<endl<<endl;cout<<" 1.完美解决“闪”的问题!"<<endl<<endl;cout<<" 2.单人模式来了!完全电脑AI控制,比双人模式更难!"<<endl<<endl;cout<<" 3.技能平衡性调整,更合理化的对战体验。"<<endl<<endl;Yan(1);cout<<" 已开启 闪光功能:当蓝方挨血时,画面闪蓝光,反之闪红光;恢血时闪绿光。"<<endl<<endl;Bai();cout<<" 请输入: 1.单人模式 2.双人模式"<<endl<<endl;A:a=_getch();if(a=='1'){cout<<" 你要当谁? 1.小胎蓝 2.小胎红 3.老子不想打了,让他们自己打!"<<endl<<endl;b=_getch();cout<<" 选择难度: 1.简单的像吃屎 2.一般的像垃圾 3.巨难的像变胎"<<endl<<endl;cout<<" (难度越简单,对方动作越迟缓。)"<<endl<<endl;d=_getch();if(d=='1') R=5;if(d=='2') R=3;if(d=='3') R=1;system("cls");Xue();Xian();while(blood>0&&bloodb>0){SetPos(0,-4);M=0;Zou();Xian();if(b=='1'||b=='3'){S++;if(S>=R){S=0;c=0;int xxa=xa,yya=ya;if(lanb>=7) r=rand()%6;else if(lanb>=5) r=rand()%7-2;else if(lanb>=3) r=rand()%6-2;else if(lanb>=1) r=rand()%4-1;else r=rand()%3-1;if(Fen>0) xxa=fxa,yya=fya;if((xb==16&&yb==0)||(xb==16&&yb==19)) r=0;if(r==5){if(fangb==-1&&xxa==xb&&yya<=yb) c='6';if(fangb==1&&xxa==xb&&yya>=yb) c='6';else r=0;}if(r==4){if(xxa==xb&&abs(yya-yb)<=1) r=0;if(fangb==-1&&yb-3<=yya&&yya<=yb-1) c='5';if(fangb==1&&yb+3>=yya&&yya>=yb+1) c='5';else r=0;}if(r==3&&bloodb<30&&lan>=3) c='4';if(r==2){if(fangb==-1&&yb-3<=yya&&yya<=yb) c='2';if(fangb==1&&yb+3>=yya&&yya>=yb) c='2';else r=0;}if(r==1){if(fangb==-1&&yb-1==yya) c='1';else if(fangb==1&&yb+1==yya) c='1';else r=0;}if(yya<=yb&&r==0){int rr=rand()%5;if(fangb==-1&&rr==0) c=72;else if(fangb==-1&&rr==1&&abs(yya-yb)>=5) c='3';else c=75;}if(yya>yb&&r==0){int rr=rand()%5;if(fangb==1&&rr==0) c=72;else if(fangb==1&&rr==1&&abs(yya-yb)>=5) c='3';else c=77;}if(c!=0) Go(c);}}if(b=='2'||b=='3'){S++;if(S>=R){S=0;c=0;if(lanb>=10) r=rand()%10;else if(lanb>=5) r=rand()%9-3;else if(lanb>=3) r=rand()%8-3;else if(lanb>=1) r=rand()%6-2;else r=rand()%3-1;if((xa==16&&ya==0)||(xa==16&&ya==19)) r=0;if(r>=6){if(fang==-1&&ya>=yb&&abs(ya-yb)<=2) c='o';if(fang==1&&ya<=yb&&abs(ya-yb)<=2) c='o';else r=0;}if(r==5) c='i';if(r==4&&blood<30&&lan>=3) c='u';if(r==3&&Fen==0) c='l';if(r==2){if(fang==1&&yb-3<=ya&&ya<=yb) c='k';if(fang==-1&&yb+3>=ya&&ya>=yb) c='k';else r=0;}if(r==1){if(fang==1&&yb-1==ya) c='j';else if(fang==-1&&yb+1==ya) c='j';else r=0;}if(ya>=yb&&r==0){int rr=rand()%5;if(fang==-1&&rr==0) c='w';else c='a';}if(ya<yb&&r==0){int rr=rand()%5;if(fang==1&&rr==0) c='w';else c='d';}if(c!=0) Go(c);}}if(kbhit()){SetPos(0,-4);if(b=='1'){if(KEY_DOWN(87)) Go('w');if(KEY_DOWN(65)) Go('a');if(KEY_DOWN(68)) Go('d');if(KEY_DOWN(74)) Go('j');if(KEY_DOWN(75)) Go('k');if(KEY_DOWN(76)) Go('l');if(KEY_DOWN(85)) Go('u');if(KEY_DOWN(73)) Go('i');if(KEY_DOWN(79)) Go('o');}if(b=='2'){if(KEY_DOWN(38)) Go(72);if(KEY_DOWN(37)) Go(75);if(KEY_DOWN(39)) Go(77);if(KEY_DOWN(97)) Go('1');if(KEY_DOWN(98)) Go('2');if(KEY_DOWN(99)) Go('3');if(KEY_DOWN(100)) Go('4');if(KEY_DOWN(101)) Go('5');if(KEY_DOWN(102)) Go('6');}Zou(),Xian();}if(Zhao>0) Zou(),Xian();Sleep(20);}}else if(a=='2'){system("cls");Xue();Xian();while(blood>0&&bloodb>0){SetPos(0,-4);if(!kbhit()) Zou(),Xian();if(kbhit()){SetPos(0,-4);if(KEY_DOWN(87)) Go('w');if(KEY_DOWN(65)) Go('a');if(KEY_DOWN(68)) Go('d');if(KEY_DOWN(74)) Go('j');if(KEY_DOWN(75)) Go('k');if(KEY_DOWN(76)) Go('l');if(KEY_DOWN(85)) Go('u');if(KEY_DOWN(73)) Go('i');if(KEY_DOWN(79)) Go('o');if(KEY_DOWN(38)) Go(72);if(KEY_DOWN(37)) Go(75);if(KEY_DOWN(39)) Go(77);if(KEY_DOWN(97)) Go('1');if(KEY_DOWN(98)) Go('2');if(KEY_DOWN(99)) Go('3');if(KEY_DOWN(100)) Go('4');if(KEY_DOWN(101)) Go('5');if(KEY_DOWN(102)) Go('6');Zou(),Xian();}if(Zhao>0) Zou(),Xian();Sleep(20);}}else goto A;system("cls");if(blood>0) Yan(1);if(bloodb>0) Yan(4);cout<<endl<<endl<<endl;cout<<" ┌-------------┐"<<endl; cout<<" ┆ ┆"<<endl;if(blood>0) cout<<" ┆ 1p WIN!!! ┆"<<endl;if(bloodb>0) cout<<" ┆ 2p WIN!!! ┆"<<endl;cout<<" ┆ ┆"<<endl;cout<<" └-------------┘"<<endl<<endl;Sleep(2000);Bai();system("cls");xa=16,ya=4,xb=16,yb=15,fxa=20,fya=20;xShang=Tiao=Zuo=You,Quan=0,fang=1,blood=50,lan=20;yShang=Tiaob=Zuob=Youb=Quanb=0,fangb=-1,bloodb=50,lanb=20;Zhao=Fen=zou=zhao=Bao=baox=baoy=Di=diy=Bu=0;Lie=liey=lief=liefy=Ji=jiy=jif=Shun=r=R=s=S=M=0;goto x;return 0;
}
危险游戏
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
using namespace std;
float BBlood,BBloodb,Blood,Round;
int attack,Blod,BBlod,I,k,X,W;
void SlowDisplay(int x,char *p)
{while(1){if(*p!=0) printf("%c",*p++);else break;Sleep(x);}
}
void Die()
{system("cls"); SlowDisplay(50,"\nWarning!\nSYSTEM ERROR!!\nThe system is about to collapse!!!");Sleep(1000);X=1;system("shutdown /s");
}
bool Pan()
{if(kbhit()){char a=_getch();if(a=='6') k=1;else if(a!=' ') X=1;}
}
bool Er(int a)
{k=0;for(int i=1;i<=1000;i++){I++;if(k==1||X==1) break;cout<<"C:/Users/test>系统文件";int R=rand()%5+5;int p;for(int j=1;j<=R;j++) p=rand()%26+'a',printf("%c",p); cout<<'.';for(int j=1;j<=3;j++) p=rand()%26+'a',printf("%c",p);int RR=rand()%5,E=rand()%200+300;if(RR==0) cout<<"已损坏."<<endl;if(RR==1) cout<<"已损坏,正在联机检查结果."<<endl;if(RR==2) cout<<"已损坏,正在尝试修复."<<endl;if(RR==3) cout<<"已损坏,即将停用."<<endl;if(RR==4) cout<<"已损坏,预计还要等待"<<E<<"00秒."<<endl;if(I<20) Sleep(100);}if(a==1) for(int i=0;i<=300;i++) {cout<<"胎神6不6!"<<endl;Pan();if(k==1||X==1) break;Sleep(1);}if(a==2) for(int i=0;i<=200;i++) {cout<<"你说什么!!"<<endl;Pan();if(k==1||X==1) break;Sleep(1);}if(a==3) for(int i=0;i<=100;i++) {cout<<"再说一遍!!!"<<endl;Pan();if(k==1||X==1) break;Sleep(1);}if(k==0) Die();return 0;
}
bool KO()
{system("cls");SlowDisplay(50,"C:/Users/test>系统文件windows.h已损坏.\n");SlowDisplay(30,"C:/Users/test>系统文件locale.ct已损坏,正在联机检查结果.\n");SlowDisplay(10,"C:/Users/test>系统文件Google Chrome已损坏,正在尝试修复.\n");SlowDisplay(5,"C:/Users/test>系统文件htmlview.tcl已损坏,预计还要等待51400秒.\n");SlowDisplay(2,"C:/Users/test>系统文件mfile.xbm已损坏,正在尝试修复.\n");SlowDisplay(1,"C:/Users/test>系统文件pt_BR.po已损坏,即将失效.\n");Er(1);if(X==1) return 0;Er(2);if(X==1) return 0;Er(3);if(X==1) return 0;W=1;return 0;
}
void War()
{system("cls");cout<<endl<<"-----------第"<<Round<<"回合----------"<<endl<<endl;Sleep(1000);cout<<"您的血量:"<<Blood<<endl<<endl;Sleep(500);if(Round<=3) cout<<"胎神血量:"<<BBlood<<endl<<endl;else if(Round<=9)printf("胎神血量:%0.9f\n\n",BBlood);else if(Round==10)printf("胎神血量:%di\n\n",Blod);else printf("胎神血量:%di %d\n\n",Blod,BBlod);Sleep(500);A: cout<<"您的攻击力50,按空格攻击。"<<endl<<endl;char a=_getch();if(a!=' ') {cout<<"无效输入。"<<endl<<endl;goto A;}attack=rand()%10+45;Sleep(500);if(Round==7) attack=rand()%10+95,cout<<"您攻击了,并且...",Sleep(500),cout<<"暴击!!!"<<attack<<"点伤害!"<<endl<<endl;else cout<<"您攻击了!造成"<<attack<<"点伤害!"<<endl<<endl;Sleep(500);
}
bool Tai()
{if(Round<=9) cout<<"胎神防御了!"<<endl<<endl;Sleep(500);if(Round<=6) cout<<"您的攻击";else if(Round<=9) cout<<"他的血量";else if(Round>=10) BBlod-=attack;else BBlood-=attack; Sleep(1000);int kk=Round;switch(kk){case 1:{cout<<"被拆分了!变为";int a1=attack/10,a2=attack%10;cout<<a1<<'+'<<a2<<"点伤害!"<<endl<<endl;BBlood-=a1+a2;break;}case 2:{cout<<"被相反数了!变为";cout<<-1*attack<<"点伤害!"<<endl<<endl;BBlood+=attack;break;}case 3:{cout<<"被开方了!变为";float a=sqrt(attack);printf("%0.9f点伤害!\n\n",a);BBlood-=a;break;}case 4:{cout<<"被0.9幂了!变为";float a=pow(0.9,attack);printf("%0.9f点伤害!\n\n",a);BBlood-=a;break;}case 5:{cout<<"被自然对数了!变为";float a=log(attack);printf("%0.9f点伤害!\n\n",a);BBlood-=a;break;}case 6:{cout<<"被正弦了!变为";float a=sin(attack);printf("%0.9f点伤害!\n\n",a);BBlood-=a;break;}case 7:{BBlood-=attack;cout<<"被绝对值了!变为了";printf("%0.9f\n\n",-BBlood);BBlood*=-1;break;}case 8:{cout<<"变圆了!血量变为了";float a=3.141592653;printf("%0.9f",BBlood);Sleep(500);SlowDisplay(20,"*3.1415926535!\n\n");BBlood*=a;break;}case 9:{Blod=BBlood;cout<<"被虚数了!变为了";printf("%di\n\n",Blod);break;}case 10:{cout<<"他的攻击力被初始化了!变为了0x7f7f7f7f!\n\n";break;}}Sleep(500);if(Round<=9) cout<<"胎神攻击了!"<<endl<<endl;Sleep(500);int attack2=rand()%5+1;if(Round<=9) cout<<"您的血量-"<<attack2,Sleep(1000),Blood-=attack2;else{switch(kk){case 10:{cout<<"胎神看了你一眼..."<<endl<<endl;Sleep(500);int attack2=rand()%10+95;cout<<"您的血量-"<<attack2;Blood-=attack2;break;}case 11:{cout<<"胎神又看了你一眼..."<<endl<<endl;Sleep(500);int attack2=rand()%10+195;cout<<"您的血量-"<<attack2;Blood-=attack2;break;}case 12:{cout<<"胎神去颓了一会儿,顺便看了你一眼..."<<endl<<endl;Sleep(500);int attack2=rand()%10+295;cout<<"您的血量-"<<attack2;Blood-=attack2;break;}case 13:{cout<<"胎神无聊了,还是看了你一眼..."<<endl<<endl;Sleep(500);int attack2=Blood-1;cout<<"您的血量-"<<attack2;Blood-=attack2;break;}case 14:{cout<<"胎神开口说话了!!!"<<endl<<endl;Sleep(500);SlowDisplay(200,"啊.......愚昧无知的人类啊......\n\n");SlowDisplay(200,"你还是太弱了啊......\n\n");SlowDisplay(200,"算了.......\n\n");SlowDisplay(200,"我还是给你一次赢的机会吧......\n\n");SlowDisplay(200,"我奉劝你把手放在数字键盘上......\n\n");SlowDisplay(200,"眼睛注意屏幕......\n\n");KO();if(W==1) system("cls"),SlowDisplay(200,"谢谢夸奖!让你通关吧!");break;}}Sleep(1000);}return 0;
}
int main()
{srand((unsigned)time(NULL));SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);BBlood=50;Blood=1000;SlowDisplay(200,"欢迎来到危险游戏!你的目标是打败胎神!\n\n");Sleep(1000);system("cls"); while(1){Round++;War();Tai();if(Round>=14) break;}return 0;
}
超级按钮
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
int mouse,S,An,k,t,Rr,T;
POINT Windowpos()
{POINT pt;GetCursorPos(&pt);HWND h=GetForegroundWindow();ScreenToClient(h,&pt);pt.x/=8;pt.y/=16;return pt;
}
void SlowDisplay(int x,char *p)
{while(1){if(*p!=0) printf("%c",*p++);else break;Sleep(x);}
}
void Color(int a)
{if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);
}
void Luan()
{if(Rr==0) printf("┃过天按钮┃");if(Rr==1) printf("┃过关按扭┃");if(Rr==2) printf("┃过关按纽┃");if(Rr==3) printf("┃过关按忸┃");if(Rr==4) printf("┃过关桉钮┃");if(Rr==5) printf("┃过关侒钮┃");if(Rr==6) printf("┃过关按杻┃");if(Rr==7) printf("┃过关按炄┃");if(Rr==8) printf("┃过关铵钮┃");if(Rr==9) printf("┃过关胺钮┃");
}
void Die()
{system("color 4F");Sleep(2000);system("color 0F");system("cls"); Color(0);SlowDisplay(50,"\nWarning!\nSYSTEM ERROR!!\nThe system is about to collapse!!!");Sleep(1000);system("shutdown /s");
}
void SetPos(int x,int y)
{COORD pos; pos.X=y,pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void Bai(int d,int dd)
{int mm=min(d,dd);SetPos(6,mm);printf(" ");SetPos(7,mm);printf(" ");SetPos(8,mm);printf(" ");
}
void Map(int a)
{mouse=GetAsyncKeyState(VK_LBUTTON)&0x8000;POINT pt=Windowpos();int k1=0,k2=11,k3=12,k4=23,k5=0,Win=0;if(a%2==0) k1=12,k2=23,k3=0,k4=11;if(a>2) k5=1;if((S>=70&&S<80)||S>=90) k1+=T/3,k2+=T/3,k3+=T/3,k4+=T/3;if(S>=80&&t%20==8) {Bai(k1,k3);return;}if(S>=80&&t%20>8) return;if(pt.x>=k1&&pt.x<=k2&&pt.y>=6&&pt.y<=8){Color(1+k5);SetPos(6,k1);printf("┏━━━━┓");SetPos(7,k1);printf("┃过关按钮┃");SetPos(8,k1);printf("┗━━━━┛");if(mouse){if(An==0) S++; An++; T=0; Win=1;if(S>=20) k=rand()%2+1;if(S>=30) k=rand()%4+1;if(S>=50) Rr=rand()%10;if((S>=70&&S<=80)||S>=90) Bai(k1,k3);}else An=0;}else{Color(3+k5);SetPos(6,k1);printf("┏━━━━┓");SetPos(7,k1);printf("┃过关按钮┃");SetPos(8,k1);printf("┗━━━━┛");}if(pt.x>=k3&&pt.x<=k4&&pt.y>=6&&pt.y<=8&&Win==0){Color(2-k5);if(S>=40&&T>=10) mouse=1;SetPos(6,k3);printf("┏━━━━┓");SetPos(7,k3);if(S<50) printf("┃关机按钮┃");else Luan();SetPos(8,k3);printf("┗━━━━┛");if(mouse) {if(An==0) Die();An=0;}}else if(Win==0){Color(4-k5);SetPos(6,k3);printf("┏━━━━┓");SetPos(7,k3);if(S<50) printf("┃关机按钮┃");else Luan();SetPos(8,k3);printf("┗━━━━┛");}
}
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);Color(0);k=1;SlowDisplay(200,"欢迎来到超级按钮!你的目标是按下按钮100次!\n\n");SetPos(2,0),printf("已开启普通模式。");while(S<100){t++;T++;Color(0);SetPos(4,0);Color(0);printf("还需按%d次。\n\n",100-S);if(S==20&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启按钮混乱模式。");if(S==30&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启按钮混乱2.0模式。");if(S==40&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启接触引爆模式。");if(S==50&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启按钮混乱3.0模式。");if(S==60&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启定时引爆模式。");if(S==70&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启移动按钮模式。");if(S==80&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启隐形按钮模式。");if(S==90&&T==1) SetPos(2,0),printf(" "),SetPos(2,0),printf("已开启隐形移动按钮模式。");if(S>=60)SetPos(2,20),printf("%d ",100-T);if(S>=60&&T>=100) {Die();break;}POINT pt; GetCursorPos(&pt);int k1=0,k2=11,k3=12,k4=23;if(k==2) k1=12,k2=23,k3=0,k4=11;Sleep(50); Map(k);}if(S>=100){system("cls");Color(0);SlowDisplay(200,"\n让你通关吧!");}
}
重力消消乐
最新修改:放出键盘操作版(在鼠标版后面),顺便压了一下行。鼠标操作:#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<cmath>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
int m[51][51];
int T,S,mS,Die;
int G,gx,sx;
int mouse;
void Color(int a){if(a==-1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);if(a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);if(a==14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);if(a==15) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);if(a==16) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);}
POINT Windowpos(){POINT pt;GetCursorPos(&pt);HWND h=GetForegroundWindow();ScreenToClient(h,&pt);pt.x=(pt.x+4)/16-1;pt.y=18-pt.y/16;swap(pt.x,pt.y);return pt;}
void SetPos(int x,int y){COORD pos;pos.X=y*2+2,pos.Y=18-x;if(y==-1) pos.X++;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
void Map()
{if(mS<S) mS=S;Color(0);SetPos(17,1),cout<<"Score: "<<max(0,S)<<" ";SetPos(16,1),cout<<"MaxScore: "<<mS<<" ";for(int i=1;i<=11;i++)for(int j=1;j<=10;j++){if(m[i][j]==0&&i!=11) SetPos(i,j),cout<<" ";if(m[i][j]==1) SetPos(i,j),Color(5),cout<<"█",m[i][j]=0;if(m[i][j]==120) SetPos(i,j),Color(5),cout<<"★";else if(m[i][j]>=100){int R=m[i][j]/100;SetPos(i,j),Color(m[i][j]%100);if(R==1) cout<<"▉";if(R==2) cout<<"█▉";if(R==3) cout<<"██▉";if(R==4) cout<<"███▉";if(R==5) cout<<"████▉";j+=R-1;}}
}
void Down(int a,int x)
{int B=0,s[11];if(a==0){for(int i=2;i<=10;i++)for(int j=1;j<=10;j++){if(m[i][j]>=100){int b=0,R=m[i][j]/100;memset(s,0,sizeof(s));for(int k=1;k<=10;k++) {if(m[i-1][k]>=100) {int R=m[i-1][k]/100;for(int l=k;l<=k+R-1;l++) s[l]=1;k+=R-1;}}for(int k=j;k<j+R;k++) if(s[k]!=0) b=1;if(b==0) {x++;swap(m[i-1][j],m[i][j]);B=1;if(x>10) Sleep(10);else if(x>5) Sleep(50);else Sleep(100);Map();}}}}if(a==1){for(int i=9;i>=1;i--)for(int j=1;j<=10;j++)if(m[i][j]>=100){int b=0,R=m[i][j]/100;memset(s,0,sizeof(s));for(int k=1;k<=10;k++) {if(m[i+1][k]>=100) {int R=m[i+1][k]/100;for(int l=k;l<=k+R-1;l++) s[l]=1;k+=R-1;}}for(int k=j;k<j+R;k++) if(s[k]!=0) b=1;if(b==0) {x++;swap(m[i+1][j],m[i][j]);B=1;if(x>10) Sleep(10);else if(x>5) Sleep(50);else Sleep(100);Map();}}}if(B!=0) Down(a,x);
}
void Ji(int y,int a);
void Sheng()
{int n=0,f=0;N: S++;n++;if(G==0) for(int i=12;i>0;i--) swap(m[i],m[i-1]);if(G==1) for(int k=1;k<=10;k++) if(m[1][k]>=100) f=1;if(f==1) return;M: int B,C; B=C=0;for(int i=1;i<=10;i++){int r=rand()%6+1,R=rand()%max(10,30-S/20)+1; if(T%2==0) r+=10; if(T>30&&R==6) R=rand()%2+3;if(R<=3||(T>5&&R==4)||(T>40&&R==5)) {B=1;if(10-i+1<R) R=10-i+1;m[1][i]=R*100+r;i+=R-1;}else C=1;}if(B==0||C==0) goto M;if(T!=0&&T%7==0&&n==1) {int rr=rand()%10+1;Ji(rr,1);m[1][rr]=120;}for(int k=1;k<=10;k++) if(m[8][k]>=100) return;if(T>20&&n<2) {Map();Sleep(500);goto N;}if(T>50&&n<3) {Map();Sleep(500);goto N;}
}
void Star(int x,int y);
int Lie()
{int f=0;for(int i=1;i<=10;i++)for(int j=1;j<=10;j++){int R=m[i][j];if(m[i][j]>=400) f=1;if(m[i][j]>=510) m[i][j]=m[i][j+2]=m[i][j+4]=R-400,m[i][j+1]=m[i][j+3]=R-410;else if(m[i][j]>=500) m[i][j]=m[i][j+2]=m[i][j+4]=R-400,m[i][j+1]=m[i][j+3]=R-390;else if(m[i][j]>=410) m[i][j]=m[i][j+2]=R-300,m[i][j+1]=m[i][j+3]=R-310;else if(m[i][j]>=400) m[i][j]=m[i][j+2]=R-300,m[i][j+1]=m[i][j+3]=R-290;}return f;
}
void Ji(int y,int a)
{int st=0,t[11][2],x=10;if(a==1) x=1;for(int i=1;i<=x;i++){if(m[i][y]==120) st++,t[st][0]=i,t[st][1]=y;else if(m[i][y]>=200) m[i][y+1]=m[i][y]-100;else if(m[i][y-4]>=500) m[i][y-4]-=100;else if(m[i][y-3]>=400) m[i][y-3]-=100;else if(m[i][y-2]>=300) m[i][y-2]-=100;else if(m[i][y-1]>=200) m[i][y-1]-=100;m[i][y]=1;}for(int i=1;i<=st;i++) Star(t[i][0],t[i][1]);
}
bool Kline();
void Star(int x,int y)
{K:int D;int R=rand()%5+1;Color(5);S+=5;SetPos(15,1); cout<<" ";SetPos(14,1); cout<<" ";SetPos(13,1); cout<<" ";if(R==1) {SetPos(14,1),cout<<"激光!";Sleep(1000);int r=y+(rand()%2)*2-1;if(y==1) r=y+1;if(y==10) r=y-1;Ji(y,0);Ji(r,0);Ji(y,0);Ji(r,0);Map();Sleep(500);Map();}if(R==2) {SetPos(14,1),cout<<"反重力!";Sleep(1000);gx+=6;G=1;Down(G,0);while(Kline());}if(R==3) {SetPos(14,1),cout<<"封冻时间!";Sleep(1000);sx+=6;Map();}if(R==4) {for(int i=1;i<=10;i++) if(m[10-G*9][i]!=0||m[9-G*7][i]!=0) {D=1;break;}if(D==1) goto K;SetPos(14,1),cout<<"下雨!";Sleep(1000);for(int i=1;i<=10;i++) {if(m[10-G*9][i]>=100) i+=m[10-G*9][i]/100-1; else m[10-G*9][i]=101+5*(i%3);}while(Kline());}if(R==5) {if(Lie()==0) goto K;SetPos(14,1),cout<<"四分五裂!";Sleep(1000);Map();while(Kline());}
}
bool Kline()
{int B=0,b,st=0,t[11][2];Down(G,0);for(int i=1;i<=10;i++){b=0;for(int j=1;j<=10;j++){if(m[i][j]>=100){int R=m[i][j]/100;j+=R-1;}else b=1;}if(b==0){for(int k=1;k<=10;k++) {if(m[i][k]==120) st++,t[st][0]=i,t[st][1]=k;m[i][k]=1;}B=1;S+=10;Map();Sleep(200);Map();Down(G,0);}}for(int i=1;i<=st;i++) Star(t[i][0],t[i][1]);return B;
}
void Move()
{int q,w,s[12],d,dd;char e;M:POINT pt;Color(0);SetPos(14,1); cout<<"请双击需要移动块。 ";SetPos(13,1); cout<<"左键确定,按 ";Color(5);cout<<"这里";Color(0);if(sx==0) cout<<" 跳过。";else cout<<"终止冻结.";while(1) {mouse=GetAsyncKeyState(VK_LBUTTON)&0x8000;pt=Windowpos();if(mouse) break;}q=1;if(pt.x==13&&pt.y>=7&&pt.y<=8) q=0;if(q==0&&sx!=0) sx=0;else if(q!=0){q=pt.x,w=pt.y;if(m[q][w]>=100) w=w;else if(m[q][w-1]>=200) w--;else if(m[q][w-2]>=300) w-=2;else if(m[q][w-3]>=400) w-=3;else if(m[q][w-4]>=500) w-=4;else{Color(3);SetPos(12,3); cout<<"无效点击。";Sleep(800);SetPos(12,1); cout<<" ";goto M;}d=dd=w;SetPos(q,w);Color(0);int R=m[q][w]/100;if(m[q][w]==120) cout<<"★";else{if(R==1) cout<<"▉";if(R==2) cout<<"█▉";if(R==3) cout<<"██▉";if(R==4) cout<<"███▉";if(R==5) cout<<"████▉";}SetPos(15,1); cout<<" ";SetPos(14,1); cout<<" ";SetPos(13,1); cout<<" ";SetPos(14,1); cout<<"按←→水平控制白亮块。";SetPos(13,1); cout<<"按↓确定,按↑撤销。";memset(s,0,sizeof(s));for(int i=1;i<=10;i++) {if(m[q][i]>=100&&i!=w) {R=m[q][i]/100;for(int j=i;j<=i+R-1;j++) s[j]=1;i+=R-1;}}R=m[q][w]/100;while(e!=80){e=_getch();if(e==75&&s[d-1]==0&&d>1) swap(m[q][d],m[q][d-1]),d--,Map();if(e==77&&s[d+R]==0&&d+R<=10) swap(m[q][d],m[q][d+1]),d++,Map();if(e==72) {swap(m[q][d],m[q][dd]),Map();goto M;}}}SetPos(13,1); cout<<" ";SetPos(14,1);Color(0); cout<<"正在处理...请稍后... ";SetPos(15,1); cout<<" ";while(Kline());
}
void Start(){system("cls");Color(0);SetPos(17,2); cout<<"重 力 消 消 乐 2.0";SetPos(16,2); cout<<"Gravity Blast";SetPos(15,-1); cout<<"--------------------------";SetPos(14,2); cout<<"这是胎神大大编的";SetPos(13,2); cout<<"第一个益智游戏。"; SetPos(12,-1); cout<<"--------------------------";SetPos(11,-1); cout<<"游戏规则:";SetPos(10,0); cout<<"每一回合会从底部产生块。"; SetPos(8,0); cout<<"选择一个块来水平移动,"; SetPos(6,0); cout<<"落下后形成一行可消除得分!";SetPos(4,0); cout<<"若有块被刺破,游戏结束。"; SetPos(3,-1); cout<<"--------------------------";SetPos(2,-1); cout<<"另:星星被消后有特殊效果!";SetPos(0,1); cout<<"按y开始游戏!";char e;while(e!='y') e=_getch();system("cls");Color(-1);SetPos(0,0); cout<<"████████████";for(int i=1;i<=10;i++) SetPos(i,11),cout<<"█",SetPos(i,0),cout<<"█";Color(0);SetPos(14,1); cout<<"正在准备...请稍后...";SetPos(11,0);Color(4);cout<<"▼▼▼▼▼▼▼▼▼▼▼▼";}
int main()
{system("mode con cols=28 lines=20");CONSOLE_CURSOR_INFO cursor_info={1,0};SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);srand((unsigned)time(NULL));St: S=T=-5;Die=G=gx=sx=0;memset(m,0,sizeof(m)); Start();for(int i=1;i<=4;i++) {T++,Sheng(),Map();while(Kline());Sleep(500);}while(1){T++;int f=0;if(gx!=0) gx--;if(gx==0) G=0;Down(G,0);if(sx!=0) sx--;else Sheng();Map();for(int i=1;i<=10;i++) {if(m[11][i]!=0) Die=1;} if(Die==1) break;while(Kline());Move();Sleep(500);}system("color 4F");Sleep(1000);SetPos(17,6),Color(0),cout<<" You Die! ";SetPos(16,6),cout<<" 按y重玩。";char e;while(e!='y') e=_getch(); goto St; return 0;
}
小胎大乱斗最新修改:存读档验证码系统全新加入!如果你在之前有号,这个版本不支持了哦!#include<bits/stdc++.h>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
using namespace std;
bool Black;
void Color(int a){if(Black==1) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0);return;}if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);if(a==9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_BLUE);if(a==10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);if(a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);if(a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
void SetPos(int x,int y) {COORD pos;pos.X=y*2,pos.Y=x;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}
void Slow(int a,char *p) {while(1){if(*p!=0)printf("%c",*p++);else break;Sleep(a);}}
struct node{char Name[201];int Blood,Bloodmax,Bloodjia;int Skilnum,Skilmax,Money,EXP,Shan;int Skil[1001],Skilstr[1001]; //触发率 int Blp,Blpt,Duk,Dut,Ice,Yun,Wudi,Wudit,Qipt;float Qi,Qip,Qijia;
}You[1001],Guai[1001];
struct node2{char Name[201];float Qi;int Kill,What,color; //物法int Any,Anykill[1001],Anywhat[1001],Time[1001]; //额外种类float Anyqi[1001];
}Skill[1001];
int Skkk[1001],Skll,skk,Tong,Tongmax,Ju,Juk,Jiao,Shen,Ji,Yuan,Shan,Fu;
int dy,dd,Dy,Dd,sa,sb,sc,ss,k1=-1,k2,k3,k4;
bool Y[10001],D[10001];
void CheckMe(){int aa=0;system("cls");Color(0);SetPos(1,1),printf("--------查看本体技能--------");SetPos(3,1),printf("技能数量上限:%d",You[0].Skilmax);for(int i=1;i<=You[0].Skilmax;i++){if(You[0].Skilnum<i) {SetPos(5,i*11-10),cout<<"技能"<<i<<":空技能槽";continue;}SetPos(5,i*11-10),cout<<"技能"<<i<<":";Color(Skill[You[0].Skil[i]].color);printf("%s",Skill[You[0].Skil[i]].Name);Color(0);SetPos(7,i*11-10),cout<<"耗气量:";printf("%0.1f",Skill[You[0].Skil[i]].Qi);SetPos(9,i*11-10),cout<<"技能类型:";if(Skill[You[0].Skil[i]].What==1) cout<<"单体伤害";if(Skill[You[0].Skil[i]].What==2) cout<<"群体伤害";if(Skill[You[0].Skil[i]].What==3) cout<<"防御与辅助";if(Skill[You[0].Skil[i]].What<=2) SetPos(11,i*11-10),cout<<"攻击力:"<<Skill[You[0].Skil[i]].Kill;else SetPos(11,i*11-10),cout<<"无攻击力......";SetPos(13,i*11-10); if(Skill[You[0].Skil[i]].What%10!=4) cout<<"额外";cout<<"效果:";if(Skill[You[0].Skil[i]].Any==0) cout<<"无";else{for(int j=1;j<=Skill[You[0].Skil[i]].Any;j++){aa=max(aa,j);int Sk=Skill[You[0].Skil[i]].Anywhat[j];SetPos(14+j*3-2,i*11-10);printf("%d. ",j);if(Skill[You[0].Skil[i]].What<=2){if(Sk==1) printf("冰冻"),SetPos(14+j*3-1,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);if(Sk==2) printf("毒伤"),SetPos(14+j*3-1,i*11-9),printf(" 攻击力:%d",Skill[You[0].Skil[i]].Anykill[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);if(Sk==3) printf("暴击率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';if(Sk==4) printf("连击率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';if(Sk==5) printf("眩晕率"),SetPos(14+j*3-1,i*11-9),printf(" 触发百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';if(Sk==6) printf("百分比伤害"),SetPos(14+j*3-1,i*11-9),printf(" 伤害百分比:%d",Skill[You[0].Skil[i]].Anykill[j]),cout<<'%';if(Sk==7) printf("吸血"),SetPos(14+j*3-1,i*11-9),printf(" 加血量:%d",Skill[You[0].Skil[i]].Kill);}else{if(Sk==1) printf("加血"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%d",Skill[You[0].Skil[i]].Anykill[j]);if(Sk==2) printf("无敌"),SetPos(14+j*3-1,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);if(Sk==3) printf("持续加血"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%d",Skill[You[0].Skil[i]].Anykill[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);if(Sk==4) printf("持续加气"),SetPos(14+j*3-1,i*11-9),printf(" 增幅量:%0.1f",Skill[You[0].Skil[i]].Anyqi[j]),SetPos(14+j*3,i*11-9),printf(" 持续时间:%d",Skill[You[0].Skil[i]].Time[j]);}}}}SetPos(16+aa*3,1),cout<<"按任意键退出。";char a;a=_getch();
}
void ChangeSkill(){system("cls");Color(0);if(Jiao==4) {SetPos(22,1),Color(5),printf("教程提示 4 :你现在最多可以装备2个技能,\n 技能均需要“气”来使用,你可以“蓄气”来增加你的气数。\n 按 2 1 装备,否则退出教程。"),Color(0);SetPos(0,0);}if(Jiao==8) {SetPos(22,1),Color(5),printf("教程提示 8 :群攻技能无需瞄准,\n 其会在发出时攻击所有人。\n 按 1 1 装备,否则退出教程。"),Color(0);SetPos(0,0);}SetPos(1,1),printf("--------修改本体技能--------");SetPos(3,1),printf("本体技能:\n");int i;for(i=1;i<=You[0].Skilnum;i++) Color(0),printf("\n %d: ",i),Color(Skill[You[0].Skil[i]].color),printf("%s",Skill[You[0].Skil[i]].Name);if(You[0].Skilnum<You[0].Skilmax) Color(0),printf("\n %d: 放入空技能槽",You[0].Skilnum+1),i++;Color(0),printf("\n\n 闲置技能:\n");if(skk==0) printf("\n 无");else for(int i=1;i<=skk;i++) Color(0),SetPos(9+i,1),printf("\n %d: ",i),Color(Skill[Skkk[i]].color),printf("%s",Skill[Skkk[i]].Name);Color(0),printf("\n\n 请输入你想交换的两个技能的编号(回车确定,输 0 0 退出)----- ");int a,b;cin>>a>>b;if(a==2&&b==1&&Jiao==4) Jiao++;if((a!=2||b!=1)&&Jiao==4) Jiao=-1;if(a==1&&b==1&&Jiao==8) Jiao++;if((a!=1||b!=1)&&Jiao==8) Jiao=-1;if(a==You[0].Skilnum+1){You[0].Skilnum++,You[0].Skil[You[0].Skilnum]=Skkk[b];for(int i=b;i<skk;i++) swap(Skkk[i],Skkk[i+1]);Skkk[skk]=0;skk--;ChangeSkill();}else if(a!=0) swap(You[0].Skil[a],Skkk[b]),ChangeSkill();
}
void CheckUs(){system("cls");Color(0);SetPos(1,1),printf("--------查看同伴技能--------");SetPos(3,1),printf("同伴数量:%d 同伴上限:%d",Tong,Tongmax);for(int i=1;i<=Tong;i++){SetPos(5,i*11-10),cout<<"同伴"<<i<<":";SetPos(7,i*11-10),cout<<"技能数量上限:"<<You[i].Skilmax;SetPos(9,i*11-10),cout<<"技能数量:"<<You[i].Skilnum;for(int j=1;j<=You[i].Skilnum;j++)SetPos(9+2*j,i*11-10),printf("第%d技能:",j),Color(Skill[You[i].Skil[j]].color),cout<<Skill[You[i].Skil[j]].Name,Color(0);}SetPos(22,1),cout<<"按任意键退出。";char a;a=_getch();
}
void StartSkill(){system("cls");Color(0);SetPos(1,1),printf("Hi,请输入你的新技能的名字......");int x=100+Skll;Skll++;float X=1,Sha=0;skk++,Skkk[skk]=x;scanf("%s",&Skill[x].Name);printf("\n 请输入技能种类......\n\n");printf(" 1.单体伤害 2.群体伤害 3.防御与辅助 ..... ");cin>>Skill[x].What;if(Skill[x].What==2) X*=3;if(Skill[x].What<=2){printf("\n 请输入技能攻击力(建议<100,不然耗气量会巨多)......");cin>>Skill[x].Kill;Sha+=Skill[x].Kill;printf("\n 请输入技能额外效果数(建议<3,不然耗气量会巨多)......");cin>>Skill[x].Any;for(int i=1;i<=Skill[x].Any;i++){printf("\n 请输入技能 额外效果 %d:",i);printf("\n\n 1.冰冻 2.毒伤 3.暴击率 4.连击率");printf("\n 5.眩晕率 6.百分比伤害 7.吸血 ..... ");//10为 偷钱 cin>>Skill[x].Anywhat[i];int a=Skill[x].Anywhat[i];if(a>=3&&a<=6) printf("\n 请输入其的百分比(必须<80!建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];if(a==2) printf("\n 请输入其的攻击力(建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];if(a<=2) printf("\n 请输入其的持续时间(建议<4,不然耗气量会巨多)......"),cin>>Skill[x].Time[i];int w=Skill[x].Kill,z=Skill[x].Anykill[i],t=Skill[x].Time[i];if(a==1) Sha+=50*t;if(a==2) Sha+=0.5*z*t;if(a==3) {if(z<20) X*=1+z/100;else if(z<50) X*=1+z/50;else X*=z/20;}if(a==4) {if(z<30) X*=1+z/80;else if(z<60) X*=0.8+z/30;else X*=z/5-3;}if(a==5) {if(z<30) X*=1+z/100;else if(z<50) X*=0.8+z/40;else X*=z/10-3;}if(a==6) Sha+=3*z;if(a==7) Sha+=1.3*w;}}else{printf("\n 请输入技能效果数(建议<3,不然耗气量会巨多)......");cin>>Skill[x].Any;for(int i=1;i<=Skill[x].Any;i++){printf("\n 请输入技能 额外效果 %d ......",i);printf("\n\n 1.加血 2.无敌 3.持续加血 4.持续加气"); //5为 召唤 cin>>Skill[x].Anywhat[i];int a=Skill[x].Anywhat[i];if(a==1||a==3) printf("\n 请输入其的增幅量(建议<30,不然耗气量会巨多)......"),cin>>Skill[x].Anykill[i];if(a==4) printf("\n 请输入其的增幅量(可输入一位小数,建议<3,不然耗气量会巨多)......"),cin>>Skill[x].Anyqi[i];if(a>=2) printf("\n 请输入其的持续时间(建议<4,不然耗气量会巨多)......"),cin>>Skill[x].Time[i];int w=Skill[x].Kill,z=Skill[x].Anykill[i],t=Skill[x].Time[i];float v=Skill[x].Anyqi[i];if(a==1) Sha+=z;if(a==2) Sha+=20*t;if(a==3) Sha+=t*z;if(a==4) Sha+=20*t*v;if(a==4&&t==1) Sha*=500;if(a==4&&t==2) Sha*=100;}}printf("\n 请输入其的颜色......");Color(1),cout<<"\n 1.蓝 ";Color(2),cout<<"2.绿 ";Color(3),cout<<"3.紫 ";Color(4),cout<<"4.红 ";Color(5),cout<<"5.黄 ";Color(6),cout<<"6.深蓝 ";Color(7),cout<<"\n 7.青 ";Color(8),cout<<"8.深绿 ";Color(9),cout<<"9.深紫 ";Color(10),cout<<"10.深红 ";Color(11),cout<<"11.木色 ";Color(12),cout<<"12.灰 ";Color(0),cin>>Skill[x].color;if(Sha<20) Sha=Sha/30;else if(Sha<50) Sha=Sha/40+0.5;else if(Sha<200) Sha=Sha/150+1.5;else Sha=Sha/70;Skill[x].Qi=Sha*X*10/(0.8+0.1*Ju);int skillqi=Skill[x].Qi;Skill[x].Qi=(float)skillqi/10;printf("\n 计算已完成,这个技能的耗气量为------- %0.1f\n",Skill[x].Qi);cout<<"\n 按 y 更改技能,按 0 退出。";char a;cin>>a;if(a=='y') ChangeSkill();
}
void Main();
void Killk(int c,int a,int b){//单体 int RR=0,bxb=0;if(Guai[b].Blood<=0) return;int RRR=rand()%100;if(Skill[a].Kill>5) RR=rand()%(Skill[a].Kill/5)-Skill[a].Kill/10;printf("\n %s攻击了%s!\n",You[c].Name,Guai[b].Name);Sleep(200);if(Guai[b].Wudi>0) {printf("\n 但是!%s是无敌的!\n",Guai[b].Name);Sleep(200);return;}if(Guai[b].Shan>RRR) {printf("\n 但是!%s闪避开了!\n",Guai[b].Name);Sleep(200);return;}int ki=Skill[a].Kill+RR;Guai[b].Blood-=ki;if(Skill[a].Kill>0) {printf("\n %s受到%d点伤害,血量还剩%d。\n",Guai[b].Name,ki,Guai[b].Blood);Sleep(200);}for(int i=1;i<=Skill[a].Any;i++){int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i],m=Skill[a].Kill,mmm;int r1=rand()%100+1,r2=rand()%50+51,r3=rand()%100+1;if(j==1) Guai[b].Ice+=k,printf("\n %s被冰冻!冰冻时间还剩%d。\n",Guai[b].Name,Guai[b].Ice);if(j==2) Guai[b].Dut+=k,Guai[sb].Duk=l,printf("\n %s中毒!中毒时间还剩%d。\n",Guai[b].Name,Guai[b].Dut);if(j==3&&r1<=l) mmm=m*r2/100,Guai[b].Blood-=mmm,printf("\n %s被暴击!多受到%d点伤害,血量还剩%d。\n",Guai[b].Name,mmm,Guai[b].Blood);if(j==4&&r1<=l&&Guai[b].Blood>0) Guai[b].Blood-=m,printf("\n %s被连击!再次受到%d点伤害,血量还剩%d。\n",Guai[b].Name,m,Guai[b].Blood),i--;if(j==5&&r1<=l) Guai[b].Yun++,printf("\n %s被击晕!击晕时间还剩%d。\n",Guai[b].Name,Guai[b].Yun);if(j==6) mmm=Guai[b].Blood*l/100,Guai[b].Blood-=mmm,printf("\n %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",Guai[b].Name,mmm,Guai[b].Blood);if(j==7) You[c].Blood=min(You[c].Bloodmax,You[c].Blood+Skill[a].Kill+RR),printf("\n %s被吸血! %s的血量增加%d,还剩%d。\n",Guai[b].Name,You[c].Name,Skill[a].Kill+RR,You[c].Blood);Sleep(200);}if(Guai[b].Blood<=0) Color(4),printf("\n %s阵亡!",Guai[b].Name),dy--,Color(0),printf("你的金币+%d!\n",Guai[b].Money),You[0].Money+=Guai[b].Money;
}
void Killkk(int c,int a){//辅助 for(int i=1;i<=Skill[a].Any;i++){int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i];float m=Skill[a].Anyqi[i];int r1=rand()%100+1,r2=rand()%100+1,r3=rand()%100+1;if(j==1) You[c].Blood+=l,You[c].Blood=min(You[c].Bloodmax,You[c].Blood),printf("\n %s加血%d!血量还剩%d。\n",You[c].Name,l,You[c].Blood);if(j==2) You[c].Wudi+=k,printf("\n %s开启无敌!无敌时间还剩%d。\n",You[c].Name,You[c].Wudi);if(j==3) You[c].Blpt+=k,You[c].Blp=l,printf("\n %s开启持续加血!持续时间还剩%d。\n",You[c].Name,You[c].Blpt);if(j==4) You[c].Qipt+=k,You[c].Qip=m,printf("\n %s开启持续加气!持续时间还剩%d。\n",You[c].Name,You[c].Qipt);Sleep(200);}
}
void Killkkk(int c,int a){//群攻 bool k[1001];memset(k,0,sizeof(k));int R=min(rand()%3+4,dy),ll=0;for(int i=1;i<=R;i++){int j=rand()%Dy+1;if(Guai[j].Blood>0&&k[j]==0) Killk(c,a,j),k[j]=1,ll=0;else i--,ll++;if(ll>=5) break;}
}
void Killk2(int b,int a,int c){//怪单体int RR=0;if(Skill[a].Kill>5) RR=rand()%(Skill[a].Kill/5)-Skill[a].Kill/10;int RRR=rand()%100;printf("\n %s攻击了%s!\n",Guai[b].Name,You[c].Name);Sleep(200);if(You[c].Wudi>0) {printf("\n 但是!%s是无敌的!\n",You[c].Name);Sleep(200);return;}if(You[c].Shan>RRR) {printf("\n 但是!%s闪避开了!\n",You[c].Name);Sleep(200);return;}int ki=Skill[a].Kill+RR;You[c].Blood-=ki;if(Skill[a].Kill>0) {printf("\n %s受到%d点伤害,血量还剩%d。\n",You[c].Name,ki,You[c].Blood);Sleep(200);}for(int i=1;i<=Skill[a].Any;i++){int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i],m=Skill[a].Kill,mmm;int r1=rand()%100+1,r2=rand()%50+51,r3=rand()%100+1;if(j==1) You[c].Ice+=k,printf("\n %s被冰冻!冰冻时间还剩%d。\n",You[c].Name,You[c].Ice);if(j==2) You[c].Dut+=k,You[c].Duk=l,printf("\n %s中毒!中毒时间还剩%d。\n",You[c].Name,You[c].Dut);if(j==3&&r1<=l) mmm=m*r2/100,You[c].Blood-=mmm,printf("\n %s被暴击!多受到%d点伤害,血量还剩%d。\n",You[c].Name,mmm,You[c].Blood);if(j==4&&r1<=l&&You[c].Blood>0) You[c].Blood-=m,printf("\n %s被连击!再次受到%d点伤害,血量还剩%d。\n",You[c].Name,m,You[c].Blood),i--;if(j==5&&r1<=l) You[c].Yun++,printf("\n %s被击晕!击晕时间还剩%d。\n",You[c].Name,You[c].Yun);if(j==6) mmm=You[c].Blood*l/100,You[c].Blood-=mmm,printf("\n %s遭受百分比伤害!受到%d点伤害,血量还剩%d。\n",You[c].Name,mmm,You[c].Blood);if(j==7) Guai[b].Blood=min(Guai[b].Bloodmax,Guai[b].Blood+Skill[a].Kill+RR),printf("\n %s被吸血! %s的血量增加%d,还剩%d。\n",You[c].Name,Guai[b].Name,Skill[a].Kill+RR,Guai[b].Blood);if(j==10) l=min(You[0].Money,l),You[0].Money-=l,Guai[b].Money+=l,printf("\n 你队被偷钱!金币数量减少%d,还剩%d,%s金币加为%d。\n",l,You[0].Money,Guai[b].Name,Guai[b].Money);Sleep(200); }int as=rand()%5;if(You[c].Skilnum==0) as=0;if(Skill[a].What==1&&Skill[a].Anywhat[1]==10) as=1; //偷钱 if(c!=0&&You[c].Skilmax!=You[c].Skilnum&&as==0) Color(5),printf("\n 但是!%s学会了此技能!\n",You[c].Name),You[c].Skilnum++,You[c].Skil[You[c].Skilnum]=a,Color(0),Sleep(200);if(You[c].Blood<=0){Color(4),printf("\n %s阵亡!\n",You[c].Name),dd--;int rrR=rand()%30;if(rrR==0&&c!=0){Tong=max(0,Tong-1);Slow(70,"\n 你的同伴对你们黑暗的前途叹了口气...\n 毅然决然地拖着已失去知觉的身体,走出了战场...\n 消失在地平线上!\n");for(int i=c;i<=Tong;i++) swap(You[i],You[i+1]);}Color(0);}if(You[0].Blood<=0&&Fu!=0) Color(5),printf("\n 但是!%s复活!\n",You[c].Name),You[0].Blood=20,dd++,Fu--,Color(0);
}
void Startguai(int a);
void Killkk2(int a,int b){//怪辅助 for(int i=1;i<=Skill[a].Any;i++){int j=Skill[a].Anywhat[i],k=Skill[a].Time[i],l=Skill[a].Anykill[i];int r1=rand()%100+1,r2=rand()%100+1,r3=rand()%100+1;if(j==1) Guai[b].Blood+=l,Guai[b].Blood=min(Guai[b].Bloodmax,Guai[b].Blood),printf("\n %s加血%d!血量还剩%d。\n",Guai[b].Name,l,Guai[b].Blood);if(j==2) Guai[b].Wudi+=k,printf("\n %s开启无敌!无敌时间还剩%d。\n",Guai[b].Name,Guai[b].Wudi);if(j==3) Guai[b].Blpt+=k,Guai[b].Blp=l,printf("\n %s开启持续加血!持续时间还剩%d。\n",Guai[b].Name,Guai[b].Blpt);if(j==5) Startguai(Skill[a].Anykill[i]),printf("\n %s召唤了%s!%s加入战场。\n",Guai[b].Name,Guai[Dy].Name,Guai[Dy].Name);Sleep(200);}
}
void Killkkk2(int a,int b){//怪群攻bool k[1001];memset(k,0,sizeof(k));int R=min(rand()%3+3+Ju,dd),ll=0;for(int i=1;i<=R;i++){int j=rand()%Dd;if(You[j].Blood>0&&k[j]==0) Killk2(b,a,j),k[j]=1,ll=0;else i--,ll++;if(ll>=5) break;}
}
void Killguai(int aa){//你队 int kk=0;Color(5);printf("\n %s的回合!\n\n",You[aa].Name),Sleep(500);Color(0);if(You[aa].Wudi>0) You[aa].Wudi--,printf(" %s还在无敌!持续时间还剩%d。\n\n",You[aa].Name,You[aa].Wudi),Sleep(200);if(You[aa].Qipt>0) You[aa].Qipt--,You[aa].Qi+=You[aa].Qip,printf(" %s的气增加%0.1f,还剩%0.1f,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Qip,You[aa].Qi,You[aa].Qipt),Sleep(200);if(You[aa].Blpt>0) You[aa].Blpt--,You[aa].Blood+=You[aa].Blp,You[aa].Blood=min(You[aa].Bloodmax,You[aa].Blood),printf(" %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Blp,You[aa].Blood,You[aa].Blpt),Sleep(200);if(You[aa].Dut>0) You[aa].Dut--,You[aa].Blood-=You[aa].Duk,printf(" %s毒发!其的血量减少%d,还剩%d,持续时间还剩%d。\n\n",You[aa].Name,You[aa].Duk,You[aa].Blood,You[aa].Dut),Sleep(200);if(You[aa].Ice>0) kk=1,You[aa].Ice--,printf(" %s被冰冻了......,冰冻时间还剩%d。\n\n",You[aa].Name,You[aa].Ice),Sleep(200);if(You[aa].Yun>0) {You[aa].Yun--;if(kk==1) cout<<endl<<" 同时,";else cout<<endl<<" ";printf("%s被击晕了......,击晕时间还剩%d\n\n",You[aa].Name,You[aa].Yun),Sleep(200);return;}if(You[aa].Blood<=0) Color(4),printf("\n %s阵亡!\n",You[aa].Name),dd--,kk=1,Color(0);if(kk==1) return;if(aa==0){You[aa].Qi+=You[aa].Qijia;You[aa].Blood+=You[aa].Bloodjia;You[aa].Blood=min(You[aa].Blood,You[aa].Bloodmax);Color(0),printf(" 你的气数+%0.1f: %0.1f\n",You[aa].Qijia,You[aa].Qi);Color(0),printf("\n 你的血量+%d: %d\n",You[aa].Bloodjia,You[aa].Blood);printf("\n 你的技能:\n");Sleep(200);Color(0),printf("\n 0: 蓄气");for(int i=1;i<=You[aa].Skilnum;i++) {Color(0),printf("\n %d: ",i),Color(Skill[You[aa].Skil[i]].color),printf("%s",Skill[You[aa].Skil[i]].Name);Color(0);if(Skill[You[aa].Skil[i]].Qi>You[aa].Qi) cout<<"(不可用)";}printf("\n\n 请输入你想使用技能的编号----- ");int a,b;cin>>a;if(a==0) You[aa].Qi+=1,printf("\n %s蓄气!你的气数 +1,还剩%0.1f。\n",You[aa].Name,You[aa].Qi);else{int c=You[aa].Skil[a];if(You[aa].Qi-Skill[c].Qi<0) return;You[aa].Qi-=Skill[c].Qi;if(Skill[c].What==1){Color(0),printf("\n 当前敌人:\n");for(int i=1;i<=Dy;i++) if(Guai[i].Blood>0) {printf("\n %d: %s (血量:%d)",i,Guai[i].Name,Guai[i].Blood);}printf("\n\n 请输入你想攻击敌人的编号----- ");cin>>b;}printf("\n\n 你使用技能:");Color(Skill[c].color);printf("%s",Skill[c].Name);Color(0),cout<<" !"<<endl;if(Skill[c].What==1) Killk(0,c,b);if(Skill[c].What==2) Killkkk(0,c);if(Skill[c].What==3) Killkk(0,c);}}else{int R=rand()%100+1,l=0,kk=0,o=rand()%5;if(You[aa].Skilnum!=0) l=rand()%You[aa].Skilnum+1;if(o==0) l=0;printf(" %s使用技能:",You[aa].Name);Color(Skill[You[aa].Skil[l]].color);Sleep(200);if(l==0) {cout<<"蓄气 !"<<endl;return;}printf("%s",Skill[You[aa].Skil[l]].Name);Color(0),cout<<" !"<<endl;KR:int sc=rand()%Dy+1;Sleep(200);if(Skill[You[aa].Skil[l]].What==1) if(Guai[sc].Blood>0) Killk(aa,You[aa].Skil[l],sc); else goto KR;if(Skill[You[aa].Skil[l]].What==2) Killkkk(aa,You[aa].Skil[l]);if(Skill[You[aa].Skil[l]].What==3) Killkk(aa,You[aa].Skil[l]);}
}
void Killyou(int sb){//怪sa=rand()%dd;int R=rand()%(100-min(10,Ju*3))+1,l=0,kk=0;Color(5);printf("\n %s的回合!\n",Guai[sb].Name),Sleep(500);Color(0);if(Guai[sb].Wudi>0) Guai[sb].Wudi--,printf(" %s还在无敌!持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Wudi),Sleep(200);if(Guai[sb].Blpt>0) Guai[sb].Blpt--,Guai[sb].Blood+=Guai[sb].Blp,Guai[sb].Blood=min(Guai[sb].Bloodmax,Guai[sb].Blood),printf(" %s的血量增加%d,还剩%d,持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Blp,Guai[sb].Blood,Guai[sb].Blpt),Sleep(200);if(Guai[sb].Dut>0) Guai[sb].Dut--,Guai[sb].Blood-=Guai[sb].Duk,printf(" %s毒发!它的血量减少%d,还剩%d,持续时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Duk,Guai[sb].Blood,Guai[sb].Dut),Sleep(200);if(Guai[sb].Ice>0) kk=1,Guai[sb].Ice--,printf(" %s被冰冻了......,冰冻时间还剩%d。\n\n",Guai[sb].Name,Guai[sb].Ice),Sleep(200);if(Guai[sb].Yun>0) {Guai[sb].Yun--;if(kk==1) cout<<endl<<" 同时,";else cout<<endl<<" ";printf("%s被击晕了......,击晕时间还剩%d\n\n",Guai[sb].Name,Guai[sb].Yun),Sleep(200);return;}if(Guai[sb].Blood<=0) Color(4),printf("\n %s阵亡!\n",Guai[sb].Name),dy--,kk=1,Color(0);if(kk==1) return;for(int i=1;i<=Guai[sb].Skilnum;i++) {if(R>Guai[sb].Skilstr[i]) continue;else {l=Guai[sb].Skil[i];break;}}printf("\n %s使用技能:",Guai[sb].Name);Color(Skill[l].color);Sleep(200);if(l==0) {cout<<"蓄气 !"<<endl;return;}printf("%s",Skill[l].Name);Color(0),cout<<" !"<<endl;KR:int sc=rand()%Dd;Sleep(200);if(Skill[l].What==1) if(You[sc].Blood>0) Killk2(sb,l,sc); else goto KR;if(Skill[l].What==3) Killkk2(l,sb);if(Skill[l].What==2) Killkkk2(l,sb);
}
void Juing(){system("cls");Color(5);if(Ju==1) Slow(50,"\n -----------第一章-----------\n\n 这个世界是由SLFDC政府掌管的。\n\n 近几年,由于太上皇的暴政,有10%的诸侯国脱离了此政府。\n\n 为此,SLFDC创立了强大的军事力量,\n\n 由三大教,七武科代表统管。\n\n 而你方则立下了四皇来与之抗衡。\n\n 现在,世界混乱,而你,必定是可以称霸世界,重拾和平的人!\n\n 于是,你走上了与天下人抗争的道路,\n\n 辉煌的前途正向你驶来!");if(Ju==2) Slow(50,"\n -----------第二章-----------\n\n 在这一年中,四皇小P,老狗,梢公与小梁终于在思想上达成了一致\n\n 一个名为信奥班的群体终于崛起!\n\n 与此同时,因为救下了一位小P的手下,\n\n 你也光荣地入队!\n\n 现在,你开始承受SLFDC更为激烈的打击,\n\n 你一定要创造计策与机会,存活下去!");if(Ju==3) Slow(50,"\n -----------第三章-----------\n\n 前线传来坏消息,\n\n 太上皇用自己无敌的能力击溃了大部分军队,\n\n 而继续反扑向信奥班本部!\n\n 于是,四皇们决定进军SLFDC本部!\n\n 政府在这时风雨飘摇,欲摧不倒!\n\n 江山即将易主,已经可以看到黎明的曙光!");if(Ju==4) Slow(50,"\n -----------第四章-----------\n\n 震撼人心的“SLFDC顶上战争”终于爆发了!\n\n 前线军队战斗的轰轰烈烈,尸横遍地!\n\n 在弹尽粮绝之时,你忽然发现,自己已变得超乎想象的强大!\n\n 你从尸山血海中站起,\n\n 经历的所有战争均是超乎想象的宏大!\n\n 你始终相信,终有一天,希望将照在这辽阔的大地上!");if(Ju==5) Slow(50,"\n -----------第五章-----------\n\n 战争结束了!\n\n 你的目标终于达成了!\n\n 接下来,你就可以肆无忌惮的在你的国度除恶扬善了!\n .\n .\n .\n .\n .\n .\n\n 剧情走完,游戏继续!");Sleep(3000),system("cls");if(Ju<=1) return;printf("\n 升级了!\n\n");Sleep(1000);printf(" 闪避率+2%\n\n");Sleep(500);printf(" 同伴现有技能攻击力+20%\n\n");Sleep(500);printf(" 新创自定义技能气量*90%\n\n");Sleep(500);printf(" 战斗金币量+10%\n\n");Sleep(500);printf(" 胜利EXP量+10%\n\n");Sleep(500);printf(" 游戏难度加大!\n\n");Sleep(500);You[0].Shan+=2;for(int i=1;i<100;i++) {Skill[i].Kill*1.2;for(int j=1;j<=Skill[i].Any;j++) Skill[i].Anykill[j]*1.2;}Sleep(3000),system("cls");Color(0);
}
void LaoHu(){system("cls");Color(0);printf("\n -----------抽奖机-----------\n");for(int i=1;i<=50;i++){SetPos(5,5);cout<<" ";Color(rand()%13);SetPos(5,5);cout<<"出奖中。。。"; Sleep(30);}Color(5);SetPos(5,2);cout<<"恭喜获得";Re:int ssa=rand()%6,sr;if(ssa==0) {sr=rand()%400+100;cout<<"金币"<<sr<<"个!";You[0].Money+=sr;} if(ssa==1) {sr=rand()%50+30;cout<<"经验"<<sr<<"点!";You[0].EXP+=sr;} if(ssa==2){KKP:sr=rand()%24+4;for(int i=1;i<=You[0].Skilnum;i++) if(You[0].Skil[i]==sr) goto KKP;for(int i=1;i<=skk;i++) if(Skkk[i]==sr) goto KKP;if(Skill[sr].What==3&&Skill[sr].Anywhat[1]==5) goto KKP; //召唤 if(Skill[sr].What==1&&Skill[sr].Anywhat[1]==10) goto KKP; //偷钱 skk++,Skkk[skk]=sr;cout<<"系统特惠技能:";Color(Skill[Skkk[skk]].color);cout<<Skill[Skkk[skk]].Name;Color(5),cout<<"!";}if(ssa==3){if(Tong==Tongmax) goto Re;Tong++;int i=Tong;You[i].Skilnum=0;You[i].Bloodmax=You[0].Bloodmax-10+rand()%21;You[i].Skilmax=3+rand()%3;printf("新同伴(血量%d,技能上限%d,会学习)!",You[i].Bloodmax,You[i].Skilmax);}if(ssa==4) {cout<<"新技能槽!";You[0].Skilmax++;}if(ssa==5) {cout<<"血量上限+20%!";You[0].Bloodmax*=1.2;}Sleep(1000);
}
void Store(){St:system("cls");Color(0);if(Jiao==12) {SetPos(22,1),Color(5),printf("教程提示 12 :但是,此游戏的成功方式只有一个:\n 将游戏的剧情完结!\n 按 0 退出,否则退出教程。"),Color(0);SetPos(0,0);}printf("\n ------------商店------------\n");printf("\n Money:%d\n",You[0].Money);printf("\n 1.同伴招募 --- $300\n");printf("\n 2.药水商店\n");printf("\n 3.经验升级区\n");printf("\n 4.抽奖机 (会抽出什么呢?...) --- $300\n");printf("\n 输入 0 退出。----- ");int a;cin>>a;if(a==0&&Jiao==12) Jiao++,You[0].EXP=100;else if(Jiao!=14) Jiao=-1;if(a==1&&You[0].Money>=300&&Tong<Tongmax){Tong++;int i=Tong;You[i].Skilnum=0;You[0].Money-=300;You[i].Bloodmax=You[0].Bloodmax-10+rand()%21;You[i].Skilmax=3+rand()%3;Color(5),printf("\n 恭喜获得新同伴(血量%d,技能上限%d,会学习)!",You[i].Bloodmax,You[i].Skilmax);Color(0),Sleep(3000);}if(a==2){Sto:system("cls");Color(0);printf("\n ----------药水商店----------\n");printf("\n 注意:所有药水均为自动使用一次性。\n");printf("\n Money:%d\n",You[0].Money);printf("\n 1.生命药水 (初始血量+10%) [已有%d个] --- $30\n",Shen);printf("\n 2.复活药水 (且回血20) [已有%d个] --- $50\n",Fu);printf("\n 3.敏捷药水 (闪避率+20%) [已有%d个] --- $50\n",Shan);printf("\n 4.狂暴药水 (回合率+20%) [已有%d个] --- $50\n",Ji);printf("\n 5.元气药水 (开局1口气) [已有%d个] --- $30\n",Yuan);printf("\n 6.经验药水 (+10 EXP) --- $100\n");printf("\n 输入 0 退出。----- ");int aa;cin>>aa;if(aa==1&&You[0].Money>=30) Shen++,You[0].Money-=30;if(aa==2&&You[0].Money>=50) Fu++,You[0].Money-=50;if(aa==3&&You[0].Money>=50) Shan++,You[0].Money-=50;if(aa==4&&You[0].Money>=50) Ji++,You[0].Money-=50;if(aa==5&&You[0].Money>=30) Yuan++,You[0].Money-=30;if(aa==6&&You[0].Money>=100) You[0].EXP+=20,You[0].Money-=100;if(aa!=0) goto Sto;}if(a==3){Stoo:system("cls");Color(0);printf("\n ---------经验升级区---------\n");printf("\n EXP:%d\n",You[0].EXP);printf("\n 1.血量上限+10% [已为%d点] --- 50 EXP\n",You[0].Bloodmax);printf("\n 2.回合加气+0.2 [已为%0.1f口] --- 50 EXP\n",You[0].Qijia);printf("\n 3.回合加血+5 [已为%d点] --- 70 EXP\n",You[0].Bloodjia);printf("\n 4.闪避率+5% [已为%d%] --- 70 EXP\n",You[0].Shan);printf("\n 5.技能槽+1 [已为%d个] --- 100 EXP\n",You[0].Skilmax);printf("\n 6.同伴上限+1 [已为%d个] --- 100 EXP\n",Tongmax);printf("\n 7.同伴升级区\n");printf("\n 输入 0 退出。----- ");int aaa;cin>>aaa;if(aaa==7&&Jiao==13) Jiao++;else if(Jiao!=14) Jiao=-1;if(aaa==1&&You[0].EXP>=50) You[0].Bloodmax*=1.1,You[0].EXP-=50;if(aaa==2&&You[0].EXP>=50) You[0].Qijia+=0.2,You[0].EXP-=50;if(aaa==3&&You[0].EXP>=70) You[0].Bloodjia+=5,You[0].EXP-=70;if(aaa==4&&You[0].EXP>=70) You[0].Shan+=5,You[0].EXP-=70;if(aaa==5&&You[0].EXP>=100) You[0].Skilmax++,You[0].EXP-=100;if(aaa==6&&You[0].EXP>=100) Tongmax++,You[0].EXP-=100;if(aaa==7){So:system("cls");Color(0);printf("\n ---------同伴升级区---------\n");printf("\n EXP:%d 同伴数量:%d\n",You[0].EXP,Tong);printf("\n 你要升级同伴几?(输入 0 退出)----- ");int i;cin>>i;if(i==0) goto Stoo;Soo:SetPos(5,1);printf("同伴%d: \n",i);printf("\n 血量上限:%d (+10%按1 --- 50EXP)\n",You[i].Bloodmax);printf("\n 回合加血:%d (+5按2 --- 70EXP)\n",You[i].Bloodjia);printf("\n 闪避率:%d% (+5%按3 --- 70EXP)\n",You[i].Shan);printf("\n 技能数量上限:%d (+1按4 --- 100EXP)\n",You[i].Skilmax,You[i].Skilnum);for(int j=1;j<=You[i].Skilnum;j++)printf("\n ----第%d技能:",j),Color(Skill[You[i].Skil[j]].color),cout<<Skill[You[i].Skil[j]].Name,Color(0),printf(" (删除按%d)\n",4+j);printf("\n 输入 0 重选。----- ");int ab;cin>>ab;if(ab==1&&You[0].EXP>=50) You[i].Bloodmax*=1.1,You[0].EXP-=50;if(ab==2&&You[0].EXP>=70) You[i].Bloodjia+=5,You[0].EXP-=70;if(ab==3&&You[0].EXP>=70) You[i].Shan+=5,You[0].EXP-=70;if(ab==4&&You[0].EXP>=100) You[i].Skilmax++,You[0].EXP-=100;if(ab>4) {ab-=4;You[i].Skilnum--;for(int j=ab;j<You[i].Skilnum;j++) swap(You[i].Skil[j],You[i].Skil[j+1]);You[i].Skil[You[i].Skilnum+1]=0;}if(ab!=0) {system("cls");Color(0);printf("\n ---------同伴升级区---------\n");printf("\n EXP:%d 同伴数量:%d\n",You[0].EXP,Tong);goto Soo;}if(ab==0) goto So;}if(aaa!=0) goto Stoo;}if(a==4&&You[0].Money>=300) LaoHu(),You[0].Money-=300;if(a!=0) goto St;
}
void Startguai(int a){char *str;dy++;Dy++;if(a==1) {str="剑客";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=1,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=4,Guai[dy].Skilstr[2]=90;}if(a==2) {str="守卫兵";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=20;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=5,Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=6,Guai[dy].Skilstr[2]=90;}if(a==3) {str="史莱姆";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=50;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=7,Guai[dy].Skilstr[1]=50,Guai[dy].Skil[2]=8,Guai[dy].Skilstr[2]=90;}if(a==4) {str="模仿者";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=You[0].Blood;Guai[dy].Money=20;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=You[0].Skil[1],Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=You[0].Skil[2],Guai[dy].Skilstr[2]=60,Guai[dy].Skil[3]=You[0].Skil[3],Guai[dy].Skilstr[3]=90;}if(a==5) {str="魔术师";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=25;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=9,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=5,Guai[dy].Skilstr[2]=40,Guai[dy].Skil[3]=6,Guai[dy].Skilstr[3]=90;}if(a==6) {str="巫医";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=70;Guai[dy].Money=20;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=15,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=16,Guai[dy].Skilstr[2]=60;Guai[dy].Skil[3]=17,Guai[dy].Skilstr[3]=90;}if(a==7) {str="法师";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=2,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=10,Guai[dy].Skilstr[2]=50,Guai[dy].Skil[3]=11,Guai[dy].Skilstr[3]=90;}if(a==8) {str="雪怪";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=150;Guai[dy].Money=50;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=12,Guai[dy].Skilstr[1]=50;Guai[dy].Skil[2]=13,Guai[dy].Skilstr[2]=60;Guai[dy].Skil[3]=14,Guai[dy].Skilstr[3]=90;}if(a==9) {str="巨人";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=200;Guai[dy].Money=50;Guai[dy].Skilnum=2;Guai[dy].Skil[1]=18,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=19,Guai[dy].Skilstr[2]=90;}if(a==10) {str="蝙蝠";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=20;Guai[dy].Money=3;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=20,Guai[dy].Skilstr[1]=60,Guai[dy].Skil[2]=21,Guai[dy].Skilstr[2]=90;}if(a==11) {str="乞丐";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=22,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=23,Guai[dy].Skilstr[2]=80,Guai[dy].Skil[3]=24,Guai[dy].Skilstr[3]=90;}if(a==12) {str="弓箭手";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=80;Guai[dy].Money=10;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=26,Guai[dy].Skilstr[1]=40,Guai[dy].Skil[2]=25,Guai[dy].Skilstr[2]=90;}if(a==13) {str="哥布林";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=50;Guai[dy].Money=15;Guai[dy].Skilnum=2,Guai[dy].Skil[1]=5,Guai[dy].Skilstr[1]=20,Guai[dy].Skil[2]=27,Guai[dy].Skilstr[2]=90,Guai[dy].Skil[2]=27,Guai[dy].Skilstr[3]=90;}if(a==14) {str="酒鬼";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=100;Guai[dy].Money=30;Guai[dy].Skilnum=3,Guai[dy].Skil[1]=28,Guai[dy].Skilstr[1]=30,Guai[dy].Skil[2]=29,Guai[dy].Skilstr[2]=60,Guai[dy].Skil[3]=22,Guai[dy].Skilstr[3]=90;}if(a==15) {str="战争机器";for(int i=0;i<strlen(str);i++)Guai[dy].Name[i]=str[i];Guai[dy].Blood=200;Guai[dy].Money=70;Guai[dy].Skilnum=3;Guai[dy].Skil[1]=30,Guai[dy].Skilstr[1]=40;Guai[dy].Skil[2]=31,Guai[dy].Skilstr[2]=70;Guai[dy].Skil[3]=32,Guai[dy].Skilstr[3]=90;}Guai[dy].Blood*=(0.5*Ju);Guai[dy].Blood+=rand()%11-5;Guai[dy].Bloodmax=Guai[dy].Blood;Guai[dy].Money*=(0.8+0.1*Ju);Guai[dy].Shan=(Ju-2)*5;
}
void Startwar(){char *str;dy=Dy=0;dd=Dd=Tong+1;memset(Guai,0,sizeof(Guai));// dd=你方You[0].Blp=You[0].Blpt=You[0].Duk=You[0].Dut=You[0].Ice=You[0].Yun=You[0].Wudi=You[0].Wudit=You[0].Qipt=You[0].Qi=You[0].Qip=0;for(int i=1;i<=Tong;i++){str="同伴";You[i].Name[4]=i+'0';for(int j=0;j<strlen(str);j++)You[i].Name[j]=str[j];You[i].Blood=You[i].Bloodmax;You[i].Blp=You[i].Blpt=You[i].Duk=You[i].Dut=You[i].Ice=You[i].Yun=You[i].Wudi=You[i].Wudit=You[i].Qipt=You[i].Qi=You[i].Qip=0;}int r=max(Dd+rand()%3-1,1);int t=rand()%6;if(t<Ju) r++;for(int i=1;i<=r;i++) Startguai(rand()%15+1);
}
void War(){As:system("cls");Color(0);if(Jiao==2) {SetPos(22,1),Color(5),printf("教程提示 2 :杀死所有敌人即可获胜。\n 反之,你队全亡就会失败。\n 按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}if(Jiao==6) {SetPos(22,1),Color(5),printf("教程提示 6 :你的气数会每回合增长。\n 但敌人与同伴使用技能没有气数限制。\n 按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}if(Jiao==10) {SetPos(22,1),Color(5),printf("教程提示 10 :同伴是没有初始技能的。\n 他会在战斗中自我学习,你们的血量在对战后均会回满。\n 按 y 开始,否则退出教程。"),Color(0);SetPos(0,0);}SetPos(1,1),printf("----------战斗界面----------\n\n");memset(Y,0,sizeof(Y));memset(D,0,sizeof(D));Startwar();if(Juk==10) {Juk=0,Juing(),Ju++;goto As;}printf(" 你将面临的敌人是:\n");for(int i=1;i<=dy;i++) {printf("\n %d: %s 血量: %d 掉落金币: %d",i,Guai[i].Name,Guai[i].Blood,Guai[i].Money);}cout<<"\n\n 按 y 开始战斗,按其余键退出 (损失 30"<<'%'<<" EXP)。----- ";char q;cin>>q;if(q!='y'&&(Jiao==2||Jiao==6||Jiao==10)) Jiao=-1;if(q=='y'&&(Jiao==2||Jiao==6||Jiao==10)) Jiao++;if(q!='y') {You[0].EXP*=0.7;return;}system("cls");SetPos(1,1),printf("\n---------开始战斗!---------\n\n");if(Yuan>=1) You[0].Qi=1;if(Shen>=1) You[0].Blood*=1.1;int sh,pan;if(Shan>=1) You[0].Shan+=20,sh=1;while(dy!=0&&dd!=0){pan=0;KK:pan++;if(pan>=10) break;sa=rand()%(dd+dy);sc=0;if(Ji>0&&You[0].Blood>0) sc=rand()%5;if(sa<dd) sa=0;else sa=1;if(k3>=2) sa=1;if(k4>=2) sa=0;if(sa==0) sb=rand()%Dd; //你攻if(sa==1) sb=rand()%Dy+1;//怪攻if(sc==4) sa=0,sb=0;if(sa==0&&You[sb].Blood<=0) goto KK;if(sa==1&&Guai[sb].Blood<=0) goto KK;if((sa==0&&sb==k1)||(sa==1&&sb==k2)) goto KK;if(sa==0) {k1=sb,k2=0,k3++,k4=0;if(dy<=0||dd<=0) break;Killguai(sb);}if(sa==1) {k1=-1,k2=sb,k3=0,k4++;if(dy<=0||dd<=0) break;Killyou(sb);}if(dy<=0||dd<=0) break;Sleep(500);}Shen=max(Shen-1,0);Ji=max(Ji-1,0);Shan=max(Shan-1,0);Yuan=max(Yuan-1,0);if(sh==1) You[0].Shan-=20;int ai=(10+Dy*2)*(0.8+0.1*Ju);int bi=(10+Dd*5)*(0.8+0.1*Ju);if(dy==0) Color(5),printf("\n 你胜利了!!获得%dEXP!\n",ai),You[0].EXP+=ai,Juk+=rand()%2;else Color(4),printf("\n 你失败了!!减少%d金币!\n",bi),You[0].Money=max(0,You[0].Money-bi);Sleep(3000);
}
bool Read(){ifstream in("这是你的存档.in");unsigned long long ioi=0,ioix;long long Moo=1e9+7;in>>You[0].Name;for(int i=0;i<strlen(You[0].Name);i++) ioi=(ioi+(int)You[0].Name[i])*101%Moo;in>>Skll>>skk>>Tong>>Tongmax>>Ju>>Juk>>Jiao>>Shen>>Ji>>Yuan>>Shan>>Fu;ioi=(ioi+Skll*103+skk*107+Tong*109+Tongmax*113+Ju*127+Juk*131+Jiao*137+Shen*139+Ji*149+Yuan*151+Shan*157+Fu*163)%Moo;for(int i=0;i<=Tong;i++){in>>You[i].Blood>>You[i].Bloodmax>>You[i].Bloodjia>>You[i].Skilnum>>You[i].Skilmax>>You[i].Money>>You[i].EXP>>You[i].Shan;in>>You[i].Qijia;ioi+=(2*ioi+You[i].Blood*167+You[i].Bloodmax*173+You[i].Bloodjia*179+You[i].Skilnum*181+You[i].Skilmax*191+You[i].Money*193+You[i].EXP*197+You[i].Shan*211+(int)You[i].Qijia*223)%Moo;for(int j=1;j<=You[i].Skilnum;j++) in>>You[i].Skil[j],ioi+=i*j*(ioi+You[i].Skil[j])*227%Moo;}for(int i=100;i<=99+Skll;i++){in>>Skill[i].Name;for(int j=0;j<strlen(Skill[i].Name);j++) ioi+=i*j*(ioi+(int)Skill[i].Name[j])*229%Moo;in>>Skill[i].Qi>>Skill[i].Kill>>Skill[i].What>>Skill[i].color>>Skill[i].Any;ioi=ioi+Skill[i].Qi*233+Skill[i].Kill*239+Skill[i].What*241+Skill[i].color*251+Skill[i].Any*257;ioi%=Moo;for(int j=1;j<=Skill[i].Any;j++){in>>Skill[i].Anykill[j]>>Skill[i].Anywhat[j]>>Skill[i].Time[j],in>>Skill[i].Anyqi[j];ioi+=i*j*(ioi+Skill[i].Anykill[j]*263+Skill[i].Anywhat[j]*269+Skill[i].Time[j]*271+(int)Skill[i].Anyqi[j]*277)%Moo;}}for(int i=1;i<=skk;i++) in>>Skkk[i],ioi+=(ioi+Skkk[i])*281%Moo;in>>ioix;if(ioix!=ioi) {in.close();return 0;}in.close();return 1;
}
void Save(){unsigned long long ioi=0;long long Moo=1e9+7;ofstream out("这是你的存档.in");out<<You[0].Name<<'\n';for(int i=0;i<strlen(You[0].Name);i++) ioi=(ioi+(int)You[0].Name[i])*101%Moo;out<<Skll<<' '<<skk<<' '<<Tong<<' '<<Tongmax<<' '<<Ju<<' '<<Juk<<' '<<Jiao<<' '<<Shen<<' '<<Ji<<' '<<Yuan<<' '<<Shan<<' '<<Fu<<'\n';ioi=(ioi+Skll*103+skk*107+Tong*109+Tongmax*113+Ju*127+Juk*131+Jiao*137+Shen*139+Ji*149+Yuan*151+Shan*157+Fu*163)%Moo;for(int i=0;i<=Tong;i++){out<<You[i].Blood<<' '<<You[i].Bloodmax<<' '<<You[i].Bloodjia<<' '<<You[i].Skilnum<<' '<<You[i].Skilmax<<' '<<You[i].Money<<' '<<You[i].EXP<<' '<<You[i].Shan<<' ';out<<You[i].Qijia<<'\n';ioi+=(2*ioi+You[i].Blood*167+You[i].Bloodmax*173+You[i].Bloodjia*179+You[i].Skilnum*181+You[i].Skilmax*191+You[i].Money*193+You[i].EXP*197+You[i].Shan*211+(int)You[i].Qijia*223)%Moo;for(int j=1;j<=You[i].Skilnum;j++) out<<You[i].Skil[j]<<' ',ioi+=i*j*(ioi+You[i].Skil[j])*227%Moo;out<<'\n';}for(int i=100;i<=99+Skll;i++){out<<Skill[i].Name<<'\n';for(int j=0;j<strlen(Skill[i].Name);j++) ioi+=i*j*(ioi+(int)Skill[i].Name[j])*229%Moo;out<<Skill[i].Qi<<' '<<Skill[i].Kill<<' '<<Skill[i].What<<' '<<Skill[i].color<<' '<<Skill[i].Any<<'\n';ioi=ioi+Skill[i].Qi*233+Skill[i].Kill*239+Skill[i].What*241+Skill[i].color*251+Skill[i].Any*257;ioi%=Moo;for(int j=1;j<=Skill[i].Any;j++){out<<Skill[i].Anykill[j]<<' '<<Skill[i].Anywhat[j]<<' '<<Skill[i].Time[j]<<' ',out<<Skill[i].Anyqi[j]<<'\n';ioi+=i*j*(ioi+Skill[i].Anykill[j]*263+Skill[i].Anywhat[j]*269+Skill[i].Time[j]*271+(int)Skill[i].Anyqi[j]*277)%Moo;}}for(int i=1;i<=skk;i++) out<<Skkk[i]<<' ',ioi+=(ioi+Skkk[i])*281%Moo;out<<'\n'; out<<'\n'<<ioi;out.close();
}
void Cun(){yy:system("cls");Color(0);SetPos(1,1),printf("---------存读档界面---------");SetPos(3,1),printf("读档按1 存档按2 -----");int a;cin>>a;if(a==1){printf("\n 你需要将你之前的存档与此程序放入一个文件夹中。\n");printf("\n 不要更改名字与内容!\n");printf("\n 准备好了吗?按任意键开始!\n");char b;b=_getch();Slow(50,"\n 读档中......\n");if(Read()) Color(5),printf("\n 读档成功!\n");else{Color(4),printf("\n 读档失败!这个档一定被修改过!\n\n");Slow(200," 啊......愚昧无知的人类啊......\n\n 接受来自胎神的惩罚吧!......\n\n");Color(5),printf("\n 全新!黑色字体特效,开启!!\n\n");Color(0);Black=1;Sleep(1000);}Color(0),Sleep(1000);}if(a==2){printf("\n 你需要将此程序放入一个文件夹中。\n");printf("\n 注意此操作会覆盖之前的存档。\n");printf("\n 准备好了吗?按任意键开始!\n");char b;b=_getch();Save();Slow(50,"\n 存档中......\n");Color(5),printf("\n 存档成功!\n");Color(0),Sleep(1000);}
}
void Main(){system("cls");Color(0);You[0].Blood=You[0].Bloodmax;int a=-2019;SetPos(1,1),printf("-----------主界面-----------");SetPos(3,1),printf("金币:%d 经验值:%d 血量:%d",You[0].Money,You[0].EXP,You[0].Blood);SetPos(5,1),printf("Hi,%s,What do you want to do now?",You[0].Name);SetPos(7,1),printf("1.开始战斗!");SetPos(9,1),printf("2.存档与读档。");SetPos(11,1),printf("3.查看本体技能。");SetPos(13,1),printf("4.修改本体技能。");SetPos(15,1),printf("5.创造自定义技能。");SetPos(17,1),printf("6.前往商店。");SetPos(19,1),printf("7.查看小兵数据。");SetPos(21,1),printf("--------- ");if(Jiao==15) {SetPos(22,1),Color(5),printf("教程提示 15 :剩下的需要自己去摸索了,教程结束。"),Color(0);Jiao=-1;}if(Jiao==14) {SetPos(22,1),Color(5),printf("教程提示 14 :当你想保存游戏进度时,可以选择存档。\n 在下一次游戏中,你可以读档来继续游戏。\n 按 2 存档,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==2) Jiao++;else Jiao=-1;}if(Jiao==13) {SetPos(22,1),Color(5),printf("教程提示 13 :剧情会在对战前随机刷出\n 我们来看看剧情的第一章吧!\n 按 1 开始,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==6) Jiao++,Ju=1,Juk=10;else Jiao=-1;}if(Jiao==11) {SetPos(22,1),Color(5),printf("教程提示 11 :你可以购买药水增幅自己。\n 而在抽奖机中,你可以抽出一些更实用的物品!\n 按 6 购买,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==6) Jiao++,You[0].Money=200;else Jiao=-1;}if(Jiao==9) {SetPos(22,1),Color(5),printf("教程提示 9 :一人对战比较困难,\n 我们来试试和同伴一起战斗吧。\n 按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++,Tong++,You[1].Bloodmax=100,You[1].Skilmax=3;else Jiao=-1;}if(Jiao==7) {SetPos(22,1),Color(5),printf("教程提示 7 :除了一个一个攻击敌人,你还可以使用群攻技能。\n 我们提供了一个群攻技能给你。\n 按 4 装备,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==4) Jiao++,skk=1,Skkk[1]=3;else Jiao=-1;}if(Jiao==5) {SetPos(22,1),Color(5),printf("教程提示 5 :在对战中,会轮到你的回合\n 你只能你的回合中才能使用技能。\n 按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++;else Jiao=-1;}if(Jiao==3) {SetPos(22,1),Color(5),printf("教程提示 3 :只用刀对战比较困难,\n 你可以使用技能来对战,来装备你的第一个技能吧。\n 按 4 装备,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==4) Jiao++,skk=1,Skkk[1]=2;else Jiao=-1;}if(Jiao==1) {SetPos(22,1),Color(5),printf("教程提示 1 :本游戏是一个团队对战游戏,\n 一切基础是建立在“开始战斗!”模式下的。\n 按 1 对战,否则退出教程。"),Color(0);SetPos(21,6),cin>>a;if(a==1) Jiao++;else Jiao=-1;}SetPos(21,6);if(a==-2019) cin>>a;if(a==1) War();if(a==2) Cun();if(a==3) CheckMe();if(a==4) ChangeSkill();if(a==5) StartSkill();if(a==6) Store();if(a==7) CheckUs();
}
void Start(){char *str,aa;Color(0);printf("\n Hi,请输入你的名字......");scanf("%s",You[0].Name);printf("\n 要开始教程吗?(按 y / n 选择)..... ");cin>>aa;if(aa=='y'){printf("\n\n 如果你是在本机第一次玩此游戏......");printf("\n\n 请将鼠标移至程序框上方按鼠标右键......");printf("\n\n 点击“默认值”......");printf("\n\n 点击“布局”......");printf("\n\n 将“屏幕缓冲区大小”调为1000 1000......");printf("\n\n 然后关闭此程序,重启一次......");printf("\n\n 按任意键开始!");char a;a=_getch();Jiao=1;}else skk=2,Skkk[1]=2,Skkk[2]=3,You[0].Money=200,You[0].EXP=100,Tong=1,You[1].Bloodmax=100,You[1].Skilmax=3,Ju=1,Juk=10;You[0].Qi=0,You[0].Blood=You[0].Bloodmax=100,You[0].Skilnum=1,You[0].Skilmax=2,You[0].Skil[1]=1,Tongmax=2,You[0].Qijia=0.5;str="刀斩";for(int i=0;i<strlen(str);i++)Skill[1].Name[i]=str[i];Skill[1].Kill=10,Skill[1].What=1,Skill[1].Any=0,Skill[1].color=7,Skill[1].Qi=0;str="火球";for(int i=0;i<strlen(str);i++)Skill[2].Name[i]=str[i];Skill[2].Kill=30,Skill[2].What=1,Skill[2].Any=0,Skill[2].color=4,Skill[2].Qi=1;str="流星雨";for(int i=0;i<strlen(str);i++)Skill[3].Name[i]=str[i];Skill[3].Kill=30,Skill[3].What=2,Skill[3].Any=0,Skill[3].color=5,Skill[3].Qi=2;str="劈剑";for(int i=0;i<strlen(str);i++)Skill[4].Name[i]=str[i];Skill[4].Kill=20,Skill[4].What=1,Skill[4].Any=0,Skill[4].color=12,Skill[4].Qi=0.2;str="背刺";for(int i=0;i<strlen(str);i++)Skill[5].Name[i]=str[i];Skill[5].Kill=50,Skill[5].What=1,Skill[5].Any=1,Skill[5].Anywhat[1]=5,Skill[5].Anykill[1]=30,Skill[5].color=3,Skill[5].Qi=1.5;str="飞刀";for(int i=0;i<strlen(str);i++)Skill[6].Name[i]=str[i];Skill[6].Kill=10,Skill[6].What=1,Skill[6].Any=1,Skill[6].Anywhat[1]=4,Skill[6].Anykill[1]=30,Skill[6].color=1,Skill[6].Qi=1.5;str="粘液弹";for(int i=0;i<strlen(str);i++)Skill[7].Name[i]=str[i];Skill[7].Kill=10,Skill[7].What=2,Skill[7].Any=1,Skill[7].Anywhat[1]=5,Skill[7].Anykill[1]=70,Skill[7].color=2,Skill[7].Qi=2;str="碾压";for(int i=0;i<strlen(str);i++)Skill[8].Name[i]=str[i];Skill[8].Kill=30,Skill[8].What=1,Skill[8].color=3,Skill[8].Qi=0.8;str="腾空";for(int i=0;i<strlen(str);i++)Skill[9].Name[i]=str[i];Skill[9].What=3,Skill[9].Any=1,Skill[9].Anywhat[1]=2,Skill[9].Time[1]=1,Skill[9].color=1,Skill[9].Qi=1.5;str="地裂";for(int i=0;i<strlen(str);i++)Skill[10].Name[i]=str[i];Skill[10].Kill=10,Skill[10].What=2,Skill[10].Any=2,Skill[10].Anywhat[1]=4,Skill[10].Anykill[1]=60,Skill[10].Anywhat[2]=5,Skill[10].Anykill[2]=20,Skill[10].color=11,Skill[10].Qi=2.5;str="雷击术";for(int i=0;i<strlen(str);i++)Skill[11].Name[i]=str[i];Skill[11].Kill=30,Skill[11].What=2,Skill[11].Any=2,Skill[11].Anywhat[1]=3,Skill[11].Anykill[1]=30,Skill[11].Anywhat[2]=5,Skill[11].Anykill[2]=30,Skill[11].color=6,Skill[11].Qi=2.5;str="雪球";for(int i=0;i<strlen(str);i++)Skill[12].Name[i]=str[i];Skill[12].Kill=20,Skill[12].What=1,Skill[12].Any=1;Skill[12].Anywhat[1]=1,Skill[12].Time[1]=1;Skill[12].color=1,Skill[12].Qi=2;str="永冻之域";for(int i=0;i<strlen(str);i++)Skill[13].Name[i]=str[i];Skill[13].Kill=20,Skill[13].What=2,Skill[13].Any=1;Skill[13].Anywhat[1]=1,Skill[13].Time[1]=1;Skill[13].color=1,Skill[13].Qi=4;str="暴风雪";for(int i=0;i<strlen(str);i++)Skill[14].Name[i]=str[i];Skill[14].Kill=50,Skill[14].What=2,Skill[14].Any=2;Skill[14].Anywhat[1]=3,Skill[14].Anykill[1]=30;Skill[14].Anywhat[2]=5,Skill[14].Anykill[2]=30;Skill[14].color=1,Skill[14].Qi=2;str="急救";for(int i=0;i<strlen(str);i++)Skill[15].Name[i]=str[i];Skill[15].What=3,Skill[15].Any=1;Skill[15].Anywhat[1]=1,Skill[15].Anykill[1]=30;Skill[15].color=2,Skill[15].Qi=1;str="瘟疫";for(int i=0;i<strlen(str);i++)Skill[16].Name[i]=str[i];Skill[16].What=2,Skill[16].Any=1;Skill[16].Anywhat[1]=6,Skill[16].Anykill[1]=40;Skill[16].color=3,Skill[16].Qi=2;str="下毒";for(int i=0;i<strlen(str);i++)Skill[17].Name[i]=str[i];Skill[17].Kill=10,Skill[17].What=1,Skill[17].Any=1;Skill[17].Anywhat[1]=2,Skill[17].Anykill[1]=10,Skill[17].Time[1]=10;Skill[17].color=8,Skill[17].Qi=0.8;str="重击";for(int i=0;i<strlen(str);i++)Skill[18].Name[i]=str[i];Skill[18].Kill=50,Skill[18].What=1,Skill[18].Any=0;Skill[18].color=4,Skill[18].Qi=1.5;str="泰山压顶";for(int i=0;i<strlen(str);i++)Skill[19].Name[i]=str[i];Skill[19].Kill=50,Skill[19].What=2,Skill[19].Any=1;Skill[19].Anywhat[1]=3,Skill[19].Anykill[1]=50,Skill[19].color=4,Skill[19].Qi=2.5;str="吸血";for(int i=0;i<strlen(str);i++)Skill[20].Name[i]=str[i];Skill[20].Kill=5,Skill[20].What=1,Skill[20].Any=1;Skill[20].Anywhat[1]=7,Skill[20].color=10,Skill[20].Qi=1;str="狩猎号角";for(int i=0;i<strlen(str);i++)Skill[21].Name[i]=str[i];Skill[21].What=3,Skill[21].Any=1;Skill[21].Anywhat[1]=5,Skill[21].Anykill[1]=10,Skill[21].color=9,Skill[21].Qi=0.3;str="打狗棒法";for(int i=0;i<strlen(str);i++)Skill[22].Name[i]=str[i];Skill[22].Kill=30,Skill[22].What=1,Skill[22].Any=1,Skill[22].Anywhat[1]=4,Skill[22].Anykill[1]=40,Skill[22].color=11,Skill[22].Qi=1.5;str="乞讨";for(int i=0;i<strlen(str);i++)Skill[23].Name[i]=str[i];Skill[23].What=3,Skill[23].Any=1;Skill[23].Anywhat[1]=3,Skill[23].Time[1]=5,Skill[23].Anykill[1]=20;Skill[23].color=12,Skill[23].Qi=2;str="江湖义";for(int i=0;i<strlen(str);i++)Skill[24].Name[i]=str[i];Skill[24].What=3,Skill[24].Any=1;Skill[24].Anywhat[1]=5,Skill[24].Anykill[1]=11,Skill[24].color=1,Skill[24].Qi=3;str="万箭齐发";for(int i=0;i<strlen(str);i++)Skill[25].Name[i]=str[i];Skill[25].Kill=20,Skill[25].What=2,Skill[25].Any=0,Skill[25].color=11,Skill[25].Qi=1.5;str="毒箭";for(int i=0;i<strlen(str);i++)Skill[26].Name[i]=str[i];Skill[26].Kill=20,Skill[26].What=1,Skill[26].Any=1;Skill[26].Anywhat[1]=2,Skill[26].Anykill[1]=10,Skill[26].Time[1]=2;Skill[26].color=8,Skill[26].Qi=0.8;str="神偷手";for(int i=0;i<strlen(str);i++)Skill[27].Name[i]=str[i];Skill[27].What=1,Skill[27].Any=1;Skill[27].Anywhat[1]=10,Skill[27].Anykill[1]=30,Skill[27].color=5,Skill[27].Qi=0;str="乱拳";for(int i=0;i<strlen(str);i++)Skill[28].Name[i]=str[i];Skill[28].Kill=10,Skill[28].What=1,Skill[28].Any=1,Skill[28].Anywhat[1]=4,Skill[28].Anykill[1]=60,Skill[28].color=1,Skill[28].Qi=1.3;str="喝酒";for(int i=0;i<strlen(str);i++)Skill[29].Name[i]=str[i];Skill[29].What=3,Skill[29].Any=1;Skill[29].Anywhat[1]=1,Skill[29].Anykill[1]=20;Skill[29].color=2,Skill[29].Qi=0.8;str="火箭炮";for(int i=0;i<strlen(str);i++)Skill[30].Name[i]=str[i];Skill[30].Kill=50,Skill[30].What=1,Skill[30].Any=1,Skill[30].Anywhat[1]=3,Skill[30].Anykill[1]=30;Skill[30].color=4,Skill[30].Qi=2;str="榴弹炮";for(int i=0;i<strlen(str);i++)Skill[31].Name[i]=str[i];Skill[31].Kill=40,Skill[31].What=2,Skill[31].Any=1,Skill[31].Anywhat[1]=3,Skill[31].Anykill[1]=30;Skill[31].color=7,Skill[31].Qi=3;str="激光炮";for(int i=0;i<strlen(str);i++)Skill[32].Name[i]=str[i];Skill[32].Kill=70,Skill[32].What=1,Skill[32].Any=0,Skill[32].color=5,Skill[32].Qi=3;
}
int main() {srand((unsigned)time(NULL));Start();while(1) Main(); return 0;}
愤怒的小胎
最新修改:小问题修复。#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)(a*10+5))/10;}
void Color(int a)
{if(a==0||a==14||a==20) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==1||a==12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);if(a==4||a==11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);if(a==5||a==13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==15) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY);if(a==16) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);if(a==17) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);if(a==9) 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=yy*2,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(a==1) SetPos(x,y),Color(5),cout<<put<<' ';if(y==202){SetPos(pig[a].X,pig[a].Y);cout<<" ";if((pig[a].W==2||pig[a].W==3)&&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].W==4) SetPos(pig[a].X,pig[a].Y-1),cout<<" "; if(pig[a].W==5) SetPos(pig[a].X-1,pig[a].Y),cout<<" ",SetPos(pig[a].X-1,pig[a].Y-1),cout<<" ";}if(a==2)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(y==666){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].W2==1&&blt[a].Y>=Xy) blt[a].go=1,Sle=0;//地跑鸟if(blt[a].W2==0){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].vx*0.4,blt[a].vy=blt[a].vy*0.8;if(blt[a].W==3) blt[a].ax=0.5;if(blt[a].W==7) blt[a].vx*=2;if(blt[a].W==10) 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].W==3) blt[a].ax=0.5;if(blt[a].W==7) blt[a].vx*=2;if(blt[a].W==10) 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].W==5) 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].go==0) Cout(a,0,666);
}
void Kill(int a)
{if(pig[a].go==0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16;if(pig[a].go==0&&pig[a].W==4&&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].vx*0.5,pig[a].vy=pig[a].vy*0.8;}for(int i=Blt-10;i<=Blt;i++){if(pig[a].W==5&&blt[i].go==0&&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].W==5&&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].go==0&&abs(pig[a].X-blt[i].X)<=1&&abs(pig[a].Y-blt[i].Y)<=1){if(pig[a].W==6) 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].W==6) 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].W==2||pig[a].W==3)&&blt[i].go==0&&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].W==2||pig[a].W==3)&&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].go==0){if(pig[a].go==0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16;if(pig[a].go==0&&pig[a].W==4&&pig[a].Y<20) pig[a].W=1;int Xx=toint(pig[a].X),Xy=toint(pig[a].Y);if(pig[a].W==6) 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].W==2||pig[a].W==3)&&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].W==4) SetPos(pig[a].X,pig[a].Y-1),Color(2),cout<<"﹃";if(pig[a].W==5){SetPos(pig[a].X-1,pig[a].Y),Color(8);SetPos(pig[a].X-1,pig[a].Y-1),cout<<"▁";if(pig[a].W2==0)cout<<"▅";if(pig[a].W2==1)cout<<"▃";if(pig[a].W2==2)cout<<"▂";if(pig[a].W2==3) pig[a].W=1,pig[a].W2=0,SetPos(pig[a].X-1,pig[a].Y-1),cout<<" ";}}/////////输出猪猪 if(pig[a].W==2&&pig[a].X>pig[a].S) pig[a].W=3,pig[a].ax=-0.4,pig[a].vx=1.5;else if(pig[a].W==3&&pig[a].X<=pig[a].S) pig[a].W=2,pig[a].ax=0.4,pig[a].vx=-1.5;if((pig[a].W==2||pig[a].W==3)&&(pig[a].Y<=10||pig[a].Y>=38)) pig[a].vy*=-1;if(pig[a].W==4&&R==0&&pig[a].X==20) pig[a].vx=-((rand()%40)/10);if(pig[a].W==4){int r=rand()%20;for(int i=Blt-10;i<=Blt;i++) if(r<=5&&blt[i].go==0&&pig[a].Y-blt[i].Y<=5&&abs(blt[i].X-pig[a].X)<=1.5&&r<5) r=0;if(r==0){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].go==0&&!(blt[i].W==3&&blt[i].boom==1)&&blt[i].W2==0&&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].go==0&&toint(pig[i].Y)==j&&abs(pig[i].X-pig[a].X)<=2) pig[i].vy=-1;}}}/////////移动猪猪 if(pig[a].go==0&&pig[a].W!=2&&pig[a].W!=3&&pig[a].Y<16) Cout(a,202,202),pig[a].Y=16;if(pig[a].go==0&&pig[a].W==4&&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(a==0&&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(u==1) 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(u==2) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=4;if(u==3) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=5;if(u==4) Pit++,pig[Pit].Y=rand()%15+20,pig[Pit].X=2,pig[Pit].ax=0.5,pig[Pit].W=6;if(U==1) 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(a==1) blt[Blt].X=yX;blt[Blt].Y=yY;blt[Blt].ax=0.5; //抛物线blt[Blt].vx=-3.5*sin(p*pi/180);blt[Blt].vy=3*cos(p*pi/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].W==6) blt[Blt].vy*=1.2,blt[Blt].ax=0.4;}
}
void Boom(int a)
{if(boo[a].W2==0){int ms=boo[a].mS,s=boo[a].S,x=boo[a].X,y=boo[a].Y;if(s==ms) 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].W2==1){int ms=boo[a].mS,s=boo[a].S,x=boo[a].X,y=boo[a].Y;if(s==ms) 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(a==0) SetPos(18,Xy),cout<<" ┃",Color(What+10),cout<<"●",Color(5),cout<<"┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏";if(a==1) SetPos(18,Xy),cout<<" ",Color(What+10),cout<<"●",Color(5),cout<<" ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏";if(a==2) SetPos(18,Xy),Color(What+10),cout<<"●",Color(5),cout<<"┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ▏";if(a==3) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),Color(What+10),cout<<"●",Color(5),cout<<"╰┳╯",SetPos(20,Xy),cout<<" ▏";if(a==4) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),Color(What+10),cout<<"●",Color(5),cout<<" ▏";if(a==5) SetPos(18,Xy),cout<<" ┃ ┃",SetPos(19,Xy),cout<<" ╰┳╯",SetPos(20,Xy),cout<<" ",Color(What+10),cout<<"●",Color(5),cout<<" ▏";if(a==6) 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(K==1){if(put==0&&Sle==0) 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].go==0&&blt[i].boom==0&&blt[i].W!=1&&blt[i].W!=7){blt[i].boom=1;if(blt[i].W==2){Blt++;blt[Blt].W=2;blt[Blt].vy=blt[i].vy*1.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].vy*0.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].W==3) blt[i].vy=fmax(blt[i].vy*1.5,2.5),blt[Blt].vx+=1,blt[i].ax=0;if(blt[i].W==4){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].W==5) 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].W==6) blt[i].ay=-1,blt[i].ax=0.3,blt[i].vx=min(blt[i].vx/2,(float)0);break;}}}if(GetAsyncKeyState(' ')&0x8000&&K==0&&Sle==0){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(put==0) K2=1;if(put==90) K2=-1;if(K2==1) 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&&K==1))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].go==0) Go(i);for(int i=Bot-10;i<=Bot;i++) if(boo[i].go==0) Boom(i),Cout(2,0,0);for(int i=Pit-50;i<=Pit;i++) if(pig[i].go==0) Kill(i);if(Sle!=0) Move(-1);else if(put==0) Move(0);if(T%300==0) system("cls"),pigk=scok=-1;if(T%100==0){Color(7);for(int i=0;i<=18;i++)for(int j=0;j<=40;j++) if(m[i][j]==1&&T%100==0) 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;
}
抽奖