Untitled
unknown
plain_text
a year ago
15 kB
7
Indexable
#include<iostream>
#include<conio.h>
using namespace std;
void clean_and_draw_border(char x[][150], int r, int c)
{
for (int i = 0; i < 200; i++)
{
for (int j = 0; j < 150; j++)
{
x[i][j] = ' ';
}
}
for (int i = r; i < r + 50; i++)
{
x[i][0] = 186;
x[i][149] = 186;
}
for (int i = 1; i < 150; i++)
{
x[r + 0][i] = 205;
x[r + 2][i] = 205;
x[r + 49][i] = 205;
}
x[r][0] = 201;
x[r + 2][0] = 204;
x[r + 49][0] = 200;
x[r][149] = 187;
x[r + 2][149] = 185;
x[r + 49][149] = 188;
}
void cout_to_screen(char x[][150], int l, int r, int c)
{
system("cls");
if (l == 1)
{
for (int i = r; i < r + 50; i++)
{
for (int j = 0; j < 150; j++)
{
cout << x[i][j];
}
cout << endl;
}
}
}
void draw_stats(char x[][150], int hlr, int hlc, int r, int c)
{
x[r + hlr][hlc] = 'H';
x[r + hlr][hlc + 1] = 'E';
x[r + hlr][hlc + 2] = 'A';
x[r + hlr][hlc + 3] = 'L';
x[r + hlr][hlc + 4] = 'T';
x[r + hlr][hlc + 5] = 'H';
x[r + hlr][hlc + 6] = '=';
/*x[r+hlr][hlc + 7] = 003;
x[r+hlr][hlc + 8] = 003;
x[r+hlr][hlc + 9] = 003;*/
x[r + hlr][hlc + 12] = 'B';
x[r + hlr][hlc + 13] = 'U';
x[r + hlr][hlc + 14] = 'L';
x[r + hlr][hlc + 15] = 'L';
x[r + hlr][hlc + 16] = 'E';
x[r + hlr][hlc + 17] = 'T';
x[r + hlr][hlc + 18] = '=';
x[r + hlr][hlc + 19] = '5';
}
void draw_l1(char x[][150], int rl)
{
for (int i = 1; i < 135; i++)
{
x[rl][i] = 205;
x[rl + 1][i] = 178;
x[rl + 2][i] = 178;
x[rl + 3][i] = 205;
}
for (int i = 146; i < 149; i++)
{
x[rl][i] = 205;
x[rl + 1][i] = 178;
x[rl + 2][i] = 178;
x[rl + 3][i] = 205;
}
}
void draw_l2(char x[][150], int rl)
{
for (int i = 148; i > 13; i--)
{
x[rl][i] = 205;
x[rl + 1][i] = 178;
x[rl + 2][i] = 178;
x[rl + 3][i] = 205;
}
for (int i = 3; i >= 1; i--)
{
x[rl][i] = 205;
x[rl + 1][i] = 178;
x[rl + 2][i] = 178;
x[rl + 3][i] = 205;
}
}
void draw_ladder(char x[][150], int rladder, int cladder, int rl)
{
for (int i = rladder; i < rl; i++)
{
x[i][135] = '|';
x[i][146] = '|';
for (int c = cladder + 1; c < 146; c++)
{
x[i][c] = '-';
}
}
}
void draw_fire(char x[][150], int rfire, int cfire)
{
for (int i = cfire; i < 110; i += 4)
{
x[rfire - 1][i] = '(';
x[rfire - 1][i + 1] = '_';
x[rfire - 1][i + 2] = ',';
x[rfire - 1][i + 3] = ')';
x[rfire - 2][i + 1] = ')';
x[rfire - 2][i + 2] = '(';
x[rfire - 2][i + 3] = ',';
x[rfire - 3][i + 2] = '.';
x[rfire - 3][i + 1] = ')';
x[rfire - 4][i + 2] = '(';
x[rfire][i] = '^';
x[rfire][i + 1] = '^';
x[rfire][i + 2] = '^';
x[rfire][i + 3] = '^';
}
}
void draw_slem(char x[][150], int rslem, int cslem)
{
x[rslem][cslem] = 202;
x[rslem - 1][cslem] = 201;
x[rslem - 1][cslem + 1] = 205;
x[rslem - 1][cslem + 2] = 188;
x[rslem - 2][cslem + 2] = 201;
x[rslem - 2][cslem + 3] = 205;
x[rslem - 2][cslem + 4] = 188;
x[rslem - 3][cslem + 4] = 201;
x[rslem - 3][cslem + 5] = 205;
x[rslem - 3][cslem + 6] = 205;
x[rslem - 3][cslem + 7] = 187;
x[rslem - 2][cslem + 7] = 186;
x[rslem - 1][cslem + 7] = 186;
x[rslem][cslem + 7] = 202;
}
void draw_slem_2(char x[][150], int rslem, int cslem)
{
x[rslem][cslem] = 202;
x[rslem - 1][cslem] = 186;
x[rslem - 2][cslem] = 186;
x[rslem - 3][cslem] = 201;
x[rslem - 3][cslem + 1] = 205;
x[rslem - 3][cslem + 2] = 205;
x[rslem - 3][cslem + 3] = 187;
x[rslem - 2][cslem + 3] = 200;
x[rslem - 2][cslem + 4] = 205;
x[rslem - 2][cslem + 5] = 187;
x[rslem - 1][cslem + 5] = 200;
x[rslem - 1][cslem + 6] = 205;
x[rslem - 1][cslem + 7] = 187;
x[rslem][cslem + 7] = 202;
}
void draw_selim(char x[][150], int rselim, int cselim)
{
x[rselim][cselim] = '=';
x[rselim][cselim + 1] = '=';
x[rselim][cselim + 2] = '=';
x[rselim][cselim + 3] = '=';
x[rselim][cselim + 4] = '=';
x[rselim][cselim + 5] = '=';
x[rselim][cselim + 6] = '=';
x[rselim][cselim + 7] = '=';
x[rselim][cselim + 8] = '=';
x[rselim][cselim + 9] = '=';
x[rselim][cselim + 10] = '=';
}
void move_hero_on_platform(char x[][150], int& dir, int& rhero, int& chero)
{
if (x[rhero + 1][chero + 1] == '=' || x[rhero + 1][chero] == '=' || x[rhero + 1][chero + 2] == '=' || x[rhero + 1][chero + 3] == '=' || x[rhero + 1][chero + 4] == '=' || x[rhero + 1][chero + 5] == '=')
{
if (dir == 1)
{
chero++;
}
if (dir == -1)
{
chero--;
}
}
}
void move_selim(char x[][150], int& rselim, int& cselim, int& dirs)
{
if (dirs == 1)
{
if (cselim + 5 == 110)
{
dirs = -1;
}
}
if (dirs == -1)
{
if (cselim == 38)
{
dirs = 1;
}
}
cselim += dirs;
}
void draw_zomie(char x[][150], int rzombie, int czombie, int dirz)
{
if (dirz == -1)
{
x[rzombie][czombie] = '|';
x[rzombie][czombie - 1] = '\\';
x[rzombie][czombie - 4] = '|';
x[rzombie][czombie - 5] = '\\';
x[rzombie - 1][czombie - 1] = '\\';
x[rzombie - 1][czombie - 2] = '\\';
x[rzombie - 1][czombie - 4] = '/';
x[rzombie - 1][czombie - 5] = '/';
x[rzombie - 2][czombie - 1] = '|';
x[rzombie - 2][czombie - 2] = '|';
x[rzombie - 2][czombie - 3] = '/';
x[rzombie - 2][czombie - 4] = '/';
x[rzombie - 2][czombie - 5] = '/';
x[rzombie - 2][czombie - 6] = '|';
x[rzombie - 2][czombie - 7] = '/';
x[rzombie - 2][czombie - 8] = '|';
x[rzombie - 3][czombie - 1] = '|';
x[rzombie - 3][czombie - 5] = '/';
x[rzombie - 3][czombie - 6] = '/';
x[rzombie - 3][czombie - 7] = '/';
x[rzombie - 3][czombie - 8] = '/';
x[rzombie - 4][czombie - 1] = '|';
x[rzombie - 4][czombie - 5] = '|';
x[rzombie - 4][czombie - 6] = '|';
x[rzombie - 4][czombie - 7] = '/';
x[rzombie - 5][czombie - 2] = '\\';
x[rzombie - 5][czombie - 7] = '/';
x[rzombie - 5][czombie - 8] = '\\';
x[rzombie - 6][czombie - 3] = '\\';
x[rzombie - 6][czombie - 8] = 232;
x[rzombie - 6][czombie - 9] = '\\';
x[rzombie - 7][czombie - 4] = '_';
x[rzombie - 7][czombie - 5] = '\\';
x[rzombie - 7][czombie - 9] = '/';
x[rzombie - 8][czombie - 6] = '_';
x[rzombie - 8][czombie - 7] = '_';
x[rzombie - 8][czombie - 8] = '_';
for (int i = 0; i < 4; i++)
{
x[rzombie - 9][czombie - 5 - i] = 254;
}
}
if (dirz == 1)
{
x[rzombie][czombie] = '|';
x[rzombie][czombie + 1] = '/';
x[rzombie][czombie + 4] = '|';
x[rzombie][czombie + 5] = '/';
x[rzombie - 1][czombie + 1] = '/';
x[rzombie - 1][czombie + 2] = '/';
x[rzombie - 1][czombie + 4] = '/';
x[rzombie - 1][czombie + 5] = '/';
x[rzombie - 2][czombie + 1] = '|';
x[rzombie - 2][czombie + 2] = '|';
x[rzombie - 2][czombie + 3] = '\\';
x[rzombie - 2][czombie + 4] = '\\';
x[rzombie - 2][czombie + 5] = '\\';
x[rzombie - 2][czombie + 6] = '|';
x[rzombie - 2][czombie + 7] = '\\';
x[rzombie - 2][czombie + 8] = '|';
x[rzombie - 3][czombie + 1] = '|';
x[rzombie - 3][czombie + 5] = '\\';
x[rzombie - 3][czombie + 6] = '\\';
x[rzombie - 3][czombie + 7] = '\\';
x[rzombie - 3][czombie + 8] = '\\';
x[rzombie - 4][czombie + 1] = '|';
x[rzombie - 4][czombie + 5] = '|';
x[rzombie - 4][czombie + 6] = '|';
x[rzombie - 4][czombie + 7] = '\\';
x[rzombie - 5][czombie + 2] = '/';
x[rzombie - 5][czombie + 7] = '\\';
x[rzombie - 5][czombie + 8] = '/';
x[rzombie - 6][czombie + 3] = '/';
x[rzombie - 6][czombie + 8] = 232;
x[rzombie - 6][czombie + 9] = '/';
x[rzombie - 7][czombie + 4] = '_';
x[rzombie - 7][czombie + 5] = '/';
x[rzombie - 7][czombie + 9] = '\\';
x[rzombie - 8][czombie + 6] = '_';
x[rzombie - 8][czombie + 7] = '_';
x[rzombie - 8][czombie + 8] = '_';
for (int i = 0; i < 4; i++)
{
x[rzombie - 9][czombie + 5 + i] = 254;
}
}
}
void draw_hero(char x[][150], int rhero, int chero, int gunf, int direh)
{
x[rhero][chero] = '(';
x[rhero][chero + 1] = '_';
x[rhero][chero + 2] = '_';
x[rhero][chero + 3] = '|';
x[rhero][chero + 5] = '|';
x[rhero][chero + 7] = '_';
x[rhero][chero + 6] = '_';
x[rhero][chero + 8] = ')';
x[rhero - 1][chero + 1] = '_';
x[rhero - 1][chero + 2] = '|';
x[rhero - 1][chero + 3] = '|';
x[rhero - 1][chero + 5] = '|';
x[rhero - 1][chero + 6] = '|';
x[rhero - 1][chero + 7] = '_';
x[rhero - 2][chero + 2] = '(';
x[rhero - 2][chero + 3] = '|';
x[rhero - 2][chero + 5] = '|';
x[rhero - 2][chero + 6] = ')';
x[rhero - 3][chero + 1] = '<';
x[rhero - 3][chero + 2] = '|';
x[rhero - 3][chero + 3] = '|';
x[rhero - 3][chero + 4] = '^';
x[rhero - 3][chero + 5] = '|';
x[rhero - 3][chero + 6] = '|';
x[rhero - 3][chero + 7] = '>';
x[rhero - 4][chero] = '\\';
x[rhero - 4][chero + 1] = '\\';
x[rhero - 4][chero + 2] = '|';
x[rhero - 4][chero + 3] = '=';
x[rhero - 4][chero + 4] = '=';
x[rhero - 4][chero + 5] = '=';
x[rhero - 4][chero + 6] = '|';
x[rhero - 4][chero + 7] = '/';
x[rhero - 4][chero + 8] = '/';
x[rhero - 5][chero] = '/';
x[rhero - 5][chero + 1] = '/';
x[rhero - 5][chero + 2] = '|';
x[rhero - 5][chero + 4] = 237;
x[rhero - 5][chero + 6] = '|';
x[rhero - 5][chero + 7] = '\\';
x[rhero - 5][chero + 8] = '\\';
x[rhero - 6][chero + 1] = '_';
x[rhero - 6][chero + 2] = '_';
x[rhero - 6][chero + 4] = '_';
x[rhero - 6][chero + 6] = '_';
x[rhero - 6][chero + 7] = '_';
x[rhero - 6][chero + 3] = '`';
x[rhero - 6][chero + 5] = ',';
x[rhero - 7][chero + 2] = '\\';
x[rhero - 7][chero + 4] = '=';
x[rhero - 7][chero + 6] = '/';
x[rhero - 8][chero + 2] = '/';
x[rhero - 8][chero + 3] = 'e';
x[rhero - 8][chero + 5] = 'e';
x[rhero - 8][chero + 6] = '\\';
x[rhero - 9][chero + 3] = '.';
x[rhero - 9][chero + 4] = '"';
x[rhero - 9][chero + 5] = '.';
}
void move_hero(char x[][150], char dirh, int& rhero, int& chero, int& gunf, int fjump, int& r, int& direh)
{
int posr = 7;
int posc = 1;
int flag = 1;
if (dirh == 'd')
{
direh = 0;
if (x[rhero][chero + 9] == ' ' || x[rhero][chero + 9] == '|' || x[rhero][chero + 9] == '-')
{
chero++;
}
if (x[rhero - 1][chero + 5] == 'O')
{
gunf = 1;
x[6][10] = ' ';
}
}
if (dirh == 'a')
{
if (x[rhero][chero - 1] == ' ' || x[rhero][chero - 1] == '|' || x[rhero][chero - 1] == '-')
{
chero--;
}
dirh = 1;
}
if (fjump == 0)
{
if (dirh == 'q')
{
if (x[rhero - 10][chero - 2] == ' ' || x[rhero - 10][chero - 2] == '|' || x[rhero - 10][chero - 2] == '-')
{
rhero -= 3;
chero -= 5;
if (r > 0)
{
r--;
}
}
}
if (dirh == 'e')
{
if (x[rhero - 10][chero + 6] == ' ' || x[rhero - 10][chero + 6] == '|' || x[rhero - 10][chero + 6] == '-')
{
rhero -= 3;
chero += 5;
if (r > 0)
{
r--;
}
}
}
if (dirh == 'w')
{
if (x[rhero - 10][chero] == ' ')//|| x[rhero + 3][chero] == '-')
{
rhero -= 3;
if (r > 0)
{
r--;
}
}
}
}
if (dirh == 's')
{
if (x[rhero + 1][chero] == '-')
{
rhero++;
if (r < 200)
{
r++;
}
}
}
}
void _gravity(char x[][150], int& rhero, int& chero, int& fjump, int& r)
{
if (x[rhero + 1][chero] == ' ' && x[rhero + 1][chero + 1] == ' ' && x[rhero + 1][chero + 2] == ' ')
{
rhero++;
//r++;
fjump = 0;
}
if (x[rhero + 1][chero] != ' ' && x[rhero + 1][chero + 1] != ' ' && x[rhero + 1][chero + 2] != ' ')
{
fjump = 0;
}
}
void move_zombie(int& czombie, int& dirz)
{
if (dirz == 1)
{
if (czombie + 24 == 148)
{
dirz = -1;
}
}
if (dirz == -1)
{
if (czombie == 20)
{
dirz = 1;
}
}
czombie += dirz;
}
void draw_enemy(char x[][150], int& enemyr, int& enemyc)
{
for (int i = 0; i < 7; i++)
{
x[enemyr - 1][enemyc + i] = '~';
}
x[enemyr - 1][enemyc - 1] = '(';
for (int i = 0; i < 7; i++)
{
x[enemyr - 1][enemyc + i] = '0';
}
x[enemyr - 1][enemyc + 7] = ')';
x[enemyr - 2][enemyc + 1] = '(';
x[enemyr - 2][enemyc + 2] = '_';
x[enemyr - 2][enemyc + 3] = '|';
x[enemyr - 2][enemyc + 4] = '_';
x[enemyr - 2][enemyc + 5] = ')';
x[enemyr - 3][enemyc + 2] = '/';
x[enemyr - 3][enemyc + 3] = '|';
x[enemyr - 3][enemyc + 4] = '\\';
x[enemyr - 4][enemyc + 2] = '_';
x[enemyr - 4][enemyc + 1] = '\\';
x[enemyr - 4][enemyc + 3] = 'I';
x[enemyr - 4][enemyc + 4] = '_';
x[enemyr - 4][enemyc + 5] = '/';
x[enemyr - 5][enemyc + 1] = '____';
x[enemyr - 5][enemyc + 2] = '___';
x[enemyr - 5][enemyc + 4] = '____';
x[enemyr - 5][enemyc + 5] = '__';
x[enemyr - 5][enemyc + 3] = '.';
x[enemyr - 5][enemyc] = '|';
x[enemyr - 5][enemyc + 6] = '|';
for (int i = 0; i < 7; i++)
{
x[enemyr - 6][enemyc + i] = '_';
}
x[enemyr - 6][enemyc - 1] = '\\';
x[enemyr - 6][enemyc - 2] = '/';
x[enemyr - 6][enemyc - 3] = '/';
x[enemyr - 6][enemyc + 7] = '/';
x[enemyr - 6][enemyc + 8] = '\\';
x[enemyr - 6][enemyc + 9] = '\\';
x[enemyr - 7][enemyc + 8] = '__';
x[enemyr - 7][enemyc + 7] = '\\';
x[enemyr - 7][enemyc + 9] = ')';
x[enemyr - 7][enemyc - 1] = '/';
x[enemyr - 7][enemyc - 2] = '__';
x[enemyr - 7][enemyc - 3] = '(';
for (int i = 0; i < 3; i++)
{
x[enemyr - 8][enemyc - 2+i] = '_';
}
x[enemyr - 8][enemyc +1] = '|';
x[enemyr - 8][enemyc + 2] = '0';
x[enemyr - 8][enemyc + 4] = '0';
x[enemyr - 8][enemyc + 5] = '|';
for (int i = 0; i < 3; i++)
{
x[enemyr - 8][enemyc + 6 + i] = '_';
}
x[enemyr - 9][enemyc + 5] = '.';
x[enemyr - 9][enemyc + 1] = '.';
x[enemyr - 9][enemyc + 2] = '`';
x[enemyr - 10][enemyc + 3] = '__';
x[enemyr - 9][enemyc + 4] = '`';
x[enemyr - 5][enemyc + 8] = '<';
x[enemyr - 5][enemyc + 10] = '>';
x[enemyr - 4][enemyc + 8] = '/';
x[enemyr - 4][enemyc + 9] = '/';
x[enemyr - 3][enemyc + 8] = '^';
x[enemyr - 3][enemyc + 9] = '^';
}
void move_enemy(char x [][150],int &enemyr ,int& enemyc, int& dire, int enemystop)
{
if (enemystop == 0)
{
if (dire == 1)
{
if (enemyc == 136) //|| x[enemyr][enemyc + 5] != ' ')
{
dire = -1;
}
}
if (dire == -1)
{
if (enemyc == 15)//|| x[enemyr][enemyc - 5] != ' ')
{
dire = 1;
}
}
enemyc += dire;
}
}
void main()
{
char x[200][150];
int l = 1;
int enemystop = 1;
int r = 25;
int c = 0;
int hlr = 1;
int hlc = 5;
int rl = 25;
int rl2 = 49;
int rl3=75;
int rladder = 26;
int cladder = 135;
int rfire = 25;
int cfire = 45;
int rslem = 25;
int cslem = 37;
int rslem2 = 25;
int cslem2 = 113;
int rselim = 20;
int cselim = 44;
int dirs = 1;
int rzombie = 48;
int czombie = 50;
int dirz1 = -1;
int rhero = 24;
int chero = 3;
int gunf = 1;
int direh = 0;
int fjump = 1;
int enemyc = 120;
int enemyr = 74;
int dire = 1;
for (;;)
{
for (; !_kbhit();)
{
clean_and_draw_border(x, r, c);
draw_stats(x, hlr, hlc, r, c);
draw_l1(x, rl);
draw_l2(x, rl2);
draw_l2(x, rl3);
draw_ladder(x, rladder, cladder, rl2);
draw_fire(x, rfire, cfire);
draw_slem(x, rslem, cslem);
draw_slem_2(x, rslem2, cslem2);
draw_selim(x, rselim, cselim);
move_selim(x, rselim, cselim, dirs);
draw_zomie(x, rzombie, czombie, dirz1);
move_zombie(czombie, dirz1);
draw_hero(x, rhero, chero, gunf, direh);
_gravity(x, rhero, chero, fjump, r);
move_hero_on_platform(x, dirs, rhero, chero);
draw_enemy(x, enemyr, enemyc);
move_enemy(x, enemyr, enemyc, dire, enemystop);
cout_to_screen(x, l, r, c);
}
char dirh;
dirh = _getch();
move_hero(x, dirh, rhero, chero, gunf, fjump, r, direh);
draw_hero(x, rhero, chero, gunf, direh);
}
}
Editor is loading...
Leave a Comment