Не вспомню всех деталей реализации класса по работе с консолью, но могу точно указать направления для поисков следующее:
- Функция для получения handle консоли: GetStdHandle;
- создавался буфер char'ов размером с игровое поле заданного размера (100x80). Затем функцией SetConsoleScreenBufferSize устанавливался буфер консоли размером с нашим буфером;
- Для заполнения консоли по ее хендлу из буфера используется функция WriteConsoleOutput
Обновление буфера консоли необходимо проводить по таймеру, но как он был там реализован уже не припомню. То есть по таймеру необходимо перерисовывать всю консоль.