PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Windows » Тетрисов ещё не написанных сколько?


Тетрисов ещё не написанных сколько?

Сообщений 1 страница 15 из 15

1

Всем, доброго времени суток!

Многие из читающих данную тему воскликнут: "Шо...? Опять?" Отвечу: "Да, я... это... Труды (птичку) хотел..."

А если серьезно, то сколько начинающих программистов в сфере игростроя не пытались написать первым делом знаменитый Тетрис? 90%? Ну, вот я попал в эти 90%. А вы?
Первые попытки по написанию кода в PureBasic были году в 2007. И дальше, чем написание кода по отрисовке стакана и падающих вниз фигур не пошло. И заняло это у меня около месяца времени. Тогда я понял, что написание кода Тетриса не тривиальная задача на тот момент,
в виду моих знаний в сфере программирования.

Дальше были попытки написания других логических игр, но как правило, они были не дописаны и это - плохо, но часть написанного мог использовать в других проектах и это - хорошо. Зачастую недописанное использовал, как черновики или шпаргалки, для последующих экспериментов в программировании. А экспериментов было не мало. В их число вошло даже написание кодека для... ВСЕГО! То есть, что типа WinRAR, универсального архиватора. Зачем, спросите вы, если есть WinRAR? Отвечу, что это просто интересно, интересно проверить свои силы или просто узнать в какой сфере программирования у меня голова лучше работает. Итог: остался каким-то экспериментатором, тестировщиком или как их там называют, но в сфере игростроя. Не, неофициально. Всё на уровне хобби и увлечений.

Одна из последних работ, почти завешенных, был логический конструктор, вернее - конструктор дискретной логики. Программа получилась сложной в понимании пользователем и мало кому интересна. Ну, ладно, о ней в других темах, если кому-нибудь, вообще, будет это интересно.

Данный проект не коммерческий, а скорее демонстрационный и познавательный для начинающих и не только. Единственное, что меня беспокоит это - как преподнести код программы. ~6000 строк кода единым файлом на форум...? Такое себе занятие. Но если заинтересованные появятся, то можно и рискнуть. А так, дам ссылку на код.

И тут встает вопрос: как модерация форума отнесется на размещение ссылок на ЯДиск в теме? На многих форумах, особенно на западных, частенько трут темы с ссылками, которые указывают на программные продукты. Хотелось бы узнать как здесь с этим дело обстоит.

Ряд форумчан сейчас воскликнет, хватит трёпа, давай конкретики, что за Тетрис такой?. Даю...

Классический Тетрис в части форм падающих фигур, уничтожение заполненной строки и начисление 100 очков за строку, а дальше нововедения:

-размер стакана 16х40;
-рост уровня игрока, численно (очки уровней можно вложить в перманентные дополнительные возможности, перманетов 12 штук);
-начисление бонусных очков по окончании матча (бонусные очки можно потратить на использование абилок, абилок 20 штук, но использовать в матче одномоментно можно только 2, выбираются до начала матча)
-возможность установить длительность матча от 1 мин. до 99 ч. 99 мин.
-99 игроков за которых играет ПК, +1 это - пользователь. Итого - 100;
-есть возможность посмотреть игру персонажа, за которого "играет" ПК в реальном времени;
-можно бросить вызов сопернику, за которого играет ПК, и сыграть в дуэль (за выигрыш в дуэли можно получить дополнительные рейтинговые очки);
-учет максимального количества очков, полученных в минуту (идет в расчет получения рейтинговых очков);
-учет максимального количества уничтоженных линий в минуту (идет в расчет получения рейтинговых очков, бонусных очков);
-учет максимального количества поворотов фигуры в минуту (идет в расчет получения рейтинговых очков, бонусных очков);
-учет среднеарифметического количества очков, полученных в минуту (идет в расчет получения рейтинговых очков);
-учет среднеарифметического количества уничтоженных линий в минуту (идет в расчет получения рейтинговых очков, бонусных очков);
-учет среднеарифметического количества поворотов фигуры в минуту (идет в расчет получения рейтинговых очков, бонусных очков);
-начисляются очки за ускорение падения фигуры;
-начисляются очки за падение фигуры "впритирку" к частям заполненности стакана.

Использование перманентов и абилок позволяет улучшить геймплейную часть Тетриса и подстроиться под стиль игры игрока.
Ну, и главное: БЫТЬ ПЕРВЫМ В ТАБЛИЦЕ РЕЙТИНГА среди игроков, за которые "играет ПК!

Разработка игры стоила ~120 часов моей жизни, ~12 кВт/ч электроэнергии, ~ 12 литров дешевого растворимого кофе. Про походы туалет писать не буду.

