Это второй пост из серии, в которой я расскажу историю своей эволюции как программиста. После Visual Basic я безостановочно писал код на C около двух лет.
Первый пост можно найти здесь.
Это случилось снова, я не смог найти ни код, ни скриншоты, ни бинарники этих проектов. ☹
Я был первокурсником в колледже, когда меня познакомили с языком программирования C, который преподавали до того, как я начал изучать C++ или Java на продвинутых курсах.
Однако изучение C было не таким простым, как мне… Мне было трудно иметь дело с malloc, calloc и указателями. Но в конце концов я получил трюк.
Мне также удалось занять второе место в марафоне по программированию. Победители были с курсов повышения квалификации.
На летних каникулах я хотел бросить себе вызов, написав что-нибудь классное, а потом вспомнил, как мой учитель алгоритмов сказал нам, что мы можем делать что угодно с C. Все на C, наши игры для PlayStation, Linux и Windows, поэтому, если вы изучите C глубоко, вы может быть в состоянии делать удивительные вещи.
Я создаю консольную игру. Знаменитая игра Монополия/Турист:
Это были особенности и проблемы, которые эта игра предполагала для меня:
- Игровая логика: мне нужно было изучить основы игр. Игра обычно представляет собой бесконечный цикл, требующий ввода, создающий случайную или запрограммированную логику и постоянно дающий мотивацию продолжать игру. Цикл do-while и куча всего внутри.
- Выбор между консолью и 3D: В то время я экспериментировал с игровой библиотекой Allegro. Я попробовал каждый образец и учебник и в конце концов сумел сделать несколько сцен. Я помню, что мне нужно было отрендерить пирамиду Yu-Gi-Oh, используя текстуры и фоновый звук. И я подумал, что, может быть, я смогу сделать 3D-версию игры Монополия. Но перед этим я сделал консольную версию, чтобы изучить и ограничить основы, а затем перенес ее в 3D-версию. Вызов принят!
- Монопольная версия. У игры должны быть сотни версий, поэтому я реализовал настраиваемую версию. Свойства, номинал валюты, лимиты, призы, карты и все остальное можно было загрузить из файла конфигурации. Я создал обычную версию игры для Каракаса (Венесуэла) с боливарами в качестве валюты.
- Настоящий искусственный интеллект. Под настоящим искусственным интеллектом я имел в виду сделать игру менее предсказуемой и сложной с помощью генерации реальных случайных чисел для игральных костей 🎲 и карт. Кроме того, я реализовал некоторую логику, чтобы попытаться сделать игру максимально бессрочной, насколько я мог оценить, может ли карта дать игроку гораздо большее преимущество перед другими игроками. Поэтому, прежде чем перевернуть его, игра может попытаться перевернуть еще один, менее «доброжелательный». 🤭
- Потрясающая графика. Это было не то чтобы потрясающе, но это было здорово! Я использовал stdio.h от Borland C, у которого была возможность печатать цветной текст в консоли, чтобы кости, фигурки игроков и игровое поле менялись между синим 💙, красным ❤, зеленым 💚 или желтым 💛 в зависимости от того, чей это игрок. повернуть. Чтобы обеспечить максимально возможное разрешение, используя только код ASCII, мне удалось отрендерить только ту часть доски, через которую проходил игрок.
- 3D-версия: мне не удалось завершить 3D-версию. Мне удается кодировать игральные кости, доску и движущиеся фигурки, но мне нужно время, чтобы добавить игровую логику и спроектировать растровые изображения денег и карт. Колледж начался снова, и мне пришлось заниматься математикой, статистикой и курсовыми проектами. У меня также был парень, поэтому, когда я не училась, мне нравилось его общество. 👨🏽🤝👨🏽🌈
К тому времени я был очень доволен C. Я думал, что это довольно круто и что я могу создавать лучшие приложения, чем с Visual Basic. Мне казалось, что я кодирую Матрицу! 🤣
Я знал о существовании C++ и имел некоторые представления о том, что такое ООП на самом деле, но я знал, что изучу его на следующих курсах, поэтому я не торопился, чтобы как следует освоить C до этого.
Спасибо за чтение! Я могу обновить этот пост позже со ссылками и изображениями того, о чем я говорил.
Первый пост можно найти здесь.
Первоначально опубликовано на https://dev.to 19 мая 2020 г.