Если вы хотите начать игру программирования я бы рекомендовал изучение простой API и да, вы не хотите использовать существующий движок игры, так как это было бы подавляющим для новичка. Что вам нужно сделать, так это научиться создавать окно, получать вход пользователя, загружать изображения и визуализировать их. Вы можете подойти двумя способами, так как вы знаете, что C#, возможно, вы хотите программировать приложения в основном для окон, если это так, то подумайте о том, чтобы изучить api windows, чтобы сделать это, прежде чем вы даже начнете думать о том, что ваша игра.
Простейший способ сделать это - использовать обертку для системных вызовов, таких как SDL, SFML или Allegro. Есть еще много, но из того, что я знаю, это самые простые в использовании, и они также должны иметь привязки для C#. Преимущество этого подхода в том, что его будет намного проще начать, а также ваша игра будет кросс-платформой.
Как только вы узнаете, как визуализировать изображения на экране и перемещать их по решению вашей панели, вопрос станет очевидным.
Создайте случайное число между 0 и высотой вашего контейнера (минус высота отверстия) с помощью генератора случайных чисел (создайте экземпляр класса Random). Используйте это как начальную позицию. – john
Вопросы, которые задают «где я начинаю», как правило, слишком широки и не подходят для этого сайта. У людей есть свой метод для решения проблемы, и из-за этого не может быть корректного ответа. Дайте хорошее чтение [** Куда начать **] (// meta.programmers.stackexchange.com/questions/6366/where-to-start/6367#6367), затем напишите сообщение. – rene
Опишите себя, что вы знаете о препятствиях: одинаковое расстояние, минимальный зазор, дельта треугольника, та же ширина. В основном вам нужны два числа, которые меняются для каждой пары препятствий и еще два, которые фиксируются по всей площади. – TaW