#include <bits/stdc++.h>
#include <windows.h>
#include <conio.h>
using namespace std;
const long long dts = 5;
long long wj1x, wj1y, wj2x, wj2y, cs = 0, dtbh;
bool f = 1, t1 = 1, t2 = 1, sy;
long long csx[dts + 1] = {
0,
14,
1,
1,
1,
1
};
long long csy[dts + 1] = {
0,
1,
37,
1,
1,
1
};
string dt[dts + 1][21] = {
{""},
{
"",
" ",
" ",
" == === == ",
" === === <",
" == <",
" <",
" == ==^^^^^^^^^^^== <",
" ====== <",
" === === ======= <",
" = ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<",
" === ^ ^ ^ <",
" = ^ ^ <",
" === ^ <",
" ^ == ^ ^ $",
" ========> <===^===========^^^^^^^^^^^^=========^==========================",
" ",
" ",
" ",
" ",
" ",
},
{
"",
" > < = = ",
" > < = = ",
" = > < = = = ",
" ^^^^^ = > === < = == = ",
" <= > = =^ = === = ",
" < = ^^^^^^^^^^^^^^^ < =$ = ",
" < = < = === ",
" ^^^< = == ^^^ =^^^^^^^^== = ",
" < = = ^^^ ============= = ",
" < = === == < = ",
" < ======^^^^^^^^^^^^^ ^^^^ ^^ ================ ",
" < ",
" ^^^^ < == == ",
" < = ",
" < = == ",
" ==== ^^^ = ",
" = == ",
" ========== ======= ",
" ",
" "
},
{
"",
" =",
" =",
" =",
" ====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^== =",
" =",
" ===== <> =",
" = <> <> =",
" ==============================^^^^^^^^^^^^=============================^=",
" < =",
" < == == =",
" < = = =",
" ^^^ < = = =",
" < = = =",
" < = = =",
" ^^^^< = = =",
" < = = =",
" < = = =",
" = = =",
" ============== ===== $=",
" ="
},
{
"",
" < =",
" < =",
" < =",
" < =",
" < ============================= =",
" < = = = = ===================== =",
" < == == = $= == = = == =",
" < = = = = = = = =",
" < = == ^^^^== = == = ===",
" < = = = ^^^^^= = = === === =",
" < == = =============== = = =",
" < = =^^ = = == =",
" < = =========================== = === =",
" < = = = =",
" < ^ =============================== = =",
" < => === =",
" ==> ===",
" ==================================================================== =",
" =",
" ="
},
{
"",
" < ",
" < ",
" < ",
" < ",
" < ",
" < -- ",
" < == ",
" < ",
" < = -- ",
" < = ",
" < = ",
" < = ",
" < = ",
" < = ",
" < = -- ",
" < = $",
" = ",
" =====---------=^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^",
" ",
" "
}
};
void csh() {
f = 1, t1 = 1, t2 = 1;
cs = 0;
return ;
}
void color(int c) {
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void gb() {
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = FALSE;
cursor.dwSize = sizeof(cursor);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
}
void out();
void in();
void lx();
void js();
int main() {
srand(time(0));
color(240);
system("mode con cols=75 lines=20");
gb();
while (1) {
csh();
dtbh = rand() % dts + 1;
wj1x = wj2x = csx[dtbh];
wj1y = wj2y = csy[dtbh];
while (f) {
system("cls");
out();
in();
js();
if (cs == 1)
lx();
Sleep(10);
if (cs == 1)
cs = -1;
cs++;
}
system("cls");
if (!sy) {
color(9);
system("cls");
cout << "*赢了!";
cout << "\n按Enter结束";
char t = getch();
while (t != 13)
t = getch();
color(153);
} else {
color(12);
system("cls");
cout << "+赢了!";
cout << "\n按Enter结束";
char t = getch();
while (t != 13)
t = getch();
color(204);
}
system("cls");
}
return 0;
}
void out() {
for (long long i = 1; i <= 19; i++) {
for (long long j = 1; j <= 75; j++) {
if (i == wj1x && j == wj1y) {
color(9);
cout << "*";
} else if (i == wj2x && j == wj2y) {
color(12);
cout << "+";
} else if (dt[dtbh][i][j] == '$') {
color(10);
cout << "$";
} else {
color(240);
cout << dt[dtbh][i][j];
}
}
cout << endl;
}
return ;
}
void in() {
if (GetKeyState('A') < 0 && (dt[dtbh][wj1x][wj1y - 1] == ' ' || dt[dtbh][wj1x][wj1y - 1] == '$') && wj1y - 1 > 0) {
wj1y--;
}
if (GetKeyState('D') < 0 && (dt[dtbh][wj1x][wj1y + 1] == ' ' || dt[dtbh][wj1x][wj1y + 1] == '$') && wj1y - 1 <= 100) {
wj1y++;
}
if (GetKeyState('W') < 0 && (dt[dtbh][wj1x - 1][wj1y] == ' ' || dt[dtbh][wj1x - 1][wj1y] == '$') && t1) {
wj1x--;
for (long long i = 1; i <= 2; i++)
if (dt[dtbh][wj1x - 1][wj1y] == ' ')
wj1x--;
t1 = 0;
}
if (GetKeyState(37) < 0 && (dt[dtbh][wj2x][wj2y - 1] == ' ' || dt[dtbh][wj2x][wj2y - 1] == '$') && wj2y - 1 > 0) {
wj2y--;
}
if (GetKeyState(39) < 0 && (dt[dtbh][wj2x][wj2y + 1] == ' ' || dt[dtbh][wj2x][wj2y + 1] == '$') && wj1y - 1 <= 100) {
wj2y++;
}
if (GetKeyState(38) < 0 && (dt[dtbh][wj2x - 1][wj2y] == ' ' || dt[dtbh][wj2x - 1][wj2y] == '$') && t2) {
wj2x--;
for (long long i = 1; i <= 2; i++)
if (dt[dtbh][wj2x - 1][wj2y] == ' ')
wj2x--;
t2 = 0;
}
return ;
}
void lx() {
if (dt[dtbh][wj1x + 1][wj1y] == ' ' || dt[dtbh][wj1x + 1][wj1y] == '$')
wj1x++;
else
t1 = 1;
if (dt[dtbh][wj2x + 1][wj2y] == ' ' || dt[dtbh][wj2x + 1][wj2y] == '$')
wj2x++;
else
t2 = 1;
return ;
}
void js() {
if (dt[dtbh][wj1x][wj1y] == '$') {
f = 0;
sy = 0;
}
if (dt[dtbh][wj2x][wj2y] == '$') {
f = 0;
sy = 1;
}
if (wj1x == 20) {
wj1x = csx[dtbh];
wj1y = csy[dtbh];
}
if (wj2x == 20) {
wj2x = csx[dtbh];
wj2y = csy[dtbh];
}
if (dt[dtbh][wj1x + 1][wj1y] == '^') {
wj1x = csx[dtbh];
wj1y = csy[dtbh];
}
if (dt[dtbh][wj2x + 1][wj2y] == '^') {
wj2x = csx[dtbh];
wj2y = csy[dtbh];
}
if (dt[dtbh][wj1x][wj1y + 1] == '<') {
wj1x = csx[dtbh];
wj1y = csy[dtbh];
}
if (dt[dtbh][wj2x][wj2y + 1] == '<') {
wj2x = csx[dtbh];
wj2y = csy[dtbh];
}
if (dt[dtbh][wj1x][wj1y - 1] == '>') {
wj1x = csx[dtbh];
wj1y = csy[dtbh];
}
if (dt[dtbh][wj2x][wj2y - 1] == '>') {
wj2x = csx[dtbh];
wj2y = csy[dtbh];
}
if (dt[dtbh][wj1x + 1][wj1y] == '-') {
for (long long i = 1; i <= 10 && wj1x > 1; i++) {
if (dt[dtbh][wj1x][wj1y - 1] != '=') {
wj1x--;
} else
break;
}
}
if (dt[dtbh][wj2x + 1][wj2y] == '-') {
for (long long i = 1; i <= 10 && wj2x > 1; i++) {
if (dt[dtbh][wj2x][wj2y - 1] != '=') {
wj2x--;
} else
break;
}
}
return ;
}