Если модерация даст добро на размещение ссылки на скачивание архива с игрой на ЯДиске, то за мной не заржавеет.

А?

0

2

Кода написал(а):

И тут встает вопрос: как модерация форума отнесется на размещение ссылок на ЯДиск в теме? На многих форумах, особенно на западных, частенько трут темы с ссылками, которые указывают на программные продукты. Хотелось бы узнать как здесь с этим дело обстоит.

Считаю, что нет ничего плохого в размещении ссылок с ЯДиска, просто нужно ответственно к этому относиться.

У меня на Яндекс Диске есть специальная папка My Products, в которой есть файл блокнота, со ссылками, где, что и когда разместил. Периодически проверяю. Соответственно файлы размещённые в этой папке, больше не перемещаются и не удаляются. Даже если будет заканчиваться место на диске, я скорее удалю старые фотки, но эта папка будет нетронутой. Поэтому, ссылки работают всегда.

Кода написал(а):

Дальше были попытки написания других логических игр, но как правило, они были не дописаны и это - плохо

Тетрис не писал, да и вообще написание игр не вызывало интерес. Но вот с похожими процессами встречался.
Приходится учиться дописывать задачу до конца. Бывает так, что когда остаются мелкие и простые свистелки, мозгу уже не интересно и он переключается на более интересную и сложную реализацию, а тот код, остаётся на чуть позже.
Не считаю, что это плохо. Это нормальная часть творческого процесса, подобно поэту, когда в корзине оказываются недописанные смятые листы. Думаю, что многие программисты с чем-то похожим сталкивались.

Отредактировано Webarion (16.08.2022 15:42:10)

0

3

Webarion написал(а):

Считаю, что нет ничего плохого в размещении ссылок с ЯДиска, просто нужно ответственно к этому относиться.

Дело в том, что последние несколько лет на форумах размещать ссылки на некие программные продукты, даже не коммерческие, стало проблематично. Часто темы  с ссылками удаляют, поэтому интересуюсь, как здесь с этим делом обстоит.

Webarion написал(а):

Тетрис не писал, да и вообще написание игр не вызывало интерес. Но вот с похожими процессами встречался.

Считаю, что написание игр, пусть и очень простых,  весьма полезное для понимания новичками многих аспектов программирования. Здесь и графика, звуки, ИИ, обработка запросов пользователя (клавиатура, мышь, джойстик), БД и многое другое. Количество алгоритмов и их разнообразие порой переплюнет любую другую реализацию кода в других приложениях.

Webarion написал(а):

Приходится учиться дописывать задачу до конца. Бывает так, что когда остаются мелкие и простые свистелки, мозгу уже не интересно и он переключается на более интересную и сложную реализацию, а тот код, остаётся на чуть позже.
Не считаю, что это плохо. Это нормальная часть творческого процесса, подобно поэту, когда в корзине оказываются недописанные смятые листы. Думаю, что многие программисты с чем-то похожим сталкивались.

Ну, "свистелками" они становятся после многократного переписывания и осмысления кода и отношение к ним зачастую становится типа: "копи-паст".
Речь щла о том, что недописанные программы до конца - это плохо, а опыт, полученный - хорошо. Плюс, написанное раньше, часто в других проектах используется, что ускоряет процесс написания кода.

Вижу модерация молчит. Воспринимаю это, как разрешение на публикацию ссылки.

Скачать можно здесь:

https://disk.yandex.ru/d/fwMJBuOcXG-xew

Размер ZIP архива - 633 КБ.
В рапакованном виде - 23,4 МБ.

0

4

Кода написал(а):

А если серьезно, то сколько начинающих программистов в сфере игростроя не пытались написать первым делом знаменитый Тетрис? 90%? Ну, вот я попал в эти 90%. А вы?

Я не пытался. Я Life писал :)

0

5

Кода написал(а):

А если серьезно, то сколько начинающих программистов в сфере игростроя не пытались написать первым делом знаменитый Тетрис? 90%? Ну, вот я попал в эти 90%. А вы?

Право подзабыл. Тетрис не писал, но действительно писал одну игру в юности на ZX-Spectrum. Назвал "Питон", а по сути обычная змейка. А тогда ещё на кассетах игры были. Забавная у меня была история с моими учителями информатики. Я же английского не знал, а программировать мог, учился сам, по журналам. Поэтому, когда создавал заставку, то что видел на заставках других игр, то и писал, думал пристижно будет. Ну и вписал на заставке своей игры "Cracked by Bill Gilbert", сам не понимая. Кстати видимо не я один такой. Из википедии: "Впоследствии разные люди использовали аналогичную подпись в качестве шутки или по непониманию (считая, что это традиция)." Информатик посмотрел, сказал что-то вроде "Хм.. Билл Гилберт)", в тот момент, было стрёмно, вроде сам написал, а вроде и как-бы отдал право другому человеку. Игра так и канула в лету. На кассете же. Но это был и правда мой первый и кажется последний опыт в игростроении.

