Nie jestem w stanie skomentować całości, więc rzeczy które rzuciły mi się w oczy:
{
case 87:
case 119:
Po prostu użyj 'w' i 'W'.
for(int i = 0; i <15; i++)
{
plansza[i][0] = ' ';
for(int x = 0; x <35; x++)
{
plansza[i][x] = " ";
}
}
Skoro używasz pojedyncze znaki, `plansza` nie musi przechowywać stringów, wystarczą pojedyncze znaki. (poza tym, czy to pierwsze przypisanie jest potrzebne?)
if(pozycjay<14)
Zamiast magicznych liczb, użyj stałych jak BOARD_HEIGHT.
Wrzuć kod rysujący, obsługujący klawiaturę etc do osobnych funkcji.
Zamień te wszystkie zmienne globalne na lokalne.
Skorzystaj ze struktur, żeby trzymać wszystkie informacje o graczu etc razem. Na przykład
struct Entity {
int x;
int y;
int shooting;
int reloading;
int hp;
};
struct Bullet {
int x;
int y;
};
Entity player, enemy;
Bullet player_bullet, enemy_bullet;
Albo
struct Position {
int x;
int y;
}
struct Entity {
Position position;
int shooting;
int reloading;
int hp;
};
struct Bullet {
Position position;
};
Jeśli dodasz funkcje/metody/operatory porównujące pozycję, można wtedy trochę kodu uprościć, np
if(player_bullet.position == enemy.position)
{
enemy.hp -= 1;
}