迷你愤怒的小鸟游戏

news/2024/11/15 0:41:42/

游戏功能
控制弹弓和不同的小鸟,使用每个小鸟独有的技能,杀死小猪。
游戏代码

#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);} else if (a == 1 || a == 12) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 2) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_GREEN);} else if (a == 3) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);} else if (a == 4 || a == 11) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED);} else if (a == 5 || a == 13) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);} else if (a == 7) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 15) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);} else if (a == 16) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_GREEN);} else if (a == 17) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_RED);} else if (a == 8) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);} else if (a == 6) {SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_BLUE);} else 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 << "  ";} else if (pig[a].W == 4) {SetPos (pig[a].X, pig[a].Y - 1);cout << "  "; } else 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 << "|";} else if (pig[a].W == 4) {SetPos (pig[a].X, pig[a].Y - 1);Color (2);cout << "﹃";} else 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 << "▅";} else if (pig[a].W2 == 1) {cout << "▃";} else if (pig[a].W2 == 2) {cout << "▂";	} else 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;		break;}}  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;} else 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;} else if (u == 2) {Pit++;pig[Pit].Y = rand () % 15 + 20;pig[Pit].X = 2;pig[Pit].ax = 0.5;pig[Pit].W = 4;} else if (u == 3) {Pit++;pig[Pit].Y = rand () % 15 + 20;pig[Pit].X = 2;pig[Pit].ax = 0.5;pig[Pit].W = 5;} else 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++;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) {if (MessageBox (NULL, "很遗憾,您输了,您还想再来一次吗?", "温馨提示", MB_YESNO) == IDYES) {goto St;} else {return 0;}} else {if (MessageBox (NULL, "恭喜您赢了!您还想再来一次吗?", "温馨提示", MB_YESNO) == IDYES) {goto St;} else {return 0;}}return 0;
}

http://www.ppmy.cn/news/236883.html

相关文章

《愤怒的小鸟》之父魏皮特:小鸟王国的品牌之路

《愤怒的小鸟》之父魏皮特:"小鸟"王国的品牌之路 2012年06月15日 06:48 来源&#xff1a;经济参考报 [ 推荐朋友] [ 打印本稿] [字号 大 中 小] 全球热门游戏《愤怒的小鸟》之父魏皮特(P eterV esterbacka)的标准行头是一件红色的T恤&#xff0c;外面再套一件红…

电动车报警器

项目需求 点击遥控器 A 按键&#xff0c;系统进入警戒模式&#xff0c;一旦检测到震动&#xff08;小偷偷车&#xff09;&#xff0c;则喇叭发出声响报警&#xff0c; 吓退小偷。 点击遥控器 B 按键&#xff0c;系统退出警戒模式&#xff0c;再怎么摇晃系统都不会报警&#xf…

飞翔的小鸟--easyx版

&#xff08;创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 今天我们来尝试一下用easyx窗口创建飞翔的小鸟游戏 &#xff08;相关游戏图片我已在末尾给出&#x…

电动车控制器电路原理图讲解分析

电动车控制器 控制器电路板 电动车控制器在电动车中的作用 电动车控制器的主要作用就是用来控制电动车电机的&#xff0c;需要控制包括电机启动、电机转速、刹车断电等。 电动车控制器接线图 我们可以看到一个电动车控制器上面有非常多的接线&#xff0c;每一个接线都有其作…

栈帧之操作数栈(Operand Stack)和动态链接(Dynamic Linking)解读

操作数栈 概念 每一个独立的栈帧除了包含局部变量表以外&#xff0c;还包含一个后进先出&#xff08;Last-In-First-Out&#xff09;的 操作数栈&#xff0c;也可以称之为表达式栈&#xff08;Expression Stack&#xff09; 操作数栈&#xff0c;在方法执行过程中&#xff0c…

一文说清Task及其调度问题

ask对于.NET的重要性毋庸置疑。通过最近的一些面试人员经历&#xff0c;发现很多人对与Task及其调度机制&#xff0c;以及线程和线程池之间的关系并没有清晰的认识。本文采用最简单的方式模拟了Task的实现&#xff0c;旨在说明Task是什么&#xff1f;它是如何被调度执行的&…

armeabi-v7a、arm64-v8a、armeabi、x86、x86_64的区别

1、armeabi-v7a:第七代及以上的ARM处理器&#xff0c;2011年以后生产的大部分Android设备都使用。 2、arm64-v8a:第8代、64位ARM处理器&#xff0c;很少设备&#xff0c;三星GalaxyS6是其中之一。 3、armeabi:第5代、第6代的ARM处理器&#xff0c;早期的手机用的比较多。 4、…