Я вспомнил как последовательности определялись в одной из версий, где они должны были по отдельности быть! Там рекурсия :-). Механика скорее претендует на банальность. Наверное самая заезженная в казуальном игрострое.
Да ладно Вы… Я сижу и обдумываю, чем я руководствовался, когда придумал такой принцип. Хотя когда год назад писал, все казалось очень правильно и логично :-).
видео с собственно игрой: www.youtube.com/watch?v=ZbTd8v_Dvcc
Хотя тут как раз видно, что по отдельности последовательности не обрабатываются
имеется в виду для последовательности более чем из 3-х шариков? нет. Схема примерно такая: в цикле пробегаем по всем шарикам, каждый шарик опрашивает соседей. Если соседей того же цвета больше 3-х в одном ряду, то шарик помечается как желающий погибнуть.
Следующей функцией все шарики, желающие погибнуть, переносятся наверх в своем ряду, и меняют свой цвет на случайный.
Как делал я. Вместо того, чтобы делать двумерный массив для шариков, я решил сделать одномерный. У каждого шарика сделал 4 указателя на соседей. Примерно таким вот образом:
Вычисление одинаковых шариков, которые хотят погибнуть, при такой модели решается очень просто: шарик спрашивает у своих соседей цвет, и цвет их соседей. Слаживает эти значения, и если они больше какого-то числа говорит что да, хочу умереть!
Для перестановки шариков, нужно изменить указатели на соседей, примерно таким образом.
при этой схеме легко масштабируется, например, на шестиугольное поле, как например Здесь
Мы же говорим о программировании под ОС, где оно есть (DOS). (кстати, почему 21ш а не 21х?). В приведенном автором статьи исходнике тоже ведь вызывается os_print_string.
Я когда-то пересекался с ребятами которые декомпилировали, рефакторили и модифицировали код дьяблы (The Hell mod). Вот там выдержка так выдержка, адская просто.
К сожалению, то же Demo by Louis-Rémi Babé, с монохромными капельками забирает одно ядро процессора. Конечно умом понимаешь, что веб, что новые технологии, что все хорошо, и что так надо. А сердце помнит демки, которые на намного меньших ресурсах показывали всякое, и огорчается.
Хотя стоп, его же можно рендерить картинку сначала пустой, потом полный. и выводить потом эти 2 картинки с наложением. Кажется же в канвасе что-то такое было?
видео с собственно игрой: www.youtube.com/watch?v=ZbTd8v_Dvcc
Хотя тут как раз видно, что по отдельности последовательности не обрабатываются
Следующей функцией все шарики, желающие погибнуть, переносятся наверх в своем ряду, и меняют свой цвет на случайный.
Вычисление одинаковых шариков, которые хотят погибнуть, при такой модели решается очень просто: шарик спрашивает у своих соседей цвет, и цвет их соседей. Слаживает эти значения, и если они больше какого-то числа говорит что да, хочу умереть!
Для перестановки шариков, нужно изменить указатели на соседей, примерно таким образом.
при этой схеме легко масштабируется, например, на шестиугольное поле, как например Здесь
непонятное достижение. Если в .com файл компилировать под тот же DOS, то выйдет не больше