Кода написал(а):

весьма полезное для понимания новичками многих аспектов программирования

Это да, особенно, когда интересно. А переобдумывать, свои ранее созданные алгоритмы, считаю делом не менее полезным.

0

6

к тетрису интереса нет, наигрался ещё на орионе-128, была игрушка с терисом
сейчас есть готовое
шарики
сокобан
косынка
свободная ячейка
паука накосячил и бросил, может когда и сделаю, виндовый раздражает
может ещё чего напишу
согласен с выше написанным

0

7

Я в тетрис наигрался в китайский "99 in 1" (или что-то типа этого).

Так, с игрушками разобрались.
Что там дальше на следующем уровне? Написание своего языка программирования?

0

8

Smitis написал(а):

Что там дальше на следующем уровне? Написание своего языка программирования?

ага, на асме

0

9

Smitis написал(а):

Я в тетрис наигрался в китайский "99 in 1" (или что-то типа этого).

Так, с игрушками разобрались.
Что там дальше на следующем уровне? Написание своего языка программирования?

Подобная идея посещала, но не в привычном понимании ЯП. Что-то вроде ЯП с синтаксисом на пиктограммах и иконках. Для начинающих, которым либо сложен английский или дети 4-5 лет, которые не знают языков вообще. Потом подумал, а кому это интересно будет? Обычно как бывает? Те, кто стремятся что-то понять и освоить, сутками головы не поднимут, будут стараться изучить, понять, попробовать применить, используя то, что многие используют давно, придуманное умными людьми. А те, кто хотят получить быстрый результат без вложений усилий, обычно начинают искать супер-пупер новомодные движки или ПО, где двумя кликами пишутся программки и в итоге, через пару дней бросают дело.  И помогать этим людям, изобретая новый ЯП, я не захотел.

Хочу спросить. Кто-нибудь уже скачал по ссылке Тетрис? Не вижу реакций. И ещё, исходники кому-нибудь интересно увидеть?

0

10

Как говорилось в известном фильме: "Ёшкин кот!" Короче говоря, у меня делема: выкладывать в этой теме исходник или в разделе "OpenSource". Если в "OpenSource", то получится некое дублирование темы. Или ссылаться в этой теме на "OpenSource". Вообщем, неуклюже у меня получится.

Как поступить? Вести эту тему или распылиться на две? Какие идеи?

0

11

Пока просматривал код своего Тетриса нашел баг с сохранением перманентов (распределенных очков уровней игрока).

Исправленная версия игры: https://disk.yandex.ru/d/xSFDLqXsAsOepw

Размер ZIP архива: 545 КБ.

Отредактировано Кода (20.08.2022 19:14:01)

0

12

После недолгого раздумья пришел к выводу разместить ссылку на исходник в этой теме, чтобы не дублировать тему. Если у модерация посчитает это не верным, то претензий по перемещению ссылки в "сырцы" не имею.

Исходный код был создан в версии PureBasic 5.11 (х86). Код был написан без использования сторонних библиотек, различных модулей, одним человеком, т.е. мной. Использовались только возможности самого PureBasic, так сказать "ванильный" PureBasic 5.11.

Графика (громко сказано, но тем не менее) создавалась в бесплатной и свободно распространяемой программе Pixelformer. Звуки создавались в бесплатной и свободно распространяемой программе LMMS. Операционная система - Win7х64. Железо описывать много не буду, оно довольно скромное: проц - i3, видео - GT 740, память - 8 ГБ.

Рекомендуемое разрешение экрана монитора для игры 1920х1080. Минимальное 1440х900. При меньшем разрешении не весь GUI "влезет" на экран. Комбинация "Alt + Tab" не реализована.

По коду:

Код не является чем-то уникальным и обязательным к изучению, но тем не менее кому-то может оказаться интересным, потому и выкладываю. В коде возможны не точности в комментариях и комментарии не подробны, есть объявления переменных в середине кода, но они не многочисленны. Стиль кода кому-то может показаться не удобным. Ряд решений в использовании тех или иных алгоритмов могут показаться не верным, излишним, не лаконичным, раздутым, не правильно сформулированным, я всё это вижу и знаю. Код "горячий", писался с присеста. То есть практически не обдумывались заранеее подходы к реализации, тех или иных алгоритмов. Почти весь геймплей прописывался сходу. От этого, возможно, баланс в игре нарушен.

