Tetris с нуля на языке C
Vložit
- čas přidán 25. 10. 2022
- Это видео специально для тех, кто хотел бы получить чистую логическую модель игры и разобраться в ней, не притягивая какую-то специальную среду разработки (IDE) или спецэфическую библиотеку, без которой "ничего не работает". Для первого теста достаточно стандартной библиотеки языка C. Повторить проект сможет каждый, кто написал хотя бы одно консольное приложение. Прикрепить данный код к своему проекту не составит труда, так как вся модель игры тетрис реализована в рамках отдельного модуля. Видео затрагивает вопросы, связанные с организацией игрового цикла и не только. Так, например, с помощью процедуры nanosleep запрограммирована обработка фиксированного числа кадров в секунду, а способ взаимодействия с игроком позволяет достаточно просто осуществить запись или воспроизведение действий этого самого игрока или смоделировать принятие решений соперником. В материале присутствует пример использования данной модели с библиотекой ncurses. Из последней взяты функции рисования разноцветных символов и обработки клавиатурного ввода.
- Věda a technologie
Чистый код, чистое изложение, классический язык программирования. Такой материал в сети большая редкость. Автора благодарю за созданный творческий и очень качественный контент. От просмотра таких роликов получаешь эстетическое удовольствие.
Спасибо за высокую оценку. Интересно было бы узнать о Ваших предпочтениях относительно подачи материала. Стоит ли чаще демонстрировать работоспособность фрагментов алгоритма по отдельности? Что лучше: подготовленный текст речи (как в данном ролике) или "свободное" изложение?
@@tripledistillation1755 Здравия автор. Подготовленный текст лучше, он освобождён от мусорных и шаблонных фраз, обладает информационной полнотой и краткостью. Это и отличает контент от имеющегося на просторах сети. Очень профессиональная озвучка, хороший тембр, акценты. Лучше сохранить этот стиль для своих творений. Заметил, что блоки оформлены не по Си-стилю, однако это экономит место (возможно это удобно, но мне по нраву стиль в оригинале, он выражает структурированность программ и отдельных элементов). Улучшить наглядность можно добавлением разных схем, с одной стороны они намекают на возможность применения ООП, с другой - формируют общее представление о программе на уровне создаваемых "объектов" и их взаимодействии. Таким образом проявляется суть алгоритма и видна целостность программы. Очень хороший прием, который помогает выстраивать материал, это поставить себя на место того, кто его смотрит. Тогда будет понятно нужно ли чаще запускать программу для показа, нужно ли напомнить синтаксис языка (полезно бывает начинающим, которые смотрят видео, но не видели других),... Слишком долгие видео лучше логически разбить на смысловые части, как главы книги. Иногда нужно остановиться и показать, что уже написали, проговорить структуру программы (повторение и обобщение). Приемов очень много разных, важно сохранить авторский стиль! Мне же было интересно смотреть именно твоё видео и сравнивать, это по классике, а это необычный прием, а это создано "с нуля" и без спецсредств. И чем больше видел соответствий, тем по душе было видео. Знаю, что такие видео требуют большой подготовки и труда. Это видно и за это подписка.
Спасибо огромное за подробный и развернутый ответ. Конструктивная обратная связь - вещь крайне полезная. Постараюсь не менять стиль изложения в следующих видео, избегая, по возможности, тех факторов, которые затрудняют восприятие
@@tripledistillation1755 мне тоже очень нравиться,классная подача, без воды.
хотелось бы от тебя увидеть, одно видео, там где все рассказано про программу обучения ассемблера прямо чтоб так же было все расписано как начать что попутно должен знать, что должен знать для понимания дизассемблера.
так же и по си.
большое спасибо,делай больше видео делай у тебя талант преподносить материал.
Да уж, оторваться невозможно ❤
Отличные материал и подача! Спасибо огромное за ваш труд!
Спасибо, очень крутое видео! Можно ещё такого же контента?!
Благодарю за видео!❤
Спасибо огромное!!! Действительно, очень редкий контент!!! Начал изучать язык Си, много воды по началам программирования, но очень редко попадаются видео, где обучение идёт на примерах, а особенно на русском. Лично меня интересует как консольная псевдо-графика, так и (особенно) 2д или 3д графика, ну и разработка оконных приложений (к примеру есть интересные материалы по X11 (создание окна, отработка событий и т.д.), OpenGL и GTK4). У Вас всё по полочкам разложено и очень хорошо преподнесён материал!!!
Спасибо за отзыв! Рад, что материал оказался для Вас полезен
Могу посоветовать использовать еще библиотеку ncurses под Linux- (и вообще Unix-)платформу. Это библиотека, предназначенная для управления вводом-выводом на терминал. Позволяет задавать экранные координаты и цвет выводимых символов. Это так же и хороший фреймворк для создания красивого пользовательского интерфейса в текстовом режиме. Библиотека содержит функции управления окнами и меню, а так же «библиотеку-сестру» panel, управляющую панелями.
S21 есть тут такие ?
Подобное на первой неделе было? 😨
О чём речь?
Передаем привет от студентов школы 21. Нам дали тетрис делать под финал ветки си@@tripledistillation1755
@@user-mu9pr5ch5e нет, на основном обучении, хотя первый групповой это сделать понг, так что нечто похожее да
Пир ту пир 😂
Triple Like!!!
Ждём реализацию на ассемблере
Спасибо тебе большое, добрый человек, за такой полный и грамотный курс. Можешь ли порекомендовать какой-нибудь материал для развития такого навыка мышления как у тебя? Чтобы так по полочкам грамотно выходило одно из другого, литература, практика, всё что угодно, буду благодарен)
Спасибо! На мышление повлиял предмет "математический анализ". Можно посмотреть разные схемы доказательств теорем. Например, критерия Коши о равномерной сходимости числовой последовательности. Это поможет понять - что такое критерий вообще. Любые теоремы с первого курса мехмата подойдут.
Полезно почитать о структуре математических определений. Тогда станет ясно - как строить определение чего угодно.
Про "программирование сверху" - это Стив Макконел "Совершенный код". По-моему, из этой книги.
В общем, математика - наше всё)
Может кто-то подсказать почему копия мейка из проекта выдает ошибку: make: *** No rule to make target 'src/tetris', needed by 'SimpleTetris'. Stop.
Для геймдева лучше Си/Си++, ну может еще раст, чем другие языки. Та же Java имеет свой рантайм, который нужно знать, жрет много памяти и менее производительна. Согласны?
Вот есть Paint на net framework. А возможно создать программу, решающую те же задачи, но без использования фреймворка, исключительно на минимальном наборе библиотек? Думаю, что да
Комментарий в продвижение видео
Спасибо!
Ncurses уже значит не чистый С)) Чистый С это запись в фреймбуффер линукса напрямую, без помогалок)
В видео первый рабочий вариант реализован через стандартный вывод без ncurses
меня постоянно бесило, что я не мог поменять высоту символов, чтобы они стали квадратными
можете скинуть код пожалуйста
Добавлен исходник на tripledistillation.ru
Сайт не работает... =(
сайт лег((
можно исходники, пожалуйста ? 🥺
Всё будет в ближайшее время (я надеюсь), на ресурсе notabug.org/vetal
Никогда не думал что какой то тетрис это просто пистец 😂😅
А почти никто не думает, что любая компьютерная игра это вот этот самый пушистый зверь. Особенно если писать и движок и игру на нём. В типичном интервью о разработке либо "... мы взяли UE4 ...", либо "... мы нарисовали то-то и придумали такой-то концепт ..."
Вот если бы был описан последовательный процесс разработки, начиная с нуля, и, как надо мыслить для того, чтобы придти к тому то и тому. Вот если бы были постепенно озвучены все взаимосвязи начиная с самого начала и постепенно углубляясь, то тогда для таких тупых как я было бы попроще осознать необходимый образ мышления и последовательную логику строительства. Три дня переписываю код по видео и комментирую его так как говорится в видео. Дошел только до 18 минуты. Видео скорее уже для более опытных. Это как привести новоявленного строителя и сказать вот смотри есть фундамент для дома и не упомянуть, какие инструменты используются, чтобы его залить, какие пропорции смеси и из чего она состоит, как рассчитать размер и организовать работу.
Да, почти всегда есть проблема, связанная с некоторым набором принципов. Если что-то кажется базовым и очевидным, то объяснение идёт вскользь. Но если заинтересовал проект, то задавайте вопросы по коду.
Мне кажется уже не актуально писать на C, т.к. сейчас преобладает объектно-ориентированная парадигма, а в играх всё ещё сложней и строится на компонентной системе или ещё лучше - ECS. Видео интересное, подача тоже, но процедурный подход уже слишком сильно устарел...
Как минимум лучше бы было писать на C++ и уже создавать полноценные классы. И будут всё те-же возможности из C по типу указателей и условно те-же умные указатели использовать не обязательно или вообще стандартную библиотеку.
У каждого подхода свои плюсы и минусы. Про языки программирования можно сказать то же самое.
Сейчас преобладает ситуация, когда человек использует бесплатный двигатель с вышеобозначенной компонентной системой и соответствующий указанной парадигме, а затем авторы движка делают этот самый движок не бесплатным. Но зато ничего нигде не устаревает)
Не хотите писать игру на C со стандартной библиотекой и указателями - не пишите. Это ведь всего лишь вариант. Одни из многих. Я не утверждаю, что нужно писать тетрис именно так, как в видео, и никак иначе.
@@tripledistillation1755 компонентная система это не что-то, что только в движках, которые станут платными, а то, что каждый сам может реализовать. Причём для того-же ECS для C++ есть бесконечное число библиотек, не говоря о том, что его и самому не так сложно реализовать. А так в программировании существуют паттерны, всё это основано на ООП парадигме и их знания делают специалиста конкурентным на текущем рынке. Вы же просто сами пишите и учите других людей писать код не конкурентным, чтобы специалиста нигде не брали, т.к. он бы не знал вещей, про которые бы спрашивали на собеседованиях в крупные компании.
Вы меня заинтересовали этой компонентной системой. А крупные компании не публикуют требования к специалисту? Кто-то после написания тетриса сразу идёт на собеседование, думая что "теперь то пора"?
ρяσмσѕм