• 个人简介

           💖💖💖💖                   💖💖💖💖 
          💖💖💖💖💖💖           💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖   💖💖💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
        💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
          💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
            💖💖💖💖💖💖💖💖💖💖💖💖💖💖
             💖💖💖💖💖💖💖💖💖💖💖💖💖
                 💖💖💖💖💖💖💖💖💖💖
                   💖💖💖💖💖💖💖💖
                      💖💖💖💖💖💖
                         💖💖💖💖
                            💖💖 
                             💖
    
              💖💖                        💖💖
           💖💖💖💖                   💖💖💖💖 
          💖💖💖💖💖💖           💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖   💖💖💖💖💖💖💖💖
        💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
        💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
          💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
            💖💖💖💖💖💖💖💖💖💖💖💖💖💖
             💖💖💖💖💖💖💖💖💖💖💖💖💖
                 💖💖💖💖💖💖💖💖💖💖
                   💖💖💖💖💖💖💖💖
                      💖💖💖💖💖💖
                         💖💖💖💖
                            💖💖
                             💖
    
              💖💖                        💖💖
           💖💖💖💖                   💖💖💖💖 
          💖💖💖💖💖💖           💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖   💖💖💖💖💖💖💖💖
        💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
        💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
         💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
          💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖
            💖💖💖💖💖💖💖💖💖💖💖💖💖💖
             💖💖💖💖💖💖💖💖💖💖💖💖💖
                 💖💖💖💖💖💖💖💖💖💖
                   💖💖💖💖💖💖💖💖
                      💖💖💖💖💖💖
                         💖💖💖💖
                            💖💖
                             💖
    

    朋友https://xwjedu.cn/user/5499

    跳动的❤💖 #include <stdio.h> #include <math.h> #include <windows.h> #include <tchar.h>

    float f(float x, float y, float z) { float a = xx + 9.0f/4.0fyy + zz - 1; return aaa - xxzzz - 9.0f/80.0fyyzz*z; }

    float h(float x, float z) { for(float y = 1.0f; y >= 0.0f; y -= 0.001f) if(f(x, y, z) <= 0.0f) return y; return 0.0f; }

    int main() { HANDLE o = GetStdHandle(STD_OUTPUT_HANDLE); _TCHAR buffer[25][80] = { _T(' ') }; _TCHAR ramp[] = _T(".:-=+*#%@");

    for(float t = 0.0f;; t += 0.1f) {
        int sy = 0;
        float s = sinf(t);
        float a = s*s*s*s*0.2f;
        
        for(float z = 1.3f; z > -1.2f; z -= 0.1f) {
            _TCHAR* p = &buffer[sy++][0];
            float tz = z*(1.2f - a);
            
            for(float x = -1.5f; x < 1.5f; x += 0.05f) {
                float tx = x*(1.2f + a);
                float v = f(tx, 0.0f, tz);
                if(v <= 0.0f) {
                    float y0 = h(tx, tz);
                    float ny = 0.01f;
                    float nx = h(tx + ny, tz) - y0;
                    float nz = h(tx, tz + ny) - y0;
                    float nd = 1.0f/sqrtf(nx*nx + ny*ny + nz*nz);
                    float d = (nx + ny - nz)*nd*0.5f + 0.5f;
                    *p++ = ramp[(int)(d*5.0f)];
                }
                else *p++ = ' ';
            }
        }
        
        for(int y = 0; y < 25; y++) {
            COORD coord = {0, y};
            SetConsoleCursorPosition(o, coord);
            WriteConsole(o, buffer[y], 80, NULL, NULL);
        }
        Sleep(30);
    }
    

    }

    AC: Answer Correct 正确的答案 CE:Compile Easily 轻松地通过编译 PC: Pass Compile 通过编译 WA:Wonerful Answer 极好的答案 RE:Right Enough 过于正确 TLE: Time Limit Enough 时间充裕 MLE: Memory Limit Enough 内存充裕 OLE: Output Limit Enough 输出充裕 UKE: Unknown Exactness 不明情况的正确

          .======.
          | INRI |
          |      |
          |      |
    

    .' '. | _ xxxx _ | | /_;-.__ / \ .-;\ | | -._'_/'.-' | '.\ /' | | / | |/-.( | |_.\ | | \ `;| | > |/| | / // | | |// | | (\ | | `` | | | | | | | | | ——————

    胜利不会向山坡上的蒲公英一样脱手可得,但总有一些美好值得我们全力以赴! 死亡不是终点,遗忘才是! 大鹏一日同风起,扶摇直上九万里。

    数学是火,点亮物理的灯;物理是灯,照亮化学的路;化学是路,通向生物的坑;生物是坑,埋葬学理的人。 文言是火,点亮历史宫灯;历史是灯,照亮社会之路;社会是路,通向哲学大坑;哲学是坑,埋葬文科生。

    #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 == 6) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_BLUE); else if (a == 7) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_GREEN | FOREGROUND_BLUE); else if (a == 8) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); else if (a == 9) SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY | FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN); 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); } 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,Bot, Pit, Blt, Pig, Sco, pigk, scok,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 < 100) 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; }

  • 通过的题目

  • 最近活动

题目标签

基础知识
118
模拟
95
二级
30
循环结构
27
数学
25
顺序结构
24
分支结构
22
一级
22
数组
21
字符串
15
三级
15
排序
12
二维数组
10
四级
9
五级
8
六级
8
枚举
7
七级
7
数位拆分
6
结构体
6