c++飞机大战3.0
此次更新更新了许多关卡,且以后不会再更新飞机大战系列。
/*
red:normal
blue:ice
light red:fire
blue and yellow:autodun
orange:rocket
*/
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
struct asdfg{
int x=10;
int y=17;
int h=100;
int sp;
int par=1;
bool dead=1;
bool v;
int coin=1000;
int ammo=100;
vector<int> bag;
int bagnum=0;
int enegy;
int buff=0,bufft=0;
}play;
struct PlayerData {
string name;
string password;
int coins = 1000;
int highScore = 0;
int p;
bool ci[20];
}playtext;
struct hjkl{
int x;
int y;
int par;
bool use;
int dev;
bool team;
}ammo[1001];
struct zxcv{
int x;
int y;
int par;
int h;
int sp;
int m=0,shot=0;
bool dead=0;
bool v;
bool v2;
bool v3;
int buff=0,bufft=0;
}enemy[1001];
struct bnm{
int x;
int y;
int par;
int use;
}gift[100];
struct qwe{
int x,y,par,h;
bool u=0;
}boss;
struct iop{
int x,y,par,h,t;
bool u=0;
}bigboss;
struct cnm{
int x,y,h;
int sx=0;
int s[100];
bool u=0;
}bplane[10];
struct zxc{
int x1,x2,y;
int h;
int p;
bool u=0;
}dun[100];
char thing[10][3][3]{
{{' ',' ','L'},
{' ','/',' '},
{'/',' ',' '}},
{{' ','O',' '},
{' ','*',' '},
{' ',' ',' '}},
{{'^','^','^'},
{'#','#','#'},
{'#','#','#'}},
{{' ','|',' '},
{' ','|',' '},
{' ','#',' '}},
{{' ','!',' '},
{'#','^','#'},
{'#','+','#'}},
{{'~','~','~'},
{'~','O','~'},
{'~','*','~'}},
};
char bigBoss[5][5][5] = {{
{ '[', 'O', 'O', 'O', ']' },
{ '|', ' ', 'X', ' ', '|' },
{ '=', '=', 'H', '=', '=' },
{ '>', '>', '|', '<', '<' },
{ ' ', ' ', '|', ' ', ' ' },
},{
{ '#', '^', '#', '^', '#' },
{ '[', '*', '*', '*', ']' },
{ '>', '>', '0', '<', '<' },
{ '|', '~', '|', '~', '|' },
{ ' ', ' ', '|', ' ', ' ' }
},{
{ '#', '#', '#', '#', '#' }, // 重型装甲外壳
{ '|', 'O', 'O', 'O', '|' }, // 能量核心阵列
{ '[', '=', 'X', '=', ']' }, // 主炮基座(X为控制中心)
{ '>', '>', '|', '>', '>' }, // 不对称多炮管设计
{ ' ', '\\', '!', '/', ' ' } // 底部辅助武器
},{
{ '|', ' ', '|', ' ', '|' },
{ '\\', '*', '|', '*', '/' },
{ '-', '|', 'H', '|', '-' },
{ ' ', '\\', '#', '/', ' ' },
{ ' ', ' ', '|', ' ', ' ' }
}};
void autodun(int y,int x1,int x2,int p);
void clear();
void xray(int x,int y,bool p,int dev,bool io,int h);
int ri;
int price[10]{200,400,100,300,1000,600},cs[20]{3000,2500,5000,4000};
int mapx[60][20],firex[60][20],am=0,randx[1000],ra=0,en=0,gi=0,tx=0,tx1,boss1n=0,firet=0,bp=0,zt=0,mis=1,ci[20],du=0,speed=1,tshot=0,t1=0;
bool speedb=0;
bool boom=0,tell=0,zp=0,xrayx=0;
int color(int x){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
// 保存存档
void savePlayerData(const PlayerData& data) {
for(int i = 0; i < 20; i++) {
playtext.ci[i] = ci[i];
}
std::ofstream outFile("player_data.dat", std::ios::binary);
if (!outFile) {
std::cerr << "无法打开文件保存数据" << std::endl;
return;
}
// 写入字符串长度和内容
//size_t nameLength = data.name.size();
int nameLength=data.name.size();
outFile.write(reinterpret_cast<const char*>(&nameLength), sizeof(nameLength));
outFile.write(data.name.c_str(), nameLength);
size_t passLength = data.password.size();
outFile.write(reinterpret_cast<const char*>(&passLength), sizeof(passLength));
outFile.write(data.password.c_str(), passLength);
// 写入其他数据
outFile.write(reinterpret_cast<const char*>(&data.coins), sizeof(data.coins));
outFile.write(reinterpret_cast<const char*>(&data.highScore), sizeof(data.highScore));
outFile.write(reinterpret_cast<const char*>(&data.p), sizeof(data.p));
// 写入词条数据
for(int i = 0; i < 20; i++) {
outFile.write(reinterpret_cast<const char*>(&data.ci[i]), sizeof(bool));
}
outFile.close();
}
// 从文件加载玩家数据
bool loadPlayerData(PlayerData& data) {
std::ifstream inFile("player_data.dat", std::ios::binary);
if (!inFile) {
std::cerr << "无法打开文件加载数据" << std::endl;
return false;
}
// 读取名称
size_t nameLength;
inFile.read(reinterpret_cast<char*>(&nameLength), sizeof(nameLength));
data.name.resize(nameLength);
inFile.read(&data.name[0], nameLength);
// 读取密码
size_t passLength;
inFile.read(reinterpret_cast<char*>(&passLength), sizeof(passLength));
data.password.resize(passLength);
inFile.read(&data.password[0], passLength);
// 读取其他数据
inFile.read(reinterpret_cast<char*>(&data.coins), sizeof(data.coins));
inFile.read(reinterpret_cast<char*>(&data.highScore), sizeof(data.highScore));
inFile.read(reinterpret_cast<char*>(&data.p), sizeof(data.p));
// 读取词条数据
for(int i = 0; i < 20; i++) {
inFile.read(reinterpret_cast<char*>(&data.ci[i]), sizeof(bool));
}
inFile.close();
return true;
}
int dfp(int a1){
if(a1==3){
a1=13;
}else if(a1==0){
a1=10;
}else if(a1==2){
a1=12;
}
switch(a1){
case(4):return '~';
case(10):return ' ';break;
case(13):return '*';break;
case(101):return ' ';break;
case(102):return '!';break;
case(103):return ' ';break;
case(104):return '/';break;
case(105):return 'A';break;
case(106):return '\\';break;
case(107):return '|';break;
case(108):return '+';break;
case(109):return '|';break;
case(111):return ' ';
case(112):return '!';
case(113):return ' ';
case(114):return '#';
case(115):return '^';
case(116):return '#';
case(117):return '#';
case(118):return '+';
case(119):return '#';
case(120):return 'O';
case(121):return '|';
case(122):return '-';
case(123):return 'V';
case(124):return '[';
case(125):return ']';
case(200):return '.';break;
case(201):return 'O';break;
case(202):return '*';
case(203):return '#';
case(204):return '*';
case(205):return '|';
case(206):return '-';
case(208):return 'o';
case(300):return 'A';
case(301):return 'T';
case(302):return 'A';
case(303):return 'T';
case(304):return 'A';
case(305):return 'T';
case(306):return 'A';
case(307):return 'T';
case(308):return 'A';
case(309):return 'T';
case(310):return 'A';
case(311):return 'T';
case(312):return 'A';
case(313):return 'T';
case(314):return 'A';
case(315):return 'T';
case(316):return 'A';
case(317):return 'T';
case(318):return 'A';
case(319):return 'T';
case(400):return 'o';break;
case(401):return 'o';break;
case(402):return 'o';break;
case(403):return 'o';break;
case(404):return 'o';break;
case(405):return 'o';break;
case(410):return '=';
case(12):return '#';break;
}
}
void textcolor(int y, int x) {
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
WORD colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; // 默认白色
// 获取当前单元格的字符值
int cellValue = mapx[y][x];
static DWORD lastTick = GetTickCount();
DWORD currentTick = GetTickCount();
bool blinkPhase = (currentTick % 400) < 200; // 闪烁周期
// 根据不同的地图值设置颜色
switch(cellValue) {
// 玩家飞船 (多色设计)
case 100: case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109:
case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119:
// 飞船主体 - 根据部位不同设置不同颜色
if (cellValue == 105 || cellValue == 106) { // 机翼
colorAttr = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY; // 青色
} else if (cellValue == 107 || cellValue == 109) { // 引擎/推进器
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY; // 亮红色
} else { // 机身
colorAttr = FOREGROUND_BLUE | FOREGROUND_INTENSITY; // 亮蓝色
}
break;
// 普通子弹 (白色带闪烁尾迹)
case 200:
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE |
(blinkPhase ? FOREGROUND_INTENSITY : 0);
break;
// 火箭子弹 (多色动态效果)
case 201: {
int colorShift = (currentTick / 100) % 3;
switch(colorShift) {
case 0: colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY; break;
case 1: colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY; break;
case 2: colorAttr = FOREGROUND_GREEN | FOREGROUND_INTENSITY; break;
}
break;
}
// 火箭尾焰 (动态红色/橙色)
case 202:
colorAttr = FOREGROUND_RED | ((currentTick % 200 < 100) ? FOREGROUND_GREEN : 0) | FOREGROUND_INTENSITY;
break;
// 背景/太空 (黑色)
case 0:
colorAttr = 0;
break;
// 爆炸效果 (闪烁红色,无背景色)
case 3:
if (blinkPhase) {
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY;
} else {
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN; // 橙色
}
break;
case 4:{
int texture = (x + y + currentTick/300) % 2;
if(texture){
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
}else{
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY;
}
break;
}
// 岩石 (灰色带纹理效果)
case 2: {
int texture = (x + y + currentTick/300) % 3;
switch(texture) {
case 0: colorAttr = FOREGROUND_INTENSITY; break; // 亮灰
case 1: colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE; break; // 白色
case 2: colorAttr = FOREGROUND_RED | FOREGROUND_GREEN; break; // 黄色(模拟矿物反光)
}
break;
}
// 敌人 (动态红色系)
case 300: case 301:{
colorAttr = FOREGROUND_RED; break;
break;
}
case 302: case 303:{
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN; break;
break;
}
case 304: case 305:{
colorAttr = FOREGROUND_RED;break;
break;
}
case 306: case 307:{
colorAttr = FOREGROUND_RED;break;
break;
}
case 308: case 309:{
colorAttr = FOREGROUND_RED | FOREGROUND_BLUE;break;
break;
}
case 310: case 311:{
colorAttr = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY;
break;
}
case 312: case 313:{
colorAttr = FOREGROUND_BLUE | FOREGROUND_INTENSITY;
break;
}
case 314: case 315:{
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY;
break;
}
// 道具 (闪烁绿色系)
case 400: case 401: case 402: case 403: case 404: case 405:
if (blinkPhase) {
colorAttr = FOREGROUND_GREEN | FOREGROUND_INTENSITY;
} else {
colorAttr = FOREGROUND_GREEN | ((cellValue % 2) ? FOREGROUND_BLUE : 0);
}
break;
// 特殊物品 (动态紫色)
case 12: {
int pulse = (currentTick / 50) % 8;
if (pulse < 4) {
colorAttr = FOREGROUND_RED | FOREGROUND_BLUE | (pulse % 2 ? FOREGROUND_INTENSITY : 0);
} else {
colorAttr = FOREGROUND_BLUE | ((pulse % 2) ? FOREGROUND_INTENSITY : 0);
}
break;
}
}
// BOSS飞船多色渲染
if (boss1n && (y == boss.y || y == boss.y+1) && (x >= boss.x-1 && x <= boss.x+1)) {
if (boss.par == 0) { // 第一种BOSS形态
if (y == boss.y && x == boss.x) { // 核心
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY; // 黄色
} else if (y == boss.y+1 && x == boss.x) { // 引擎
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY; // 亮红色
} else { // 武器
colorAttr = FOREGROUND_BLUE | FOREGROUND_INTENSITY; // 亮蓝色
}
} else { // 第二种BOSS形态
int partColor = (x - boss.x + 1) + (y - boss.y) * 3;
switch(partColor) {
case 0: case 2: case 6: case 8: // 角落
colorAttr = FOREGROUND_RED | FOREGROUND_INTENSITY; break;
case 1: case 3: case 5: case 7: // 边缘
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY; break;
case 4: // 中心
colorAttr = FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY; break;
}
}
}
// BIGBOSS多部位多色渲染
if (bigboss.u && (y >= bigboss.y-2 && y <= bigboss.y+2) && (x >= bigboss.x-2 && x <= bigboss.x+2)) {
char bossChar = bigBoss[bigboss.par][y - (bigboss.y-2)][x - (bigboss.x-2)];
switch(bossChar) {
case 'O': // 核心部件 - 脉冲红色
colorAttr = FOREGROUND_RED | ((currentTick % 200 < 100) ? FOREGROUND_INTENSITY : 0);
break;
case 'X': // 驾驶舱 - 闪烁青色
colorAttr = FOREGROUND_GREEN | FOREGROUND_BLUE |
(blinkPhase ? FOREGROUND_INTENSITY : 0);
break;
case 'H': // 武器基座 - 交替红黄
colorAttr = (currentTick % 300 < 150) ?
(FOREGROUND_RED | FOREGROUND_INTENSITY) :
(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
break;
case '|': // 主炮 - 强白色
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY;
break;
case '>': case '<': // 副炮 - 橙色
colorAttr = FOREGROUND_RED | FOREGROUND_GREEN |
((currentTick % 150 < 75) ? FOREGROUND_INTENSITY : 0);
break;
case '[': case ']': // 外壳框架 - 暗红色
colorAttr = FOREGROUND_RED;
break;
case '=': // 装甲板 - 金属灰
colorAttr = FOREGROUND_INTENSITY;
break;
default: // 其他部分
colorAttr = FOREGROUND_RED | FOREGROUND_BLUE; // 紫色
break;
}
}
// 应用颜色
COORD coord = {static_cast<SHORT>(x), static_cast<SHORT>(y)};
DWORD written;
WriteConsoleOutputAttribute(hConsole, &colorAttr, 1, coord, &written);
}
void fastcls() {
static HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
static CONSOLE_CURSOR_INFO oldCursor;
static bool firstRun = true;
if(firstRun) {
CONSOLE_CURSOR_INFO cursor = {100, FALSE};
GetConsoleCursorInfo(hOut, &oldCursor);
SetConsoleCursorInfo(hOut, &cursor);
firstRun = false;
}
SetConsoleCursorPosition(hOut, COORD{0,0});
for(int i=0; i<3; i++) {
WriteConsoleA(hOut, " \b", 2, NULL, NULL);
}
}
void screen(){
fastcls();
//clear();
if(boss1n){
if(boss.par==0){
mapx[boss.y][boss.x]=108;
mapx[boss.y][boss.x+1]=108;
mapx[boss.y][boss.x-1]=108;
mapx[boss.y+1][boss.x]=109;
}
}
for(int i=0;i<27;i++){
cout<<"#";
for(int ii=0;ii<20;ii++){
cout<<char(dfp(mapx[i][ii]));
}
cout<<"#";
cout<<endl;
}
cout<<endl<<endl;
for(int i=0;i<20;i++){
cout<<"--";
}cout<<endl<<endl;
for(int i=0;i<20;i++){
cout<<"--";
}cout<<endl;
}
void clear(){
DWORD written;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
for(int i=0;i<90;i++){
COORD startPos = {0, i};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 100, startPos, &written);
}
COORD startPos = {0, 0};
SetConsoleCursorPosition(hConsole, startPos);
}
void ClearScreen() {
if(bigboss.u){
int xn=0,yn=0;
for(int i=bigboss.y-2;i<=bigboss.y+1;i++){
xn=0;
for(int ii=bigboss.x-2;ii<=bigboss.x+2;ii++){
mapx[i][ii]=bigBoss[bigboss.par][yn][xn];
xn++;
}
yn++;
}
mapx[bigboss.y+2][bigboss.x]='|';
}
if(boss1n){
if(boss.par==0){
mapx[boss.y][boss.x]=108;
mapx[boss.y][boss.x+1]=108;
mapx[boss.y][boss.x-1]=108;
mapx[boss.y+1][boss.x]=109;
}else if(boss.par==1){
mapx[boss.y][boss.x]=105;
mapx[boss.y][boss.x+1]=106;
mapx[boss.y][boss.x-1]=104;
mapx[boss.y+1][boss.x]=109;
}
else if(boss.par==2){
mapx[boss.y][boss.x]=120;
mapx[boss.y][boss.x+1]=121;
mapx[boss.y][boss.x-1]=121;
mapx[boss.y+1][boss.x]=121;
}
else if(boss.par==3){
mapx[boss.y][boss.x]=120;
mapx[boss.y][boss.x+1]=122;
mapx[boss.y][boss.x-1]=122;
mapx[boss.y+1][boss.x]=121;
}else if(boss.par==4){
mapx[boss.y][boss.x]=120;
mapx[boss.y][boss.x+1]=124;
mapx[boss.y][boss.x-1]=125;
mapx[boss.y+1][boss.x]=123;
}
}
int a1=0;
for(int i=0;i<100;i++){
if(a1==du){
break;
}
if(dun[i].u){
a1++;
for(int ii=dun[i].x1;ii<=dun[i].x2;ii++){
if(ii<0){
continue;
}
mapx[dun[i].y][ii]=410;
}
}
}
if(bp>0){
for(int i=0;i<30;i++){
if(bplane[i].u){
mapx[bplane[i].y][bplane[i].x]=301;
}
}
}
int a2=0;if(play.dead==1){
for(int i=play.y-1;i<=play.y+1;i++){
for(int ii=play.x-1;ii<=play.x+1;ii++){
if((i==play.y-1&&ii==play.x-1)||(i==play.y-1&&ii==play.x+1)){
a2++;
continue;
}
a2++;
if(play.par==0){
mapx[i][ii]=100+a2;
}else if(play.par==1){
mapx[i][ii]=110+a2;
}
}
}
}else{
for(int i=play.y-1;i<=play.y+1;i++){
for(int ii=play.x-1;ii<=play.x+1;ii++){
mapx[i][ii]=3;
}
}
}
for(int i=0;i<27;i++){
for(int ii=0;ii<20;ii++){
if(firex[i][ii]>0&&mapx[i][ii]==0){
mapx[i][ii]=4;
}
}
}
if(gi>=0){
for(int i=0;i<100;i++){
if(gift[i].use==1){
mapx[gift[i].y][gift[i].x]=gift[i].par+400;
}
}
}
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
if (hConsole == INVALID_HANDLE_VALUE) {
std::cerr << "无法获取控制台句柄" << std::endl;
exit(0);
}
int ax;
for(int i=0;i<26;i++){
for(int ii=1;ii<=20;ii++){
SHORT y = i; // 行号(从0开始)
SHORT x = ii; // 列号(从0开始)
COORD coord = {x, y};
char buffer;
DWORD charsRead;
BOOL success = ReadConsoleOutputCharacterA(hConsole, &buffer, 1, coord, &charsRead);
if (!success || charsRead != 1) {
std::cerr << "读取失败,错误代码: " << GetLastError() << std::endl;
return ;
}
if(static_cast<int>(buffer)!=dfp(mapx[i][ii])){
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD startPos = {ii, i}; //
DWORD written;
if(dfp(mapx[i][ii])>30&&dfp(mapx[i][ii])<128){
FillConsoleOutputCharacter(hConsole, dfp(mapx[i][ii]), 1, startPos, &written);
textcolor(i,ii);
}
if((bigboss.u&&bigboss.y-2<=i&&bigboss.y+1>=i&&bigboss.x-2<=ii&&bigboss.x+2>=ii)||(i==bigboss.y+2&ii==bigboss.x)){
FillConsoleOutputCharacter(hConsole, mapx[i][ii], 1, startPos, &written);
textcolor(i,ii);
}
}
}
}
//HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD startPos = {24, 0}; //
DWORD written;
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"炮向:";
if(play.v){
cout<<"前";
}else{
cout<<"后";
}
cout<<" level ";
if(mis==0)cout<<"!";
else cout<<mis;
startPos = {24, 1};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"heart:"<<play.h;
startPos = {24, 2};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"ammo:"<<play.ammo;
startPos = {24, 6};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
startPos = {24, 3};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"time:"<<tx1;
startPos = {24, 4};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"coin:"<<play.coin;
startPos = {24, 5};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
if(boss1n){
cout<<"boss:"<<boss.h;
}
if(bigboss.u==1){
cout<<"bigboss:"<<bigboss.h;
}
startPos = {24, 6};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
if(bigboss.u==1){
cout<<"warning:"<<bigboss.t;
}
startPos = {24, 7};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
if(mis==2){
cout<<"energy:"<<play.enegy;
}
startPos = {24, 8};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
if(play.buff==0){
cout<<"No buff";
}else if(play.buff==1){
cout<<"ice";
}
else if(play.buff==2){
cout<<"fire";
}
startPos = {24, 9};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<"Buff time:"<<play.bufft<<"ms";
for(int i=0;i<3;i++){
startPos = {24, i+12};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 20, startPos, &written);
cout<<i+1<<".";
if(play.bag.size()<i+1){
cout<<"nothing";
continue;
}
if(play.bag[i]==1){
cout<<"fix+";
}
else if(play.bag[i]==2){
cout<<"rocket";
}
else if(play.bag[i]==3){
cout<<"ammo+";
}
else if(play.bag[i]==4){
cout<<"X-ray";
}
else if(play.bag[i]==5){
cout<<"rush-Z";
}
else if(play.bag[i]==5){
cout<<"fire";
}
else if(play.bag[i]==0||play.bag.begin()+i>play.bag.end()){
cout<<"nothing";
}
}
startPos = {0, 29};
SetConsoleCursorPosition(hConsole, startPos);
}
void speak(bool a1,int a2){
DWORD written;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD startPos = {0, 27};
SetConsoleCursorPosition(hConsole, startPos);
FillConsoleOutputCharacter(hConsole, ' ', 100, startPos, &written);
tell=1;
if(a1==0){
if(a2==-1){
cout<<"Game over";
}
if(a2==0){
cout<<"coin!";
return;
}
if(a2==1){
cout<<"fix!";
return;
}
if(a2==2){
cout<<"ammo!";
return;
}
if(a2==3){
cout<<"rocket help!";
return;
}
if(a2==4){
cout<<"bang!";
return;
}
if(a2==5){
cout<<"enemies are comming!";
return;
}
if(a2==6){
cout<<"be careful of rocks!";
return;
}
if(a2==7){
cout<<"use the key of 'a' 'd' to move";
return;
}
if(a2==8){
cout<<"here we go!";
return;
}
if(a2==9){
cout<<"use the key of space to shoot";
return;
}
if(a2==10){
cout<<"use the key of 'w' 'd' to change the orientation of your space ship";
return ;
}
if(a2==11){
cout<<"use the key of '1' '2' '3' to use the things you buy";
return;
}
if(a2==12){
cout<<"use the key 'a' 'd' to change the thing you choose in the shop";
return;
}
if(a2==13){
cout<<"pick up the 'o' in the space to get some good things";
return;
}
if(a2==14){
cout<<"you can shoot the stone and enemy";
return;
}
if(a2==15){
cout<<"oh guys , today we don't have enough energy ";
return;
}
if(a2==16){
cout<<"we can get energy by shooting someing...";
return;
}
if(a2==17){
cout<<"are you ready ? time is becoming faster...";
return;
}
if(a2==18){
cout<<"ola ";
return;
}
if(a2==19){
cout<<"ola ola";
return;
}
if(a2==19){
cout<<"ola ola ola";
return;
}
if(a2==100){
cout<<"oh guy,you're great that you come";
return;
}
if(a2==101){
cout<<"but...";
return;
}
if(a2==102){
cout<<"there is a dart team ''Marzh'',you'll face marzh's attack";
return;
}
if(a2==103){
cout<<"good luck";
return;
}
if(a2==104){
cout<<"Marzh:Insects... you dare trespass into my domain?";
return;
}
if(a2==105){
cout<<"I used to be a horse wrangler,";
return;
}
if(a2==106){
cout<<"but now,I can kill you easily";
}
if(a2==107){
cout<<"Do you even know who you're facing?";
return;
}
if(a2==108){
cout<<"PREPARE TO DIE!";
return;
}
if(a2==109){
cout<<"attack!";
return;
}
if(a2==110){
cout<<"oh! you come";
return;
}
if(a2==111){
cout<<"but there is a boss wait for you...";
return;
}
if(a2==112){
cout<<"but we have enough energy now";
return;
}
if(a2==113){
cout<<"good luck";
return;
}if(a2==201){
cout<<"Though I am about to die, my followers will continue to fight, for they are the embodiment of my will.";
return;
}
}
}
void adicent(int x,int y,int p){
if(boss1n){
if((x==boss.x-1||x==boss.x+1||x==boss.x)&&y==boss.y&&boss.y>5){
boss.h-=10;
if(boss.h<=0){
boss.u=0;
boss1n=0;
for(int i=boss.x-1;i<=boss.x+1;i++){
for(int ii=boss.y-1;ii<=boss.y+1;ii++){
mapx[ii][i]=3;
}
}
boom=1;
}
return ;
}
}
if(bigboss.u){
for(int i=bigboss.y;i<=bigboss.y+1;i++){
for(int ii=bigboss.x-2;ii<=bigboss.x+2;ii++){
if(i==y&&ii==x){
bigboss.h-=10;
if(bigboss.h<=0){
for(int k=bigboss.y-2;k<=bigboss.y+2;k++){
for(int kk=bigboss.x-2;kk<=bigboss.x+2;kk++){
mapx[k][kk]=3;
}
}
boom=1;
play.coin+=1000;
bigboss.u=0;
}
return;
}
}
}
}
int a1=0;
for(int i=0;i<501;i++){
if(a1>=en){
return ;
}
if(enemy[i].dead==1){
a1++;
if(enemy[i].x==x&&enemy[i].y==y){
if(p!=0){
enemy[i].buff=p;
enemy[i].bufft=10;
return;
}
enemy[i].h-=10;
if(enemy[i].h>0) return;
enemy[i].dead=0;
for(int i=y-1;i<=y+1;i++){
for(int ii=x-1;ii<=x+1;ii++){
mapx[i][ii]=3;
}
}
boom=1;
play.enegy+=10;
return ;
}
}
}
/*}else{
int a1=0;
for(int i=0;i<1000;i++){
if(ammo[i].use==1){
a1++;
if(ammo[i].x==x&&ammo[i].y==y){
ammo[i].use=0;
return 1;
}
}
}
}*/
}
bool adicent2(int x,int y,int p){
//cout<<"xxxxxxxxxxxxxxxxxx";
for(int i=0;i<100;i++){
if(x>=min(dun[i].x1,dun[i].x2)&&x<=max(dun[i].x1,dun[i].x2)&&y==dun[i].y&&dun[i].u){
if(p==dun[i].p){
dun[i].h-=10;
if(dun[i].h<=0){
dun[i].u=0;
du--;
for(int ii=dun[i].x1;ii<=dun[i].x2;ii++){
mapx[y][ii]=3;
boom=1;
}
}
return 1;
}
}
}
return 0;
}
void fire(int y1,int y2,int x1,int x2,int t){
int mx=ra-1,k=0;
for(int i=y1;i<=y2;i++){
for(int ii=x1;ii<=x2;ii++){
if(randx[k]%5==0){
firex[i][ii]=t;
}
k++;
if(k>=mx){
k=0;
}
}
}
ra=9;
firet=max(firet,t);
}
void ammox(){
int a1=0;
for(int i=0;i<1001;i++){
if(ammo[i].use==1){
a1++;
if(ammo[i].par==1||ammo[i].par==2||ammo[i].par==9||ammo[i].par==11){
if(ammo[i].dev==0){
mapx[ammo[i].y+1][ammo[i].x]=0;
}else if(ammo[i].dev==1){
mapx[ammo[i].y][ammo[i].x-1]=0;
}else if(ammo[i].dev==2){
mapx[ammo[i].y-1][ammo[i].x]=0;
}else if(ammo[i].dev==3){
mapx[ammo[i].y][ammo[i].x+1]=0;
}else if(ammo[i].dev==4){
mapx[ammo[i].y+1][ammo[i].x-1]=0;
}else if(ammo[i].dev==5){
mapx[ammo[i].y-1][ammo[i].x-1]=0;
}else if(ammo[i].dev==6){
mapx[ammo[i].y-1][ammo[i].x+1]=0;
}else if(ammo[i].dev==7){
mapx[ammo[i].y+1][ammo[i].x+1]=0;
}
}
mapx[ammo[i].y][ammo[i].x]=0;
if(ammo[i].par==9){
if(ammo[i].x>play.x){ammo[i].dev=4;}
else if(ammo[i].x==play.x){ammo[i].dev=2;}
else{ammo[i].dev=7;}
}
if(ammo[i].dev==0){
ammo[i].y--;
}else if(ammo[i].dev==1){
ammo[i].x++;
}else if(ammo[i].dev==2){
ammo[i].y++;
}else if(ammo[i].dev==3){
ammo[i].x--;
}else if(ammo[i].dev==4){
ammo[i].x--;
ammo[i].y++;
}else if(ammo[i].dev==5){
ammo[i].x--;
ammo[i].y--;
}else if(ammo[i].dev==6){
ammo[i].x++;
ammo[i].y--;
}else if(ammo[i].dev==7){
ammo[i].x++;
ammo[i].y++;
}
if(ammo[i].par==2){
int a1=0;
am+=2;
for(int ii=0;ii<1000;ii++){
if(ammo[ii].use==0){
ammo[ii].use=1;
ammo[ii].x=ammo[i].x;
if(ammo[i].dev==0){
ammo[ii].y=ammo[i].y+1;
}else if(ammo[i].dev==2){
ammo[ii].y=ammo[i].y-1;
}
ammo[ii].par=0;
ammo[ii].dev=1;
ammo[ii].team=ammo[i].team;
break;
}
a1++;
}
for(int ii=a1;ii<1000;ii++){
if(ammo[ii].use==0){
ammo[ii].use=1;
ammo[ii].par=0;
ammo[ii].x=ammo[i].x;
if(ammo[i].dev==0){
ammo[ii].y=ammo[i].y+1;
}else if(ammo[i].dev==2){
ammo[ii].y=ammo[i].y-1;
}
ammo[ii].dev=3;
ammo[ii].team=ammo[i].team;
break;
}
}
}
if(ammo[i].par==10){
fire(ammo[i].y-1,ammo[i].y+1,ammo[i].x-1,ammo[i].x+1,5);
for(int k=ammo[i].y-1;k<=ammo[i].y+1;k++){
for(int ii=ammo[i].x-1;ii<=ammo[i].x+1;ii++){
mapx[k][ii]=3;
adicent(ammo[i].x,ammo[i].y,2);
adicent2(ammo[i].x,ammo[i].y,ammo[i].team);
}
}
boom=1;
}
if(mapx[ammo[i].y][ammo[i].x]!=0&&(mapx[ammo[i].y][ammo[i].x]<200||mapx[ammo[i].y][ammo[i].x]>250)&&mapx[ammo[i].y][ammo[i].x]!=3&&mapx[ammo[i].y][ammo[i].x]!=4){
if(ammo[i].par==0||ammo[i].par==6||ammo[i].par==7||ammo[i].par==8){
if(((ammo[i].y==play.y-1&&ammo[i].x==play.x)||(ammo[i].y==play.y&&ammo[i].x==play.x-1)||(ammo[i].y==play.y+1&&ammo[i].x==play.x)||(ammo[i].y==play.y&&ammo[i].x==play.x+1))&&ammo[i].team==0){
if(ammo[i].par==6){
if(play.buff==1){
play.bufft+=100;
}else{
play.buff=1;
play.bufft=100;
}
}else if(ammo[i].par==7){
if(play.buff==2){
play.bufft+=100;
}else{
play.buff=2;
play.bufft=100;
}
}
if(ammo[i].par==8){
am+=8;
int a91=0;
for(int k=0;k<8;k++){
for(int z=a91;z<1000;z++){
if(!ammo[z].use){
ammo[z].use=1;
ammo[z].y=ammo[i].y;
ammo[z].x=ammo[i].x;
ammo[z].team=ammo[i].team;
ammo[z].par=0;
ammo[z].dev=k;
break;
}
a91++;
}
}
}
play.h-=10;
ammo[i].use=0;
am--;
}else if(mapx[ammo[i].y][ammo[i].x]==2){
if(ammo[i].par==8){
am+=8;
int a91=0;
for(int k=0;k<8;k++){
for(int z=a91;z<1000;z++){
if(!ammo[z].use){
ammo[z].use=1;
ammo[z].y=ammo[i].y;
ammo[z].x=ammo[i].x;
ammo[z].team=ammo[i].team;
ammo[z].par=0;
ammo[z].dev=k;
break;
}
a91++;
}
}
}
ammo[i].use=0;
play.enegy++;
mapx[ammo[i].y][ammo[i].x]=3;
am--;
boom=1;
}else if(mapx[ammo[i].y][ammo[i].x]==410&&adicent2(ammo[i].x,ammo[i].y,ammo[i].team)){
if(ammo[i].par==8){
am+=8;
int a91=0;
for(int k=0;k<8;k++){
for(int z=a91;z<1000;z++){
if(!ammo[z].use){
ammo[z].use=1;
ammo[z].y=ammo[i].y;
ammo[z].x=ammo[i].x;
ammo[z].team=ammo[i].team;
ammo[z].par=0;
ammo[z].dev=k;
break;
}
a91++;
}
}
}
ammo[i].use=0;am--;
}else if(ammo[i].team==1){
if(ammo[i].par==8){
am+=8;
int a91=0;
for(int k=0;k<8;k++){
for(int z=a91;z<1000;z++){
if(!ammo[z].use){
ammo[z].use=1;
ammo[z].y=ammo[i].y;
ammo[z].x=ammo[i].x;
ammo[z].team=ammo[i].team;
ammo[z].par=0;
ammo[z].dev=k;
break;
}
a91++;
}
}
}
ammo[i].use=0;
adicent(ammo[i].x,ammo[i].y,0);
//adicent2(ammo[i].x,ammo[i].y,ammo[i].team);
am--;
}}else if(ammo[i].par==1||ammo[i].par==2||ammo[i].par==8||ammo[i].par==9||ammo[i].par==10||ammo[i].par==11){
if(ammo[i].par==11){
ammo[i].use=0;am--;
fire(ammo[i].y-2,ammo[i].y+2,ammo[i].x-2,ammo[i].x+2,8);
}
for(int k=ammo[i].y-1;k<=ammo[i].y+1;k++){
for(int ii=ammo[i].x-1;ii<=ammo[i].x+1;ii++){
mapx[k][ii]=3;
if(((k==play.y-1&&ii==play.x)||(k==play.y&&ii==play.x-1)||(k==play.y+1&&ii==play.x)||(k==play.y&&ii==play.x+1))&&ammo[i].team==0){
play.h-=10;
}
adicent(ammo[i].x,ammo[i].y,0);
adicent2(ammo[i].x,ammo[i].y,ammo[i].team);
}
}
boom=1;
ammo[i].use=0;am--;
}
continue;
}
if(ammo[i].y<0||ammo[i].y>26){
ammo[i].use=0;
am--;
continue;
}
if(ammo[i].x<0||ammo[i].x>20){
ammo[i].use=0;
am--;
continue;
}
if(ammo[i].use==1)
if(ammo[i].par==0||ammo[i].par==6||ammo[i].par==7){
mapx[ammo[i].y][ammo[i].x]=200;
}else if(ammo[i].par==1||ammo[i].par==9||ammo[i].par==11){
mapx[ammo[i].y][ammo[i].x]=201;
if(ammo[i].dev==0){
mapx[ammo[i].y+1][ammo[i].x]=202;
}else if(ammo[i].dev==1){
mapx[ammo[i].y][ammo[i].x-1]=202;
}else if(ammo[i].dev==2){
mapx[ammo[i].y-1][ammo[i].x]=202;
}else if(ammo[i].dev==3){
mapx[ammo[i].y][ammo[i].x+1]=202;
}
}else if(ammo[i].par==10){
mapx[ammo[i].y][ammo[i].x]=3;
}
else if(ammo[i].par==2){
mapx[ammo[i].y][ammo[i].x]=203;
if(ammo[i].dev==0){
mapx[ammo[i].y+1][ammo[i].x]=204;
}else if(ammo[i].dev==1){
mapx[ammo[i].y][ammo[i].x+1]=204;
}else if(ammo[i].dev==2){
mapx[ammo[i].y-1][ammo[i].x]=204;
}else if(ammo[i].dev==3){
mapx[ammo[i].y][ammo[i].x-1]=204;
}
}else if(ammo[i].par==8){
mapx[ammo[i].y][ammo[i].x]=208;
}
}
}
}
void rock(int a1){
for(int i=26;i>=0;i--){
for(int ii=19;ii>=0;ii--){
if(mapx[i][ii]==2){
if((i+1==play.y&&ii==play.x+1)||(i+1==play.y&&ii==play.x-1)||(i+1==play.y-1&&ii==play.x)){
mapx[i+1][ii]=3;
boom=1;
play.dead=0;
continue;
}
mapx[i][ii]=0;
mapx[i+1][ii]=2;
continue;
}
if(mapx[i][ii]==3&&mapx[i+1][ii]==0){
mapx[i][ii]=0;
mapx[i+1][ii]=3;
}
}
}
for(int i=1;i<=randx[0]%(a1+1);i++){
mapx[0][randx[i]]=2;
}
ra=0;
}
void rands(){
int a=0;
struct timeb timeSeed;
ftime(&timeSeed);
srand(timeSeed.time * 1000 + timeSeed.millitm); // milli time
unsigned int range = a - 20 + 1;
unsigned int crand = rand() % range + 20;
randx[ra]=crand%20;
ra++;
}
void enemyx(int a1,int p,bool v){
int a2=0;
en+=a1;
if(v==1){
for(int i=20;i<27;i++){
for(int ii=0;ii<20;ii++){
mapx[i][ii]=3;
boom=1;
}
}
}
for(int i=0;i<=500;i++){
if(a2==a1){
return ;
}
if(enemy[i].dead==0){
enemy[i].dead=1;
enemy[i].par=p;
if(p==0||p==1){
enemy[i].h=10;
enemy[i].sp=1;
}else if(p==4){
enemy[i].h=10;
enemy[i].sp=3;
}else if(p==5){
enemy[i].h=20;
enemy[i].sp=5;
}
enemy[i].v=v;
enemy[i].v3=v;
if(enemy[i].v){
enemy[i].y=26;
}else{
enemy[i].y=0;
}
enemy[i].x=20/a1*a2;
//enemy[i].x=10;
enemy[i].v2=randx[a2]%2;
a2++;
}
}
ra=0;
}
void enemy2(){
int a1=0;
for(int i=0;i<=500;i++){
if(a1==en){
return;
}
if(enemy[i].dead==1){
if(enemy[i].bufft>0){
enemy[i].bufft--;
if(enemy[i].buff==1){
enemy[i].m--;
}else if(enemy[i].buff==2){
enemy[i].h--;
if(enemy[i].h<=0){
adicent(enemy[i].x,enemy[i].y,0);
}
}
}
if(firex[enemy[i].y][enemy[i].x]>0){
enemy[i].buff=2;
enemy[i].bufft=10;
}
enemy[i].m++;
a1++;
if(enemy[i].m<enemy[i].sp) continue;
enemy[i].m=0;
mapx[enemy[i].y][enemy[i].x]=0;
if(enemy[i].v2){
enemy[i].x++;
}else{
enemy[i].x--;
}
if(enemy[i].x>=19){
enemy[i].v2=0;
}else if(enemy[i].x<=1){
enemy[i].v2=1;
}
if(enemy[i].v3){
if(mapx[enemy[i].y-1][enemy[i].x]==2){
mapx[enemy[i].y-1][enemy[i].x]=3;
enemy[i].dead=0;
continue;
}
enemy[i].y--;
}else{
if(mapx[enemy[i].y+1][enemy[i].x]==2){
mapx[enemy[i].y+1][enemy[i].x]=3;
enemy[i].dead=0;
continue;
}
enemy[i].y++;
}
if(enemy[i].y==22||enemy[i].y==6||enemy[i].y==0||enemy[i].y==26){
if(enemy[i].v3){
enemy[i].v3=0;
}else{
enemy[i].v3=1;
}
}
if(enemy[i].v){
mapx[enemy[i].y][enemy[i].x]=300+2*enemy[i].par;
}else{
mapx[enemy[i].y][enemy[i].x]=301+2*enemy[i].par;
}
}
}
}
void bplane2(){
int a1=0;
for(int i=0;i<9;i++){
if(a1>bp){
return;
}
if(bplane[i].u==1){
a1++;
mapx[bplane[i].y][bplane[i].x]=0;
if(bplane[i].s[bplane[i].sx]==0){
bplane[i].y++;
bplane[i].x--;
}else if(bplane[i].s[bplane[i].sx]==1){
bplane[i].y++;
}else if(bplane[i].s[bplane[i].sx]==2){
bplane[i].y++;
bplane[i].x++;
}
bplane[i].sx++;
//mapx[bplane[i].y][bplane[i].x]=301;
if(bplane[i].sx==17){
bplane[i].u=0;
for(int ii=bplane[i].y-1;ii<=bplane[i].y+1;ii++){
for(int iii=bplane[i].x-1;iii<bplane[i].x+1;iii++){
mapx[ii][iii]=3;
if(((ii==play.y-1&&iii==play.x)||(ii==play.y&&iii==play.x-1)||(ii==play.y+1&&iii==play.x)||(ii==play.y&&iii==play.x+1))) play.h-=50;
}
}
boom=1;
}
}
}
}
void attack(){
for(int k=0;k<=500;k++){
if(enemy[k].dead==1){
enemy[k].shot++;
if(enemy[k].shot<enemy[k].sp){
continue;
}
enemy[k].shot=0;
if(enemy[k].par==4){
if(enemy[k].v){
xray(enemy[k].x,enemy[k].y,1,2,1,50);
}else{
xray(enemy[k].x,enemy[k].y,1,0,1,50);
}
xrayx=1;
continue;
}
if(enemy[k].par==5){
autodun(enemy[k].y,enemy[k].x-2,enemy[k].x+2,1);
}
for(int i=0;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=enemy[k].x;
if(enemy[i].v){
ammo[i].y=enemy[k].y-1;
}else{
ammo[i].y=enemy[k].y+1;
}
ammo[i].par=enemy[k].par;
if(enemy[k].v){
ammo[i].dev=0;
}else{
ammo[i].dev=2;
}
ammo[i].team=0;
am++;
break;
}
}
}}
}
void giftx(){
int a1=0,a2=0;gi++;
for(int i=0;i<abs(randx[0]+randx[1]+1)%(randx[0]+1)+1;i++){
if(mapx[0][a1]==2){
continue;
}
if(a1==20){
a1=0;
}
a1++;
a2++;
if(a2>=25){
break;
}
}
for(int i=0;i<100;i++){
if(gift[i].use==0){
gift[i].use=1;
gift[i].y=0;
gift[i].x=a1;
gift[i].par=randx[4]%5;
break;
}
}
ra=0;
}
void gift2(){
for(int i=0;i<100;i++){
if(gift[i].use==1){
mapx[gift[i].y][gift[i].x]=0;
gift[i].y++;
if(((gift[i].x==play.x&&gift[i].y==play.y)||(gift[i].x==play.x-1&&gift[i].y==play.y)||(gift[i].x==play.x+1&&gift[i].y==play.y)||(gift[i].x==play.x&&gift[i].y==play.y+1)||(gift[i].x==play.x-1&&gift[i].y==play.y+1)||(gift[i].x==play.x+1&&gift[i].y==play.y+1))&&gift[i].use){
gift[i].use=0;
if(gift[i].par==0){
play.h+=50;
speak(0,1);
}else if(gift[i].par==1){
play.coin+=100;
speak(0,0);
}else if(gift[i].par==2){
play.ammo+=100;
speak(0,2);
}
}
if(gift[i].y>=27){
gift[i].use=0;
}
}
}
}
void bossx(){
mapx[boss.y][boss.x]=0;
mapx[boss.y][boss.x+1]=0;
mapx[boss.y][boss.x-1]=0;
mapx[boss.y+1][boss.x]=0;
if(boss.y<7){
boss.y++;
return;
}
if(boss.x>play.x){
boss.x--;
}else if(boss.x<play.x){
boss.x++;
}
if(abs(boss.x-play.x)<3){
if(boss.par==0){
for(int k=-1;k<=1;k++){
for(int i=0;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=boss.x+k;
if(k==0){
ammo[i].y=boss.y;
}else{
ammo[i].y=boss.y-1;
}
ammo[i].par=0;
ammo[i].dev=2;
ammo[i].team=0;
am++;
break;
}
}
}
}else if(boss.par==1){
for(int i=0;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=boss.x;
ammo[i].y=boss.y+1;
ammo[i].par=1;
ammo[i].dev=2;
ammo[i].team=0;
am++;
break;
}
}
}else if(boss.par==2&&abs(boss.x-play.x)<2){
for(int i=0;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=boss.x;
ammo[i].y=boss.y+1;
ammo[i].par=2;
ammo[i].dev=2;
ammo[i].team=0;
am++;
break;
}
}
}else if(boss.par==3){
int a1=0;
for(int k=-1;k<=1;k++){
for(int i=a1;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=boss.x+k;
ammo[i].y=boss.y+1;
ammo[i].par=1;
ammo[i].dev=2;
ammo[i].team=0;
am++;
break;
}
a1++;
}
}
}else if(boss.par==4&&boss.x==play.x){
xray(boss.x,boss.y,1,0,1,5);
xrayx=1;
}
}
}
bool dfs(int s,int par,int x,int y){
if((y==play.y&&x==play.x)||(y==play.y&&x==play.x-1)||(y==play.y&&x==play.x+1)){
return 1;
}
if(y>20||x<0||x>=20){
return 0;
}
for(int i=0;i<3;i++){
if(i==1){
if(mapx[y+1][x]!=3){
bplane[par].s[s]=i;
if(dfs(s+1,par,x,y+1)){
return 1;
}
}
}
if(i==0){
if(mapx[y+1][x-1]!=3){
bplane[par].s[s]=i;
if(dfs(s+1,par,x-1,y+1)){
return 1;
}
}
}
if(i==2){
if(mapx[y+1][x+1]!=3){
bplane[par].s[s]=i;
if(dfs(s+1,par,x+1,y+1)){
return 1;
}
}
}
}
}
void bplanex(int a1){
bool ok=0;
for(int i=0;i<a1;i++){
ok=0;
for(int k=0;k<30;k++){
if(bplane[k].u){
continue;
}
for(int ii=0;ii<20;ii++){
if(dfs(0,k,ii,0)){
bplane[k].h=50;
bplane[k].y=0;
bplane[k].x=ii;
bplane[k].u=1;
bplane[k].sx=0;
bp++;
ok=1;
break;
}else{
memset(bplane[k].s,0,sizeof(bplane[k].s));
}
}
if(ok){
break;
}
}
}
}
int xa[3];
void clearshop(int a1,int a2,int a3,int ax){
xa[0]=a1;
xa[1]=a2;
xa[2]=a3;
clear();
DWORD written;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD startPos = {0, 0};
SetConsoleCursorPosition(hConsole, startPos);
cout<<" small shop"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"# #"<<endl;
cout<<"code "<<xa[0]<<" "<<xa[1]<<" "<<xa[2];
startPos = {3, 5};
SetConsoleCursorPosition(hConsole, startPos);
for(int i=0;i<3;i++){
for(int ii=0;ii<3;ii++){
startPos = {3+7*i, 5+ii};
SetConsoleCursorPosition(hConsole, startPos);
for(int iii=0;iii<3;iii++){
cout<<thing[xa[i]-1][ii][iii];
}
}
startPos = {2+i*7, 8};
SetConsoleCursorPosition(hConsole, startPos);
if(xa[i]==1){
cout<<"fix+";
}else if(xa[i]==2){
cout<<"rocket";
}else if(xa[i]==3){
cout<<"ammo+";
}else if(xa[i]==4){
cout<<"X-ray";
}else if(xa[i]==5){
cout<<"rush-Z";
}else if(xa[i]==6){
cout<<"fire";
}
startPos = {2+i*7, 9};
SetConsoleCursorPosition(hConsole, startPos);
cout<<price[xa[i]-1]<<"$";
}
if(ax==1){
COORD startPos = {4, 10};
SetConsoleCursorPosition(hConsole, startPos);
}else if(ax==2){
COORD startPos = {10, 10};
SetConsoleCursorPosition(hConsole, startPos);
}else if(ax==3){
COORD startPos = {16, 10};
SetConsoleCursorPosition(hConsole, startPos);
}
cout<<"^";
startPos = {1, 12};
SetConsoleCursorPosition(hConsole, startPos);
cout<<"coin:"<<play.coin;
startPos = {1, 13};
SetConsoleCursorPosition(hConsole, startPos);
cout<<"use 'a' 'd' to change the thing you choose , use 'esc' to quit";
}
void xray(int x,int y,bool p,int dev,bool io,int h){
if(io){
if(dev==1){
if((play.y==y||play.y-1==y||play.y+1==y)&&p==1){
play.h-=h;
}
for(int i=x;i<20;i++){
if(!p)adicent(i,y,0);
mapx[y][i]=206;
}
}else if(dev==0){
if((play.x==x||play.x-1==x||play.x+1==x)&&p==1){
play.h-=h;
}
for(int i=y;i<26;i++){
if(!p)adicent(i,x,0);
mapx[i][x]=205;
}
}else if(dev==3){
if((play.y==y||play.y-1==y||play.y+1==y)&&p==1){
play.h-=h;
}
for(int i=x;i>=0;i--){
if(!p)adicent(i,y,0);
mapx[y][i]=206;
}
}else if(dev==2){
if((play.x==x||play.x-1==x||play.x+1==x)&&p==1){
play.h-=h;
}
for(int i=y;i>=0;i--){
if(!p)adicent(i,x,0);
mapx[i][x]=205;
}
}
}else{
for(int i=0;i<27;i++){
for(int ii=0;ii<20;ii++){
if(mapx[i][ii]==205||mapx[i][ii]==206){
mapx[i][ii]=3;
}
boom=1;
}
}
}
}
int xa2[3];
int buy(int a2,int a3,int a4,int a1){
a1--;
xa2[0]=a2;
xa2[1]=a3;
xa2[2]=a4;
if(xa2[a1]==1){
if(play.coin>=200&&play.bagnum<3){
play.coin-=200;
play.bag.push_back(xa2[a1]);
play.bagnum++;
return 1;
}else{
return 0;
}
}
if(xa2[a1]==2){
if(play.coin>=400&&play.bagnum<3){
play.coin-=400;
play.bag.push_back(xa2[a1]);
play.bagnum++;
return 1;
}else return 0;
}
if(xa2[a1]==3){
if(play.coin>=100&&play.bagnum<3){
play.coin-=100;
play.bag.push_back(xa2[a1]);
play.bagnum++;
}else return 0;
}
if(xa2[a1]==4){
if(play.coin>=300&&play.bagnum<3){
play.coin-=300;
play.bag.push_back(xa2[a1]);
play.bagnum++;
}else return 0;
}
if(xa2[a1]==5){
if(play.coin>=1000&&play.bagnum<3){
play.coin-=1000;
play.bag.push_back(xa2[a1]);
play.bagnum++;
}else return 0;
}
if(xa2[a1]==6){
if(play.coin>=600&&play.bagnum<3){
play.coin-=600;
play.bag.push_back(xa2[a1]);
play.bagnum++;
}else return 0;
}
}
void shop(){
clear();
int a1,a2=1,a3=randx[4]%6+1,a4=randx[5]%6+1,a5=randx[6]%6+1;
clearshop(a3,a4,a5,a2);
while(1){
if(_kbhit()){
a1=getch();
if(a1=='a'&&a2-1>0){
a2--;
}
if(a1=='d'&&a2+1<4){
a2++;
}
if(a1==27){
break;
}
if(a1==32){
buy(a3,a4,a5,a2);
}
clearshop(a3,a4,a5,a2);
}
}
clear();
screen();
}
void baguse(int a1){
a1--;
if(play.bag.begin()+a1>play.bag.end()){
return;
}
if(play.bag[a1]==1){
play.h+=100;
}else if(play.bag[a1]==2){
am+=3;
for(int i=play.x-1;i<=play.x+1;i++){
for(int ii=0;ii<500;ii++){
if(ammo[ii].use==0){
ammo[ii].use=1;
ammo[ii].y=27;
ammo[ii].x=i;
ammo[ii].dev=0;
ammo[ii].team=0;
ammo[ii].par=1;
break;
}
}
}
}else if(play.bag[a1]==3){
play.ammo+=100;
}else if(play.bag[a1]==4){
for(int i=play.x-1;i<=play.x+1;i++){
for(int ii=play.y;ii>=0;ii--){
if(mapx[ii][i]==2){
mapx[ii][i]=3;
}
}
}
boom=1;
}else if(play.bag[a1]==5){
zp=1;
play.h=1000;
zt=3000;
}else if(play.bag[a1]==6){
am+=3;
for(int i=play.x-1;i<=play.x+1;i++){
for(int ii=0;ii<500;ii++){
if(ammo[ii].use==0){
ammo[ii].use=1;
ammo[ii].y=play.y-3;
ammo[ii].x=i;
ammo[ii].dev=2;
ammo[ii].team=0;
ammo[ii].par=11;
break;
}
}
}
}
play.bag[a1]=0;
}
void bigbossx(){
for(int i=bigboss.y-2;i<=bigboss.y+2;i++){
for(int ii=bigboss.x-2;ii<=bigboss.x+2;ii++){
mapx[i][ii]=0;
}
}
if(bigboss.x==0&&bigboss.y==0){
for(int i=0;i<10;i++){
for(int ii=0;ii<20;ii++){
if(mapx[i][ii]==2){
mapx[i][ii]=3;
}
}
}
bigboss.x=10;
bigboss.y=7;
return ;
}
if(bigboss.x>play.x&&bigboss.x-4>=0){
bigboss.x--;
}else if(bigboss.x<play.x&&bigboss.y+4<20){
bigboss.x++;
}
if(bigboss.t<=0){
bigboss.t=5;
int a1=randx[0]%3;
if(a1==0){
if(bigboss.par==0){
enemyx(5,0,0);
}else if(bigboss.par==1){
enemyx(3,5,0);
}else if(bigboss.par==2){
enemyx(5,6+randx[4]%2,0);
}else if(bigboss.par==3){
enemyx(1,8,0);
}
}
else if(a1==1){
if(bigboss.par==0){
int a2=0;
am+=3;
for(int k=-2;k<=2;k++){
for(int i=a2;i<1000;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].par=1;
ammo[i].dev=2;
ammo[i].team=0;
ammo[i].x=bigboss.x+k;
ammo[i].y=bigboss.y+3;
break;
}
a2++;
}
}
}else if(bigboss.par==1){
autodun(bigboss.y+3,bigboss.x-2,bigboss.x+2,1);
}else if(bigboss.par==2){
play.buff=1;
play.bufft=5000;
}else if(bigboss.par==3){
int a2=0;
for(int k=0;k<=1;k++){
for(int i=a2;i<1000;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].par=9;
ammo[i].dev=2;
ammo[i].team=0;
if(k)ammo[i].x=bigboss.x-2;
else ammo[i].x=bigboss.x+2;
ammo[i].y=bigboss.y+3;
break;
}
a2++;
}
}
}
}else if(a1==2){
if(bigboss.par==1){
enemyx(3,4,0);
}else if(bigboss.par==3){
play.buff=2;
play.bufft=1000;
}
}
}else{
bigboss.t--;
}
if(abs(bigboss.x-play.x)<=3){
if(bigboss.par==0||bigboss.par==3){
am+=5;
int a2=0;
for(int k=-1;k<=1;k++){
for(int i=a2;i<1000;i++){
if(ammo[i].use==0){
ammo[i].use=1;
if(k==0){
ammo[i].par=1;
ammo[i].y=bigboss.y+3;
}else{
ammo[i].par=0;
ammo[i].y=bigboss.y+2;
}
ammo[i].dev=2;
ammo[i].team=0;
ammo[i].x=bigboss.x+k;
break;
}
a2++;
}}}else if(bigboss.par==1){
for(int i=bigboss.x-2;i<=bigboss.x+2;i+=2){
xray(i,bigboss.y+1,1,0,1,15);
}
xrayx=1;
}else if(bigboss.par==2){
if(bigboss.h<500){
if(play.buff==1){
play.bufft+=2000;
}else{
play.buff=1;
play.bufft=2000;
}
bigboss.u=0;
bigboss.h=0;
boom=1;
for(int i=bigboss.y-2;i<=bigboss.y+2;i++){
for(int ii=bigboss.x-2;ii<=bigboss.x+2;ii++){
mapx[i][ii]=3;
}
}
boss.u=1;
boss1n=1;
boss.par=3;
boss.y=bigboss.y;
boss.x=bigboss.x;
boss.h=500;
return ;
}
am+=5;
int a2=0;
for(int k=-2;k<=2;k++){
for(int i=a2;i<1000;i++){
if(bigboss.x+k<0||bigboss.x+k>=20){
continue;
}
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].par=6+randx[4]%2;
ammo[i].y=bigboss.y+3;
ammo[i].dev=2;
ammo[i].team=0;
ammo[i].x=bigboss.x+k;
break;
}
a2++;
}}
}
}
}
void autodun(int y,int x1,int x2,int p){
for(int i=0;i<100;i++){
if(!dun[i].u){
dun[i].u=1;
dun[i].x1=x1;
dun[i].x2=x2;
dun[i].y=y;
dun[i].p=p;
dun[i].h=250;
du++;
return;
}
}
}
void gameloop3(){
cout<<"choose level"<<endl;
cout<<"level 1"<<endl;
cout<<"level 2"<<endl;
cout<<"level 3"<<endl;
cout<<"level 4(test)"<<endl;
cout<<"level 5"<<endl;
cout<<"level 6"<<endl;
cout<<"level 7"<<endl;
cout<<"level 8"<<endl;
cout<<"level 9<<endl;
cout<<"use number key to choose"<<endl;
while(1){
if(_kbhit()){
int a1=getch();
if(a1>='0'&&a1<='9'){
mis=a1-'0';
if(a1=='2'){
play.enegy=100;
}
clear();
screen();
return;
}
}
}
}
void gameloop2(){
clear();
color(2);
cout<<" ********************************"<<endl;
cout<<" ### # ## # # ####"<<endl;
cout<<" # # # # # ## # #"<<endl;
cout<<" ### # #### # # # #"<<endl;
cout<<" # # # # # # # ####"<<endl;
cout<<" # # # # # ## #"<<endl;
cout<<" # ## # # # # ####"<<endl;
cout<<" ********************************"<<endl;
color(14);
cout<<" & battle &"<<endl;
cout<<" & made by chonggg2 gang & "<<endl;
color(4);
cout<<" welcome "<<playtext.name<<endl;
color(1);
cout<<" coin:"<<playtext.coins<<endl;
color(5);
cout<<" highscore:"<<playtext.highScore<<endl;
color(15);
cout<<" use '1' '2' '3' to choose "<<endl;
cout<<" 1.start game"<<endl;
cout<<" 2.change your password"<<endl;
cout<<" 3.save/load game"<<endl;
cout<<" 4.trait"<<endl;
cout<<" 5.set"<<endl;
cout<<">>想要上信息课打游戏无忧?登录csdn官网,搜索chonggg2,"<<endl;
cout<<"获取免费脱控软件。" <<endl<<"www.csdn.net";
}
void gameloop() {
gameloop2();
while(1) {
if(_kbhit()) {
int a1 = getch();
if(a1 == '1') {
clear();
gameloop3();
return;
}
if(a1 == '2') {
clear();
string x1;
cout << "Please input your old password" << endl;
cin >> x1;
if(x1 == playtext.password) {
cout << "Please input your new password" << endl;
cin >> x1;
playtext.password = x1;
savePlayerData(playtext); // 保存修改后的密码
}
}
if(a1 == '3') {
clear();
cout << "1. Save game" << endl;
cout << "2. Load game" << endl;
cout << "3. Back to menu" << endl;
while(true) {
if(_kbhit()) {
int choice = getch();
if(choice == '1') {
savePlayerData(playtext);
cout << "Game saved successfully!" << endl;
Sleep(1000);
break;
}
else if(choice == '2') {
if(loadPlayerData(playtext)) {
cout << "Game loaded successfully!" << endl;
Sleep(1000);
} else {
cout << "No save file found!" << endl;
Sleep(1000);
}
break;
}
else if(choice == '3') {
break;
}
}
}
}
if(a1=='4'){
bool a78=0;
cout<<"1. My trait"<<endl;
cout<<"2. Shop"<<endl;
cout<<"3. Back to menu"<<endl;
while(true) {
if(_kbhit()) {
int choice = getch();
if(choice == '1') {
clear();
for(int i=0;i<20;i++){
if(ci[i]){
cout<<" ";
if(i==0){
cout<<i+1<<" . 量子飞翼 : 散射子弹"<<endl;
}else if(i==1){
cout<<i+1<<" . 两肋插刀 : 向前后发射子弹"<<endl;
}else if(i==2){
cout<<i+1<<" . 盆满钵满 : 收集金币速度加快"<<endl;
}else if(i==3){
cout<<i+1<<" . 坚如磐石 : 初始血量为800"<<endl;
}
}
}cout<<"按任意键退出";
while(1){
if(_kbhit()){
a78=1;
break;
}
}
}
else if(choice == '2') {
clear();
for(int i=0;i<20;i++){
if(i==0){
cout<<i+1<<" . 量子飞翼 : 散射子弹";
}else if(i==1){
cout<<i+1<<" . 两肋插刀 : 向前后发射子弹";
}else if(i==2){
cout<<i+1<<" . 盆满钵满 : 收集金币速度加快";
}else if(i==3){
cout<<i+1<<" . 坚如磐石 : 初始血量为800";
}
if(cs[i]!=0){
cout<<" "<<cs[i]<<"$"<<endl;
}
}
cout<<"输入要购买的商品(输入-1返回) ";
int a78;
cin>>a78;
if(a78==-1||a78<0||a78>20){
break;
}
a78--;
if(play.coin>=cs[a78]){
ci[a78]=1;
play.coin-=cs[a78];
cout<<"已购买";
savePlayerData(playtext);
}else{
cout<<"金币不足 还需要"<<cs[a78]-play.coin<<"$";
cout<<play.coin;
}
Sleep(1000);
break;
}
else if(choice == '3') {
break;
}
}
if(a78){
break;
}
}
}//
if(a1=='5'){
cout<<"1.change speed"<<endl;
cout<<"2.back to menu"<<endl;
while(1){
if(_kbhit()){
int a91=getch();
if(a91=='1'){
clear();
cout<<"speed:";
if(speed==1){
cout<<"slow";
}else{
cout<<"fast";
}
cout<<endl<<"use space to change speed , press esc to exit";
while(1){
if(_kbhit()){
int a13=getch();
if(a13==' '){
if(speedb==1){
speedb=0;
}else{
speedb++;
}
clear();
cout<<"speed:";
if(speed==1){
cout<<"slow";
}else{
cout<<"fast";
}
cout<<endl<<"use space to change speed , press esc to exit";
}
if(a13==27){
break;
}
}
}
break;
}else if(a91=='2'){
break;
}
break;
}
}
}
gameloop2();
}
}
}
bool isFirstTimePlayer() {
std::ifstream inFile("player_data.dat", std::ios::binary);
return !inFile.good(); // 文件不存在返回true
}
// 初始化新玩家存档
void initializeNewPlayer() {
PlayerData newPlayer;
clear();
color(14);
cout << "====================================" << endl;
cout << " Welcome New Pilot!" << endl;
cout << "====================================" << endl;
color(15);
// 获取玩家名称
cout << "Enter your callsign (max 15 chars): ";
getline(cin, newPlayer.name);
if(newPlayer.name.empty()) {
newPlayer.name = "UnknownPilot";
} else if(newPlayer.name.size() > 15) {
newPlayer.name = newPlayer.name.substr(0, 15);
}
// 设置初始密码
color(11);
cout << "\nSet your security code (max 12 chars): ";
getline(cin, newPlayer.password);
if(newPlayer.password.empty()) {
newPlayer.password = "123456";
} else if(newPlayer.password.size() > 12) {
newPlayer.password = newPlayer.password.substr(0, 12);
}
// 初始化游戏数据
newPlayer.coins = 1000;
newPlayer.highScore = 0;
newPlayer.p = 0;
// 保存初始数据
savePlayerData(newPlayer);
// 显示欢迎信息
color(10);
cout << "\nWelcome aboard, " << newPlayer.name << "!" << endl;
cout << "Your starting credits: 1000" << endl;
color(15);
Sleep(2000);
// 将新玩家数据赋给当前游戏
playtext = newPlayer;
}
void startgame(){
speed=speedb+1;
play.x=10;
play.y=17;
play.h=100;
play.sp;
play.par=0;
play.dead=1;
play.v;
play.coin=1000;
play.ammo=100;
play.enegy=100;
play.bag.clear();
play.bagnum=0;
play.bufft=0;
memset(ammo,0,sizeof(ammo));
memset(enemy,0,sizeof(enemy));
memset(gift,0,sizeof(gift));
memset(bplane,0,sizeof(bplane));
memset(dun,0,sizeof(dun));
boss.x=0;
boss.y=0;
boss.par=0;
boss.u=0;
boss.h=0;
bigboss.u=0;
am=0;
boom=0;
boss1n=0;
bp=0;
en=0;
gi=0;
memset(mapx,0,sizeof(mapx));
ra=0;
memset(randx,0,sizeof(randx));
tell=0;
tx=10;
tx1=0;
zp=0;
zt=0;
play.coin=playtext.coins;
for(int i = 0; i < 20; i++) {
ci[i] = playtext.ci[i];
}
if(ci[3]) {
play.h = 800;
}
}
void misson(){
if(mis==1){
if(tx==100){
shop();
bplanex(1);
ri=5;
}
if(tx==1000){
ri=0;
}
if(tx==2500){
ri=5;
}
if(tx==3700){
ri=0;
}
if(tx==5000){
ri=3;
}
if(tx==1700){
speak(0,5);
enemyx(2,0,0);
}
if(tx==2500){
speak(0,8);
}
if(tx==4000){
speak(0,5);
enemyx(5,0,0);
}
if(tx==5000){
speak(0,5);
enemyx(8,0,1);
}
if(tx==7500){
shop();
}
if(tx==7000){
ri=0;
enemyx(5,0,0);
boss.u=1;
boss1n=1;
boss.par=0;
boss.y=0;
boss.x=10;
boss.h=100;
}
if(tx==9000){
ri=2;
}
if(tx==10000){
ri=5;
}
if(tx==10700){
ri=0;
}
if(tx==11500){
shop();
}
if(tx==11000){
bplanex(1);
speak(0,5);
enemyx(12,0,1);
boss.u=1;
boss1n=1;
boss.par=1;
boss.y=0;
boss.x=10;
boss.h=150;
}
if(tx==13000){
ri=3;
}
if(tx==14000){
ri=5;
}
if(tx==15000){
ri=0;
}
if(tx==15500){
speak(0,5);
enemyx(8,0,1);
}
if(tx==16500){
speak(0,5);
enemyx(8,0,0);
}
if(tx==17000){
ri=3;
}
if(tx==17600){
bplanex(1);
}
if(tx==17700){
bplanex(1);
}
if(tx==18000){
ri=0;
}
if(tx==18500){
shop();
enemyx(10,0,0);
boss.u=1;
boss1n=1;
boss.par=0;
boss.y=0;
boss.x=10;
boss.h=250;
}
if(tx==19000){
speak(0,5);
enemyx(5,0,1);
}
if(tx==20000){
ri=5;
}
if(tx==22000){
bplanex(1);
speak(0,5);
enemyx(10,0,1);
}
if(tx==24000){
ri=0;
}
if(tx==25000){
shop();
enemyx(8,0,1);
boss.u=1;
boss1n=1;
boss.par=1;
boss.y=0;
boss.x=10;
boss.h=300;
}
if(tx==27000){
ri=1;
}
if(tx>=28000&&tx<29800&&tx%200==0){
speak(0,(tx-28000)/200+100);
}
if(tx==30000){
bigboss.u=1;
bigboss.h=1000;
bigboss.x=0;
bigboss.y=0;
bigboss.par=0;
bigboss.t=0;
}
if(t1>=50){
t1=0;
rock(ri);
}
if(tx>=30000&&bigboss.h<=0){
Sleep(5000);
clear();
cout<<"YOU WIN"<<endl;
Sleep(3000);
playtext.coins=play.coin;
savePlayerData(playtext);
startgame();
gameloop();
}
}else if(mis==2){
if((tx==100)){
enemyx(5,7,1);
}
if(tx==200){
shop();
ri=15;
}
if(tx==200){
speak(0,15);
}
if(tx==400){
speak(0,16);
}
if(tx==1000){
speak(0,5);
enemyx(5,0,1);
}
if(tx==2000){
speak(0,5);
enemyx(1,1,1);
}
if(tx==3000){
speak(0,5);
enemyx(5,1,1);
}
if(tx==4000){
speak(0,5);
enemyx(5,1,1);
}
if(tx==5000){
ri=10;
speak(0,5);
enemyx(5,1,1);
}
if(tx==6000){
ri=5;
speak(0,5);
enemyx(5,1,1);
}
if(tx==6500){
ri=0;
}
if(tx==7000){
shop();
enemyx(2,1,1);
boss.u=1;
boss1n=1;
boss.par=2;
boss.y=0;
boss.x=10;
boss.h=100;
}
if(tx==7500){
speak(0,5);
enemyx(5,1,1);
}
if(tx==8000){
speak(0,5);
enemyx(2,5,1);
enemyx(5,0,1);
}
if(tx==8500){
speak(0,5);
enemyx(5,1,1);
}
if(tx==9000){
ri=2;
}
if(tx==10000){
ri=0;
shop();
enemyx(2,1,0);
enemyx(3,5,0);
boss.u=1;
boss1n=1;
boss.par=2;
boss.y=0;
boss.x=10;
boss.h=300;
}
if(tx==11000){
ri=5;
}
if(tx==12000){
ri=15;
}
if(tx==13000){
ri=5;
}
if(tx==13500){
speak(0,5);
enemyx(10,1,1);
}
if(tx==14000){
speak(0,5);
enemyx(10,0,1);
enemyx(3,5,1);
}
if(tx==15000){
speak(0,5);
enemyx(10,0,0);
enemyx(3,5,0);
}
if(tx==16000){
speak(0,5);
enemyx(3,4,1);
}
if(tx==17000){
ri=15;
}
if(tx==18000){
ri=5;
}
if(tx==19000){
ri=10;
shop();
boss.u=1;
boss1n=1;
boss.par=4;
boss.y=0;
boss.x=10;
boss.h=250;
}
if(tx==20000){
speak(0,5);
enemyx(3,4,1);
enemyx(3,5,1);
}
if(tx==21000){
ri=15;
}
if(tx==22000){
ri=5;
}
if(tx==23000){
ri=0;
}
if(tx==23500){
speak(0,5);
enemyx(10,0,1);
enemyx(3,5,1);
enemyx(10,0,0);
enemyx(3,5,0);
}
if(tx==24500){
ri=5;
shop();
boss.u=1;
boss1n=1;
boss.par=3;
boss.y=0;
boss.x=10;
boss.h=700;
}
if(tx==26000){
ri=15;
}
if(tx==28000){
play.enegy=1e9;
ri=0;
}
if(tx>=28000&&tx<=30000){
speak(0,110+(tx-28000)/500);
}
if(tx==30000){
bigboss.u=1;
bigboss.h=1500;
bigboss.x=0;
bigboss.y=0;
bigboss.par=1;
bigboss.t=0;
}
if(tx>30000&&bigboss.h<=500&&(boss.h<=5)){
Sleep(5000);
clear();
cout<<"YOU WIN"<<endl;
Sleep(3000);
playtext.coins=play.coin;
savePlayerData(playtext);
startgame();
gameloop();
}
if(t1>=50){
play.ammo=1e5;
play.enegy-=1;
t1=0;
rock(ri);
}
}
else if(mis==3){
if(tx==200){
play.ammo=10000;
play.h=1000;
shop();
ri=0;
}
if(tx==400){
speak(0,5);
enemyx(10,0,1);
enemyx(1,5,1);
}
if(tx==1500){
speak(0,5);
enemyx(10,0,0);
enemyx(1,5,0);
}
if(tx==3500){
speak(0,5);
enemyx(7,0,1);
enemyx(1,5,1);
enemyx(3,6,1);
}
if(tx==5500){
speak(0,5);
enemyx(6,4,0);
enemyx(1,5,0);
enemyx(5,6,0);
}
if(tx==7000){
speak(0,5);
enemyx(6,4,0);
enemyx(5,5,0);
enemyx(5,6,0);
shop();
boss.u=1;
boss1n=1;
boss.par=0;
boss.y=0;
boss.x=10;
boss.h=700;
}
if(tx==9000){
speak(0,5);
enemyx(10,0,1);
enemyx(4,5,1);
enemyx(10,6,1);
}
if(tx==11000){
speak(0,5);
enemyx(4,4,1);
enemyx(5,6,1);
enemyx(5,7,1);
}
if(tx==13000){
speak(0,5);
enemyx(1,5,0);
enemyx(10,6,0);
shop();
boss.u=1;
boss1n=1;
boss.par=2;
boss.y=0;
boss.x=10;
boss.h=900;
}
if(tx==16000){
speak(0,5);
enemyx(5,6,1);
enemyx(6,7,1);
}
if(tx==18000){
speak(0,5);
enemyx(4,5,1);
enemyx(6,7,1);
}
if(tx==21000){
speak(0,5);
enemyx(7,6,0);
shop();
boss.u=1;
boss1n=1;
boss.par=3;
boss.y=0;
boss.x=10;
boss.h=900;
}
if(tx==24000){
speak(0,5);
enemyx(10,6,1);
enemyx(6,7,1);
}
if(tx==26000){
ri=5;
}
if(tx==27000){
speak(0,5);
enemyx(15,1,1);
}
if(tx==30000){
bigboss.u=1;
bigboss.h=2000;
bigboss.x=0;
bigboss.y=0;
bigboss.par=2;
bigboss.t=0;
}
if(tx>30000&&bigboss.h==0&&(!boss.u)){
Sleep(5000);
clear();
cout<<"YOU WIN"<<endl;
Sleep(3000);
playtext.coins=play.coin;
savePlayerData(playtext);
startgame();
gameloop();
}
if(t1>=50){
t1=0;
rock(ri);
}
}else if(mis==4){
if(tx==100){
shop();
bigboss.u=1;
bigboss.h=2500;
bigboss.x=0;
bigboss.y=0;
bigboss.par=3;
bigboss.t=0;
}
if(t1>=50){
t1=0;
rock(ri);
}
}else if(mis==5){
if(tx==100) shop();
if(tx%2500==0) ri = rand()%4 + 2;
if(tx==1000) ri=0;
if(tx==2000){ speak(0,5); enemyx(2,0,1); enemyx(2,6,1); }
if(tx==4000) ri=0;
if(tx==5000){ ri=0;speak(0,5); enemyx(2,0,0); enemyx(3,6,0); }
if(tx==7500) ri=0;
if(tx==8000){
shop(); speak(0,5); enemyx(3,0,1); enemyx(4,7,1);
speak(0,5);
boss.u=1;
boss1n=1;
boss.par=1;
boss.y=0;
boss.x=10;
boss.h=1000;
}
if(tx==11000) ri=0;
if(tx==12000){ speak(0,5); enemyx(3,0,0); enemyx(3,6,1); enemyx(2,7,0); }
if(tx==17500) ri=0;
if(tx==18000){
shop();
speak(0,104); speak(0,107); enemyx(7,7,0);
boss.u=1; boss1n=1; boss.par=5; boss.y=0; boss.x=10; boss.h=1200;
}
if(tx==21000) ri=0;
if(tx==22000){
speak(0,5); enemyx(4,0,1); enemyx(3,7,1); //bplanex(1);
}
if(tx>=15000 && tx%3000==0){
autodun((rand()+1)%5 + 8, (rand()+1)%8 + 4, (rand()+1)%8 + 10, 1);
}
if(tx==21000) ri=0;
if(tx==22000) {speak(0,5); enemyx(5,7,0); enemyx(3,8,1); enemyx(5,0,0);}
if(tx==25000) ri=0;
if(tx==26000) {speak(0,5); enemyx(5,6,0); enemyx(3,8,1);}
if(tx==30000){
bigboss.u=1;
bigboss.h=2500;
bigboss.x=0;
bigboss.y=0;
bigboss.par=0;
bigboss.t=0;
}
if(bigboss.h<=0 && tx>=30000){
Sleep(2000);
clear();
color(10);
cout<<"YOU WIN"<<endl<<"PRIZE 800 coins"<<endl;
cout<<"---------------------"<<endl;
cout<<" UNLOCK trait"<<endl;
cout<<" $量子飞翼$"<<endl;
cout<<"---------------------"<<endl;
ci[0]=1;
color(15);
play.coin += 800;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(3000);
startgame();
gameloop();
}
if(t1>=50){
t1=0;
rock(ri);
}
}
else if(mis==6){
if(tx>=10000 && du<3){
autodun(5, 2, 5, 1);
autodun(20, 5, 15, 1);
}
if(tx==100) {ri=15; shop();}
if(tx==500) ri=0;
if(tx==1000){ speak(0,5); enemyx(3,0,1); enemyx(1,4,1); }
if(tx==2200) ri = randx[0]%5 + 3;
if(tx==2300) ri=0;
if(tx==2500){ speak(0,5); enemyx(3,0,0); enemyx(2,4,0); enemyx(1,7,1); }
if(tx==3800) ri = randx[0]%5 + 3;
if(tx==7500) ri=0;
if(tx==8000){ shop(); speak(0,5); enemyx(3,0,1); enemyx(1,6,1); enemyx(2,7,0); }
if(tx==9000){
speak(0,104); speak(0,106);
shop();boss.u=1; boss1n=1; boss.par=4; boss.y=0; boss.x=10; boss.h=800;
}
if(tx==10000) ri=5;
if(tx==14000) ri=0;
if(tx==15000){
speak(0,104); speak(0,106);
shop();boss.u=1; boss1n=1; boss.par=4; boss.y=0; boss.x=10; boss.h=600;
}
if(tx==15200) ri = randx[0]%5 + 3;
if(tx==17000) ri=0;
if(tx==18000){
speak(0,108); speak(0,109);
enemyx(2,6,1);
shop();boss.u=1; boss1n=1; boss.par=1; boss.y=0; boss.x=10; boss.h=800;
}
if(tx==20000) ri = randx[0]%5 + 3;
if(tx==24000) ri=0;
if(tx==25000){
bigboss.u=1;
bigboss.h=1500;
bigboss.x=0;
bigboss.y=0;
bigboss.par=1;
bigboss.t=0;
}
if(tx>=25000&&bigboss.h<=500&&bigboss.h>=400){
speak(0,201);
}
if(bigboss.h<=0&&tx%200==0&&tx>=25000){
enemyx(2,4,1);
}
if(tx==500) speak(0,7);
if(tx==2500) speak(0,14);
if(tx==24000) speak(0,108);
if(tx>=32000&&bigboss.h<=0 && play.enegy>=50){
Sleep(3000);
clear();
color(10);
cout<<"YOU WIN"<<endl;
cout<<"PRIZE 1500 coins";
color(15);
play.coin += 1500;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(4000);
startgame();
gameloop();
}
if(t1>=50){
t1=0;
rock(ri);
}
}
else if(mis==7){
if(tx==100){shop();}
if(tx==500){speak(0,5); enemyx(3,0,0);}
if(tx==1500){speak(0,5); enemyx(3,0,0);}
if(tx==2500){speak(0,5); enemyx(2,6,0);}
if(tx==3000){speak(0,5); enemyx(2,8,0);}
if(tx>=5000&&tx%3000==0){
speak(0,5); enemyx(1,8,0);
}
if(tx>=5000&&tx%5000==0&&tx!=20000){
ri=0;
shop();boss.u=1; boss1n=1; boss.par=1; boss.y=0; boss.x=10; boss.h=800;
}
if(tx==20000){
bigboss.u=1;
bigboss.h=1500;
bigboss.x=0;
bigboss.y=0;
bigboss.par=0;
bigboss.t=0;
}
if(tx>=20000&&!bigboss.u&&!boss.u){
ri=0;speak(0,17);
speed=3;
Sleep(3000);
clear();
color(10);
cout<<"YOU WIN"<<endl;
cout<<"PRIZE 1500 coins";
color(15);
play.coin += 1500;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(4000);
startgame();
gameloop();
}
if(tx%500==0){
autodun(19,2,18,0);
}
if(t1>=50){
t1=0;
rock(ri);
}
}
else if(mis==8){
if(tx==50){
play.ammo=1000;
play.h=350;
}
if(tx%1000==0){
speak(0,5); enemyx(2,0,0);
}
if(tx%2000==0){
speak(0,5); enemyx(2,6,0);
}
if(tx%2500==0){
speak(0,5); enemyx(1,5,0);enemyx(2,4,0);
}
if(tx%3000==0){
speak(0,5); enemyx(2,7,0);
}
if(tx%5000==0||(tx%200==0&&tx>=20000)){
enemyx(1,9,0);
}
if(tx%7000==0){
ri=0;
shop();boss.u=1; boss1n=1; boss.par=0; boss.y=0; boss.x=10; boss.h=800;
}
if(t1>=50){
t1=0;
rock(ri);
}
if(tx==20000){
zp=1;
play.h=2000;
zt=3000;
bigboss.u=1;
bigboss.h=7000;
bigboss.x=0;
bigboss.y=0;
bigboss.par=0;
bigboss.t=0;
}
if(tx>=20000&&!bigboss.u&&!boss.u){
ri=0;
Sleep(3000);
clear();
color(10);
cout<<"YOU WIN"<<endl;
cout<<"PRIZE 1500 coins";
color(15);
play.coin += 1500;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(4000);
startgame();
gameloop();
}
}
else if(mis==9){
if(tx==100){
zp=1;
play.h=8000;
play.ammo=100000;
zt=30000;
}
if(tx%100==0){
speak(0,5); enemyx(1,0,0);
}
if(tx%500==0){
speak(0,5); enemyx(1,4,0);
}
if(tx%1000==0){
speak(0,5); enemyx(1,5,0);
}
if(tx%300==0){
speak(0,5); enemyx(1,6,0);
}
if(tx%800==0){
speak(0,5); enemyx(1,8,0);
}
if(tx%1200==0){
speak(0,5); enemyx(1,9,0);
}
if(tx%7000==0){
ri=0;
shop();boss.u=1; boss1n=1; boss.par=tx/7000; boss.y=0; boss.x=10; boss.h=800;
}
if(t1>=50){
t1=0;
rock(ri);
}
if(tx==20000){
bigboss.u=1;
bigboss.h=3000;
bigboss.x=0;
bigboss.y=0;
bigboss.par=3;
bigboss.t=0;
}
if(tx>=20000&&!bigboss.u&&!boss.u){
ri=0;
Sleep(3000);
clear();
color(10);
cout<<"YOU WIN"<<endl;
cout<<"PRIZE 1500 coins";
color(15);
play.coin += 1500;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(4000);
startgame();
gameloop();
}
}
else if(mis==0){
if(tx==100){
bigboss.par=-1;
}
if(tx%200==0&&bigboss.u==0){
play.ammo=2000;
play.h=500;
bigboss.u=1;
bigboss.h=1000;
bigboss.x=0;
bigboss.y=0;
bigboss.par++;
bigboss.t=0;
}
if(bigboss.par==4){
ri=0;
Sleep(3000);
clear();
color(10);
cout<<"YOU WIN"<<endl;
cout<<"PRIZE 1500 coins";
color(15);
play.coin += 1500;
playtext.coins=play.coin;
playtext.highScore=max(playtext.highScore, tx);
savePlayerData(playtext);
Sleep(4000);
startgame();
gameloop();
}
}
}
int main(){
int t2=0,t3=0,t4=0,t5=0,t6=0,t7=0,t8=0,ts=1,t9=0;
if(isFirstTimePlayer()) {
initializeNewPlayer();
savePlayerData(playtext);
} else {
// 加载已有存档
if(!loadPlayerData(playtext)) {
// 如果加载失败(如文件损坏),初始化新玩家
cout << "存档损坏,将创建新存档..." << endl;
Sleep(1500);
// 删除损坏的文件
remove("player_data.dat");
clear();
initializeNewPlayer();
savePlayerData(playtext);
}else{
string x2;
cout<<"input your password:";
cin>>x2;
if(x2==playtext.password){
cout<<"welcome"<<endl;
Sleep(1000);
clear();
}else{
cout<<"wrong password!";
exit(0);
}
}
}
gameloop();
startgame();
screen();
speak(0,7);
play.coin=1e9;
while(1){
if(_kbhit()){
for(int i=play.y-1;i<=play.y+1;i++){
for(int ii=play.x-1;ii<=play.x+1;ii++){
if((i==play.y-1&&ii==play.x-1)||(ii==play.x+1&&i==play.y-1)){
continue;
}
mapx[i][ii]=0;
}
}
int a1=getch();
if((a1=='a'||a1=='A')&&play.x-2>=1&&!(play.buff==1&&play.bufft>0)){
if(mapx[play.y][play.x-2]==2||mapx[play.y+1][play.x-2]==2){
play.dead=0;
}
play.x--;
}
if((a1=='d'||a1=='D')&&!(play.buff==1&&play.bufft>0)&&play.x+2<=20){
if(mapx[play.y][play.x+2]==2||mapx[play.y+1][play.x+2]==2){
play.dead=0;
}
play.x++;
}
if(a1=='w'||a1=='W'){
play.v=1;
}
if(a1=='s'||a1=='S'){
play.v=0;
}
if(a1=='P'||a1=='p'){
int a11=0;
while(a11!='p'||a11!='P'){
if(_kbhit()){
a11=getch();
if(a11=='p'||a11=='P'){
break;
}
}
}
}
if(a1>='1'&&a1<='3'){
baguse(a1-'0');
}
if(a1=='t'||a1=='T'){
string a2;
bool p=playtext.p;
speak(0,-2);
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
COORD startPos = {0, 28};
SetConsoleCursorPosition(hConsole, startPos);
cin>>a2;
if(a2=="time"&&p){
speak(0,-2);
int a3;
cin>>a3;
tx=abs(a3);
}else if(a2=="bang"&&p){
memset(mapx,0,sizeof(mapx));
}else if(a2=="enemy"&&p){
speak(0,-2);
int a3,a4;
cin>>a3>>a4;
enemyx(a3,0,a4);
}else if(a2=="fill"&&p){
speak(0,-2);
int a3,a4,a5,a6,a7;
cin>>a3>>a4>>a6>>a7>>a5;
for(int i=min(a3,a6);i<max(a3,a6);i++){
for(int ii=min(a4,a7);ii<max(a4,a7);ii++){
mapx[i][ii]=a5;
}
}
}else if(a2=="rock"&&p){
speak(0,-2);
int a3;
cin>>a3;
ri=a3;
}else if(a2=="find"&&p){
speak(0,-2);
int a3,a4;
cin>>a3>>a4;
speak(0,-2);
cout<<mapx[a3][a4];
Sleep(2000);
}
else if(a2=="bigboss"&&p){
speak(0,-2);
int a3;
cin>>a3;
speak(0,-2);
bigboss.h=a3;
Sleep(2000);
}
else if(a2=="boss"&&p){
speak(0,-2);
int a3;
cin>>a3;
speak(0,-2);
boss.h=a3;
Sleep(2000);
}
else if(a2=="hp"&&p){
speak(0,-2);
int a3;
cin>>a3;
play.h=a3;
Sleep(2000);
}
else if(a2=="gamemode"){
speak(0,-2);
string a3;
cin>>a3;
if(a3=="create"){
bool a4;
for(int i=0;i<20;i++) ci[i]=1;
cin>>a4;
playtext.p=a4;
savePlayerData(playtext);
}
Sleep(2000);
}
speak(0,-2);
}
if(a1==32&&tshot>=10&&!(play.buff==1&&play.bufft>0)){
tshot=0;
if(play.ammo>0){
play.ammo--;
int x1;
for(int i=0;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=play.x;
if(play.v){
ammo[i].y=play.y-2;
ammo[i].dev=0;
}else{
ammo[i].y=play.y+1;
ammo[i].dev=2;
}
ammo[i].par=play.par;
// ammo[i].par=11;
ammo[i].team=1;
x1=i;
break;
}
}
if(ci[1]){
for(int i=x1+1;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=play.x;
ammo[i].y=play.y+1;
ammo[i].dev=2;
ammo[i].par=0;
ammo[i].team=1;
x1=i;
am++;
break;
}}
}
if(play.par==1||ci[0]){
for(int i=x1+1;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=play.x-1;
if(play.v){
ammo[i].y=play.y-1;
ammo[i].dev=0;
}else{
ammo[i].y=play.y+1;
ammo[i].dev=2;
}
ammo[i].par=0;
ammo[i].team=1;
x1=i;
am++;
break;
}
}
for(int i=x1+1;i<1001;i++){
if(ammo[i].use==0){
ammo[i].use=1;
ammo[i].x=play.x+1;
if(play.v){
ammo[i].y=play.y-1;
ammo[i].dev=0;
}else{
ammo[i].y=play.y+1;
ammo[i].dev=2;
}
ammo[i].par=0;
ammo[i].team=1;
am++;
break;
}
}
}
am++;
t3=500;
}else{
}
}
}
tx1=tx/100;
t1+=speed;
if(boom){
t2+=speed;
}
if(tell){
t7+=1;
}
if(t7>=200){
t7=0;
tell=0;
speak(0,-2);
}
if(t1>=50&&gi>0){
gift2();
}
misson();
if(tx==200){
speak(0,9);
}
if(tx==400){
speak(0,10);
}
if(tx==600){
speak(0,11);
}
if(tx==800){
speak(0,12);
}
if(tx==1000){
speak(0,13);
}
if(tx==1200){
speak(0,14);
}
if(play.bufft>0&&tx%25==0){
if(play.buff==2){
play.h-=1;
}
}
if(en>=0){
t4+=speed;
t5+=speed;
}
if(t4>=10){
t4=0;
enemy2();
if(bp>0){
bplane2();
}
}
if(firet>0){
t9++;
}
if(t9>=25){
t9=0;
firet--;
for(int i=0;i<27;i++){
for(int ii=0;ii<20;ii++){
if(firex[i][ii]>0){
firex[i][ii]--;
}else if(mapx[i][ii]==4){
mapx[i][ii]=0;
}
}
}
}
if(t5%26==0){
if(bigboss.u){
bigbossx();
}
}
if(t5>=50){
t5=0;
attack();
if(boss1n){
bossx();
}
}
if(zp==1){
play.par=1;
zt-=speed;
}
if(zt<=0&&zp!=0){
zp=0;
play.par=0;
play.h=150;
}
if(t2>=100){
t2=0;
boom=0;
for(int i=0;i<27;i++){
for(int ii=0;ii<20;ii++){
if(mapx[i][ii]==3){
mapx[i][ii]=0;
}
}
}
}
if(am>0){
t3+=speed;
}
if(t3>=10){
t3=0;
ammox();
}
t1+=speed;
rands();
if(xrayx){
t8+=speed;
}
if(t8>=10){
xray(0,0,0,0,0,0);
boom=1;
xrayx=0;
}
if(t6>=50){
t6=0;
if(play.h<150){
play.h++;
}
}
t6+=speed;
if(play.dead==0||play.h<0||play.enegy<=0){
speak(0,-1);
cout<<" because ";
if(play.h<=0){
cout<<playtext.name<<"'s plane is bang by enemy";
}else if(play.enegy<=0){
cout<<playtext.name<<"'s plane is no energy";
}else if(!play.dead){
cout<<playtext.name<<"'s plane touch the rock";
}
playtext.highScore=max(playtext.highScore,tx);
Sleep(3000);
playtext.coins=play.coin;
savePlayerData(playtext);
gameloop();
startgame();
}
if(tx%100==0){
if(ci[2]){
play.coin+=4;
}
play.coin++;
}
if(tx%1000==0){
giftx();
}
if(play.bufft>0){
play.bufft--;
if(play.bufft==0) play.buff=0;
}
if(firet&&firex[play.y][play.x]>0){
if(play.buff==2){
play.bufft++;
}else{
play.buff=2;
play.bufft++;
}
}
tshot+=speed;
tx+=speed;
ClearScreen();
Sleep(1);
}
}
更多推荐

所有评论(0)