Вот мой код для "как бы" мини игры
Там используються рамки (борты) за которые не разрешено выходить.
Можеш посомтреть и переписать что нужно.
#include
#include
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL,"Russian"); // установка русского языка
start:
char act; // переменная для хранения ввода пользователя
int ch; // ввод пользователя приведённый к типу int
int x = 7; // две переменные для хранения координат пользователя
int y = 9;
int oil = 600;//Переменная для определния топлива
int hp = 100;
char map[15][20]; // двумерный массив для хранения игровой карты
// блок инициализации массива
// внешний цикл отвечает за строки
for (int i = 0; i< 15; i++)
{
// внутренний цикл отвечает за столбцы
for (int j = 0; j< 20; j++)
{
map[j] = ' ';
}
}
//инциализация бортов
for(int i = 0; i < 15; i +=14)
{
for(int j = 0; j < 20; j++)
{
map[j] = '=';
}
}
for(int j = 0; j < 20; j +=19)
{
for(int i = 0; i < 15; i++)
{
map[j] = '|';
}
}
map[7][9] = 'T';// помещаем игровой персонаж в начало координат
while (1)
{
system("cls"); // вызов функции очистки экрана
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 20; j++)
{
cout << map[j]; // в циклах поэлементно выводится массив
}
cout << "\n"; // переход на новую строку после каждого "ряда"
}
cout << "Координаты : " << " По X : " << x << " : " << " По Y : " << y << endl;
cout << "Топливо : " << oil << endl;
cout << "Жизни : " << hp << endl;
act = _getch();
ch = static_cast
/*if (ch == -32)
{}
else if (ch == 27)
{
break;
}
else if (ch == 75)
{
map[x][y] = ' ';
y--;
map[x][y] = 'T';
}
else if (ch == 77)
{
map[x][y] = ' ';
y++;
map[x][y] = 'T';
}
else if (ch == 80)
{
map[x][y] = ' ';
x++;
map[x][y] = 'Т';
}
else if (ch == 72)
{
map[x][y] = ' ';
x--;
map[x][y] = 'Т';
}
*/
switch (static_cast
{
case -32:
break;
case 27:
exit(0);
break;
case 75:
map[x][y] = ' '; // "Убираем" объект со старой координаты
y--; // изменяем координаты
oil--;
if(y<1)y=1;
if(y<1)hp-=25;
map[x][y] = 'Т'; // "рисуем" объект на новом месте
break;
case 77:
map[x][y] = ' ';
y++;
oil--;
if(y>18)y=18;
if(y>17)hp-=25;
map[x][y] = 'Т';
break;
case 80:
map[x][y] = ' ';
x++;
oil--;
if(x>13)x=13;
if(x>12)hp-=25;
map[x][y] = 'Т';
break;
case 72:
map[x][y] = ' ';
x--;
oil--;
if(x<1)x=1;
if(x<2)hp-=25;
map[x][y] = 'Т';
break;
case 32:
goto start;
break;
}
if(oil<0) cout << "Топливо по нулям. Вы проиграли. Начните сначала! \n" << "Для рестарта нажмите Space (Пробел) \n" << "Для выхода из программы нажмите (ESC)" <
if(static_cast
}
}
} // конец цикла while
_getch();
return 0;
}