Всем привет! За год обучения программированию, я ни разу не делал консольные игры, просто было не интересно, но недавно решил сделать и мой выбор пал на динозаврика из гугла:

Конечно мы не сможем сделать такое же в консоли, но примерный геймплей сделаем:

Для начала разобьём по пунктам, что нам надо:
1. Что бы двигалось поле
2. Что бы был счётчик
3. Что бы мы могли прыгать
4. Ну и конечно же смерть персонажа
Такое написать не очень сложно, так что даже ребёнок поймёт как это сделать.
Начнём писать сам код.
Изначально нам нужно объявить карту нашей игры:

Карта нашей игры - это двумерный массив, который состоит из 4 строк и 14 строк.
На первой строке у нас подобие неба.
На второй строке у нас пустая строка, в будущем туда будет перемещаться наш динозаврик.
На третьей строке у нас находиться динозаврик, а именно доллар, и много пробелов. Пробелы нужны для ограничения будущих препятствий, потому что если если эти ячейки не будут заняты, то мы не сможешь различать по столбцам где находиться препятствие, и всё будет сходиться к "$|".
На четвёртой строке у нас находиться наша дорога, она будет статичной всё время.
Далее нам нужна функция для вывода матрица:

Тут всё элементарно. Наша матрица состоит из строк и столбцов, значит и нужно проходить сначала по столбцу, а потом по строке.
Так же после каждой строки, нужно перенести строку вниз, для этого существует endl.
В итоге при запуске программы должно выйти вот так:

Но карта дело одно, нужно как то играть начать.
Сначала создадим бесконечный цикл в main, это позволит нам запустить игру без конца
Далее алгоритм будет такой:
Сначала выведем матрицу
Потом остановим поток(работу программы) с помощью sleep(400)
И далее очистим консоль.
Кстати, вместо обычной очистки system("cls"), мы будем пользоваться вот такой функцией:

В итоге код в main будет такой:

Теперь при запуске программы, она не будет завершать код.
Далее реализуем прыжок динозаврика

Прыжок будет на кнопку "W", где сначала мы через форы проводим значок доллара вверх, а потом вниз, попутно удаляя прошлых динозавриков.
Так же добавим флаг для выбора.
Изначально флаг фолз, и если мы нажмём прыжок, то у нас флаг превратиться в тру, и тогда мы не зайдём в другой if, который отвечает за простой.
Под простоем понимается что наш игрок ничего не нажимает, а игра всё равно идёт
Ура, мы можем прыгать, но нужны теперь препятствия.

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

Теперь есть смерть, прыжки, препятствия, осталось только счётчик.
Для этого добавляем ещё одну строку и в первом столбце напишем "Счёт:"

Далее создадим в main переменную с названием count и после сделаем вот так:

И такое добавим везде, где есть вывод матрицы в main.
Ну и всё, теперь вы сможете играть в динозаврика у себя в консоли!
Весь код есть на github
Так же, если вдруг у вас что-то не работает, то можете написать мне в телеге