Причина подобного написания - быстрота реализации замысла в виде кода. Проверка собственных возможностей в написании быстрого, "горячего" кода. От это "плавают" алгоритмы, то есть используются не очевидные решения в реализации кода.

В коде нет реализации ООП и процедурное программирование практически отсутствует. Весь код находится в одном файле. Поэтому для новичков:

Те кто хочет скомпилировать код в PureBasic скачайте ZIP архив с игрой из поста № 11 в этой теме. Рапакуйте его в удобное место. Скачайте ZIP архив с исходным кодом в этом посте, распакуйте его и закиньте файл из этого архива в папку с игрой. Запустите PureBasic и нажмите F5.

Для удобства чтения кода в настройках PureBasic зайдите в Folding и там, где написано Folding start Keyword добавьте символы ";\" (без кавычек), а где написано Folding end Keyword добавьте символы ";/" (без кавычек).
Для чего это? Можно свернуть/развернуть часть кода нажатием на изображение "+" с левой стороны от кода. И тот код, который вам на данный момент не нужен, просто сверните его.

По ИИ:

ИИ в игре отсутствует. Использовались пресеты по генерации блоков, из которых и формируется заполнение стаканов соперников, за которые "играет" CPU. Поэтому, соперник может играть до окончании времени матча и без ошибок.

И последнее:

При распространении кода игры указывайте ссылку на этот форум. При модификации кода и распространении модифицированного кода и графики указывайте на то, что за основу был взят код от KODA_DOMIN (мой ник) и указывайте ссылку на этот форум. Пусть больше народу, если модерация не против, зайдет на наш форум.

Если возникнут вопросы по коду, спрашивайте, постараюсь ответить на все, по возможности. Конструктив приветствуется, оскорбления, негатив и беспочвенная критика будут игнорироваться.

Ссылка на скачивание исходного кода к игре Tetris: https://disk.yandex.ru/d/Mp49AV_X6H_eJw

Размер ZIP архива: 37 KB.
Размер распакованного файла: 256 KB.

0

13

Кода написал(а):

Часто темы  с ссылками удаляют

Больше всего на форумах, я видел когда ссылка есть, а продукта нет. Неработающие ссылки, это очень неприятно. И многие модераторы возможно так думают обоснованно. Потому-что у таких выкладывальщиков 0 ответственности.

Кода написал(а):

Кто-нибудь уже скачал по ссылке Тетрис?

Поиграл даже малёх) Л. Кэрролл в списке, даже малость ностальгию навеял)

Кода написал(а):

выкладывать в этой теме исходник или в разделе "OpenSource"

Эта тема, по смыслам разбавлена на ответвляющие рассуждения. Ты сам их задал, поэтому гораздо гармоничнее, для твоего продукта, создать отдельную тему. А из этой ветки, либо пусть модератор перенесёт, либо сделать пояснение в твоём первом посте и указать ссылку. Вообще, для любого индивидуального творческого продукта, лучше создавать свою одну тематическую ветку, и там уже вести все беседы по этой теме.
Хотя, если ещё честнее, я думаю, что этому форуму требуется выживание и продвижение. Поэтому, скорее всего модераторы здесь всё схавают.

Отредактировано Webarion (24.08.2022 06:29:21)

0

14

Webarion написал(а):

Хотя, если ещё честнее, я думаю, что этому форуму требуется выживание и продвижение.

потому как многие на старом форуме не знали о существовании этого
там народу было больше, сюда пришло несколько человек

0

15

Webarion написал(а):

Эта тема, по смыслам разбавлена на ответвляющие рассуждения.
...я думаю, что этому форуму требуется выживание и продвижение.

Разбавления на ответвляющие рассуждения были сделаны умышленно 8-) . Добавляется чуть больше живости в общении.

Был когда-то давно зарегистрирован на PureBasic.info. Потом долго не заходил, лет 10. Забыл ник и пароль. Восстановиться не смог. Ну, а потом попытался заново зарегистрироваться, но не смог, регистрация была закрыта. Тот форум был весьма популярен и я там много с кем общался. Тематическая разбивка была разнообразнее. Я часто засиживался в теме игроделов.  Я так понял этот форум - продолжение того и решил зарегистрироваться.

Для роста популярности, наверное, нужно больше интересных и большИх проектов с открытыми исходниками. У меня есть несколько проектов гораздо бОльшие и интереснее (более 20 тыс. строк кода), чем данный (Тетрис). Возможно, тоже опубликую их. Надо просто подготовиться.

0


Вы здесь » PureBasic - форум » PureBasic для Windows » Тетрисов ещё не написанных сколько?