忍者必须死

#include<iostream>
#include<windows.h>
#include<stdio.h>
#include<conio.h>
#include<time.h>
#define Nor if(B[b].x<5) B[b].x=5;
#define Out1 Bx1-Bvx1<=6||Bx1-Bvx1>=28||By1-Bvy1<=7||By1-Bvy1>=27
#define Out2 Bx2-Bvx2<=6||Bx2-Bvx2>=28||By2-Bvy2<=7||By2-Bvy2>=27
#define Chang1 {Bwhat1=0;Bvx1=Bvy1=0;memset(Bgo1,0,sizeof(Bgo1));}
#define Chang2 {Bwhat2=0;Bvx2=Bvy2=0;memset(Bgo2,0,sizeof(Bgo2));}
#define Chang3 {Bwhat3=0;Bvx3=Bvy3=0;memset(Bgo3,0,sizeof(Bgo3));}
using namespace std;
int ti(float a) { return ((int)(a * 10 + 5)) / 10; }
void Setpos(float x, float y) { COORD pos; pos.X = ti(y * 4) / 2; pos.Y = ti(x); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); }
void Color(int a) { if (a == 0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); if (a == 1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); if (a == 2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN); if (a == 3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); if (a == 4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED); if (a == 5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); if (a == 6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE); if (a == 7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); if (a == 8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED); if (a == 9) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_BLUE); if (a == 10) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_BLUE); if (a == 11) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE); if (a == 12) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN); if (a == 13) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY); if (a == 14) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); }
int Blomax, Ren, Exp, Expmax, Lv, Lvl, Ice, Drug, ar1, ar2, Tar1, Tar2, bl, br, Win, T, Tb, Sy, Up, Upt, Down, u1, u2, Kill, Killb, L, Ll[4], Li, D, Gd[10], Biao, Fire, Fir, Water, Thun, Wind, Magne, I[20][2], ib, Dis, Disb, Dis1, Disb1, Boss, Bblo, Bblomax, Bwhat1, Bwhat2, Bwhat3, Bgo1[10], Bgo2[10], Bgo3[10], Bbr, Bbl, Bl[4];
float X, Y, Vx, Vy, Ding, Blo, Hui, Bx1, By1, Bx2, By2, Bx3, By3, Bvx1, Bvy1, Bvx2, Bvy2, Bvx3, Bvy3, Bway[1001][2];
struct bullet { float x, y, vx, vy; int what; int a, t, How; int life; bool kill; }B[100001];
void Map(int a, int b);
void Pan(int a, float x, float y, int b) {
    float Nox[4], Noy[4]; Nox[0] = X, Noy[0] = Y;
    if (Down == 1 && X == 22) Nox[1] = X + 1, Noy[1] = Y - 0.5, Nox[2] = X - 1, Noy[2] = Y - 0.5; else if (Down == 2) Nox[1] = X + 1, Noy[1] = Y - 0.5, Nox[2] = -10, Noy[2] = -10; else if (Down == 1 || X < 18) Nox[1] = X - 1, Noy[1] = Y - 0.5, Nox[2] = -10, Noy[2] = -10; else Nox[1] = X + 1, Noy[1] = Y - 0.5, Nox[2] = X - 1, Noy[2] = Y - 0.5;
    for (int i = 0; i < 3; i++) {
        if (a == -1) { if (abs(x - Nox[i]) + abs(y - Noy[i]) < 1.5) { if (B[b].what == -10)Exp += 2; if (B[b].what == -11)Exp += 1; B[b].life = 0; if (B[b].life == 0 && b == bl) bl++; Map(3, b); break; } }
        if (a == -2) { if (abs(x - Nox[i]) + abs(y - Noy[i]) < 2.5) { if (B[b].what == -2)Exp += 5, Biao += 5; if (B[b].what == -3)Fire = 300, Ice = 0, Fir = 3; if (B[b].what == -4)Water = 200; if (B[b].what == -5) { Wind = 70; Ding = 28.25; Ice = 0; if (Y < Ding - 1)Vy = 5; else Vy = 0; if (Up >= 1) Vx = -5; if (Down == 2) Vx = 5; }if (B[b].what == -6) { Thun = 200; system("color 1F"); Sleep(20); system("color 6F"); Sleep(10); system("color 0F"); }if (B[b].what == -7)Magne = 300; if (B[b].what == -8)Ice = 0, Drug = 0, Blo = fmin((float)Blomax, Blo + 20); if (B[b].what == -9)Exp = fmin((float)Expmax, Exp + 20); B[b].life = 0; if (B[b].life == 0 && b == bl) bl++; Map(3, b); break; } }
    }if (Wind == 0 && Thun == 0 && (B[b].kill != 0 || Killb >= 15 || Ren == 1 && Killb > 0)) return;
    for (int i = 0; i < 3; i++) {
        if ((Wind >= 1 || Thun >= 1) && abs(x - Nox[i]) + abs(y - Noy[i]) < 2.5) { if (B[b].what < 98)Exp += 2; B[b].life = 0; Map(3, b); break; }
        if (a == 1) { if (abs(x - Nox[i]) < 0.5 && abs(y - Noy[i]) < 1) { if (B[b].what >= 99)Blo -= 10; if (B[b].what == 14)Blo -= 15, Ice = 100, B[b].life = 0; else if (B[b].what == 15)Blo -= 20, Ice = 0, B[b].life = 0; else if (B[b].what == 17)Blo -= 5, Drug = 100, B[b].life = 0; else if (B[b].what >= 13 && B[b].what <= 17)Blo -= 10, B[b].life = 0; else Blo -= 15; B[b].kill = 1, Killb = 20; Kill = 1; Map(3, b); break; } }
        if (a == 2 || a == 6 || a == 8 || a == 9 || a == 10 || a == 11 || a == 12) {
            if (abs(x - Nox[i]) + abs(y - Noy[i]) < 1.5) {
                if (a == 2)Blo -= 20;
                else if (a == 8)Blo -= 10;
                else Blo -= 15; B[b].kill = 1, Killb = 20; Kill = 1; if (a != 2) { B[b].life = 0; if (B[b].life == 0 && b == bl) bl++; Map(3, b); break; }
            }
        }
        if (a == 4) { if ((Wind >= 1 || Thun >= 1) && abs(x - Nox[i]) < 1.5 && Noy[i] - y <= 0 && Noy[i] - y >= -8) { if (B[b].what < 98)Exp += 2; B[b].life = 0; Map(3, b); break; }if (abs(x - Nox[i]) < 1 && Noy[i] - y <= 0 && Noy[i] - y >= -8) { Blo -= 25, B[b].kill = 1, Killb = 20; Kill = 1; Vy = -1; Y -= 0.5; break; } }
    }
}
void Map(int a, int b) {
    Color(0);
    if (a == -1) {
        if (Boss == 1 || Boss == 6) { if (Bwhat1 == 5) { if (ti(Bx1) == 20)Setpos(Bx1, By1), cout << "=="; else Setpos(Bx1, By1), cout << "  "; } else { Setpos(Bx1 - 1, By1 - 0.5), cout << "    "; Setpos(Bx1, By1 - 1), cout << "      "; Setpos(Bx1 + 1, By1 - 0.5), cout << "    "; if (abs(ti(Bx1) - 20) <= 1)Setpos(20, By1 - 1), cout << "======"; } }
        if (Boss == 2 || Boss == 6) { Setpos(Bx2 - 1, By2 - 1); cout << "    "; Setpos(Bx2, By2 - 1); cout << "      "; Setpos(Bx2 + 1, By2 - 1), cout << "      "; Color(0); if (abs(ti(Bx2) - 20) <= 1)Setpos(20, By2 - 1), cout << "======"; }
        if (Boss == 3 || Boss == 6) { Setpos(Bx3 - 1, By3 - 0.5); cout << "     "; Setpos(Bx3, By3); cout << "  "; Setpos(Bx3 + 1, By3 - 1), cout << "      "; Color(0); if (abs(ti(Bx3) - 20) <= 1)Setpos(20, By3 - 1), cout << "======="; }
        if (X < 0)return; if (X >= 17 && X <= 19) { Setpos(X - 1, Y); cout << "  "; Setpos(X, Y - 1); cout << "   "; Setpos(X + 1, Y - 1), cout << "   "; }
        else if (X <= 23 && X >= 21) { Setpos(X + 1, Y); cout << "  "; Setpos(X, Y - 1); cout << "   "; Setpos(X - 1, Y - 1), cout << "    "; }
        else if (X > 23) { Setpos(X, Y - 1); cout << "    "; Setpos(X - 1, Y - 0.5), cout << "   "; }
        else if (X < 17 && Upt != 0) { Setpos(X, Y - 1); cout << "    "; Setpos(X + 1, Y - 1.5), cout << "    "; }
        else if (X < 17) { Setpos(X, Y - 1); cout << "    "; Setpos(X + 1, Y - 0.5), cout << "   "; }if (Thun > 0) { Setpos(X - 2, Y - 1), cout << "    "; Setpos(X + 2, Y - 1), cout << "    "; Setpos(X, Y + 2), cout << "  "; Setpos(X, Y - 2.5), cout << "  "; Setpos(X - 1, Y + 1), cout << "  "; Setpos(X + 1, Y + 1), cout << "  "; Setpos(X - 1, Y - 2), cout << "  "; Setpos(X + 1, Y - 2), cout << "  "; Setpos(20, Y - 2.5), cout << "============"; }if (Wind != 0) { Setpos(X + 1, Y - 5); cout << "        "; Setpos(X, Y - 5); cout << "        "; Setpos(X - 1, Y - 5); cout << "        "; Setpos(20, Y - 5), cout << "========"; }if (Water != 0) { Setpos(X, Y - 4); cout << "       "; Setpos(X + 2, Y - 3.5); cout << "     "; Setpos(X - 2, Y - 3.5); cout << "     "; Setpos(X + 1, Y - 3.5); cout << "     "; Setpos(X - 1, Y - 3.5); cout << "     "; Setpos(20, Y - 5), cout << "========"; }if (Fire != 0) { Setpos(X, Y + 1), cout << "  "; Setpos(X + 1, Y), cout << "  "; Setpos(X - 1, Y - 1), cout << "  "; Setpos(20, Y - 1); cout << "======"; }
    }
    if (a == 0) {
        if (Boss == 1 || Boss == 6) { if (Bwhat1 == 5)Color(5), Setpos(Bx1, By1), cout << "█", Color(0); else if (Bwhat1 == 4 && Bgo1[1] > 6 && Bgo1[1] < 11)Color(4), Setpos(Bgo1[5] - 1, Bgo1[6]), cout << "︻", Setpos(Bgo1[5], Bgo1[6] - 1), cout << "【", Setpos(Bgo1[5], Bgo1[6] + 1), cout << "】", Setpos(Bgo1[5] + 1, Bgo1[6]), cout << "︼", Color(0); else { Setpos(Bx1 - 1, By1 - 0.5), Color(0), cout << "●●"; Setpos(Bx1, By1 - 1); if (Bwhat1 == 2 && Bgo1[1] <= 5)Color(1); else if (Bwhat1 == 3 && Bgo1[1] <= 5)Color(5); else if (Bwhat1 == 6 && Bgo1[1] <= 5)Color(8); else Color(4); if (Bwhat1 == 4) Setpos(Bx1, By1 - 0.5), cout << "██("; else cout << ")██("; Setpos(Bx1 + 1, By1 - 0.5), cout << "……"; Color(0); } }
        if (Boss == 2 || Boss == 6) { Setpos(Bx2 - 1, By2 - 1); Color(0), cout << "\\ "; Color(0); cout << "●"; Setpos(Bx2, By2 - 1); Color(3); cout << "◥"; Color(5), cout << "JJJ"; Color(0), cout << ">"; Color(3); Setpos(Bx2 + 1, By2 - 1), cout << "◢█◣"; Color(0); }
        if (Boss == 3 || Boss == 6) { Setpos(Bx3 - 1, By3 - 0.5); if (Bwhat3 == 3 || Bwhat3 == 9) Color(1); else if (Bwhat3 == 4 || Bwhat3 == 10) Color(4); else if (Bwhat3 == 5 || Bwhat3 == 11) Color(5); if (Bwhat3 == 11)cout << ' '; else if (Bwhat3 == 6) Color(3); else Color(2); cout << "●-"; Setpos(Bx3, By3); if (Bwhat3 == 11)cout << "/"; else cout << "┃"; Color(0); Setpos(Bx3 + 1, By3 - 1), cout << "●●●"; }
        if (X < 0)return; if (Ren == 2) Color(12); if (Ren == 3) Color(1); if (Ren == 4) Color(3); if (Ren == 5) Color(4); if (Ren == 6) Color(2); if (Drug != 0 && T % 5 != 0) Color(11); if (Drug != 0 && T % 5 == 0) Color(11); if (Ice != 0) Color(6); if (b == 1) Color(8); if (Li != 0) Color(5); if (Ren == 1 && Killb > 0 && T % 4 < 2) Color(13); if (Wind > 0 && T % 4 <= 1) Color(1); if (Wind > 0 && T % 4 >= 2) Color(0); if (Thun > 0 && T % 4 <= 1) Color(1); if (Thun > 0 && T % 4 >= 2) Color(6);
        if (X >= 17 && X <= 19) { Setpos(X - 1, Y); cout << "●"; Setpos(X, Y - 1); cout << "━/"; if (T % 10 < 3) Setpos(X + 1, Y - 1), cout << "┛╲"; else if (T % 10 < 6) Setpos(X + 1, Y - 1), cout << "┦ "; else Setpos(X + 1, Y - 1), cout << "╯>"; if (Wind > 0 && T % 3 == 0) Setpos(X + 1, Y - 1), cout << "┛╲"; else if (Wind > 0 && T % 3 == 1) Setpos(X + 1, Y - 1), cout << "┦ "; else if (Wind > 0 && T % 3 == 2)Setpos(X + 1, Y - 1), cout << "╯>"; }
        else if (X <= 23 && X >= 21) { Setpos(X + 1, Y); cout << "●"; Setpos(X, Y - 1); cout << "━\\"; if (T % 10 < 3) Setpos(X - 1, Y - 1), cout << "┓╱"; else if (T % 10 < 6) Setpos(X - 1, Y - 1), cout << "┪ "; else Setpos(X - 1, Y - 1), cout << "╮>"; if (Wind > 0 && T % 3 == 0) Setpos(X - 1, Y - 1), cout << "┓╱"; else if (Wind > 0 && T % 3 == 1) Setpos(X - 1, Y - 1), cout << "┪ "; else if (Wind > 0 && T % 3 == 2)Setpos(X - 1, Y - 1), cout << "╮>"; }
        else if (X > 23) { Setpos(X, Y - 1); cout << "━ ●"; Setpos(X - 1, Y - 0.5), cout << "│>"; }
        else if (X < 17 && Upt != 0) { Setpos(X, Y - 1); cout << "━ ●"; Setpos(X + 1, Y - 1.5), cout << "╱ >"; }
        else if (X < 17) { Setpos(X, Y - 1); cout << "━ ●"; Setpos(X + 1, Y - 0.5), cout << "│>"; }if (Thun > 0) { Setpos(X - 2, Y - 1), cout << "▄▄"; Setpos(X + 2, Y - 1), cout << "▄▄"; Setpos(X, Y + 2), cout << "▌"; Setpos(X, Y - 2.5), cout << "▌"; Setpos(X - 1, Y + 1), cout << "█"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值