Игра, подобная Roguelike - перемещение игрока по карте

Перемещение врагов, я правильно понял? Без координат затруднительно, правильный ответ - никак. Я писал уже, что не только для врагов, а вообще для каждого движущегося объекта нужно создавать набор переменных (структуру), мало отличающуюся, а то и вовсе не отличающуюся от структуры аватара. Эти структуры логично объединить в динамический массив, возможно, со структурой аватара в качестве нулевого элемента. Основная разница между движущимся объектом (ну, или врагом) и аватаром в том, что аватаром управляет игрок, а движущимся объектоми (врагом) - программа.

Идеально иметь представление обо всех языках вообще. C++ точно нужно, на нём написано слишком много всего. Оптимально знать не менее, чем две среды программирования. Наверное, как-то так: Microsoft Visual C++, C#, Delphi (можно вместе с C++ Builder), Lazarus туда же, ну и скриптовые языки какие-нибудь, если надо, не знаю, пайтон, джава... Добавлять по необходимости. И знать синтаксис всех языков, до которых только можно дотянуться, на уровне, достаточном для понимания алгоритма, заложенного в тексте программы. Также, если собираетесь всерьёз заняться программированием, придётся выучить ассемблеры для всех процессоров, с которыми собираетесь работать. Как минимум, нужно будет знать ассемблер для процессоров Intel x86. Кроме того, неплохо было бы свободно ориентироваться в высшей математике, особенно в разделе, который называется "вычислительная математика". Ну и, туда же математическая логика, алгебра и теория чисел, заодно и дискретная математика и математическая кибернетика. Неплохо также знать и информатику, не на школьном уровне.