Вот прога на С++:
Code
#include <iostream> // cin, cout
#include <clocale> // поддержка русского языка
#include <conio.h> // _getch()
#include <stdlib.h> // поддержка функции очистки экрана system("cls")
using namespace std;
int main()
{
setlocale(LC_CTYPE,"Russian"); // установка русского языка
char act; // переменная для хранения ввода пользователя
int ch; // ввод пользователя приведённый к типу int
int x = 0; // две переменные для хранения координат пользователя
int y = 0;
char map[15][20]; // двумерный массив для хранения игровой карты
// блок инициализации массива
// внешний цикл отвечает за строки
for (int i = 0; i< 15; i++)
{
// внутренний цикл отвечает за столбцы
for (int j = 0; j< 20; j++)
{
map[i][j] = ' ';
}
}
map[0][0] = 'Т'; // помещаем игровой персонаж в начало координат
while (1)
{
system("cls"); // вызов функции очистки экрана
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 20; j++)
{
cout << map[i][j]; // в циклах поэлементно выводится массив
}
cout << "\n"; // переход на новую строку после каждого "ряда"
}
act = _getch();
ch = static_cast<int>(act);
switch (static_cast<int>(act))
{
case -32:
break;
case 27:
exit(0);
break;
case 75:
map[x][y] = ' '; // "Убираем" объект со старой координаты
y--; // изменяем координаты
map[x][y] = 'Т'; // "рисуем" объект на новом месте
break;
case 77:
map[x][y] = ' ';
y++;
map[x][y] = 'Т';
break;
case 80:
map[x][y] = ' ';
x++;
map[x][y] = 'Т';
break;
case 72:
map[x][y] = ' ';
x--;
map[x][y] = 'Т';
break;
}
} // конец цикла while
_getch();
return 0;
}