Цитата:
Сообщение от phomm
2. берём цикл с рандомом и начинаем сращивать разные фигуры (желательно начиная с пента а вероятность более мелких меньше) в монолитную структуру, с учётом только обязательных дырок. если образуются нежелательные дырки - перебрасываем фигуру.
|
На самом деле всё еще проще, ибо генерация делается не для решения задачи компьютером, а для самого гибкого компонента системы -- человека. Об этом нужно помнить каждому разработчику тетриса.
Фигуры пентамино ведь покрывают определенные квадраты, если их объединить. Вот и нужно посчитать площадь в покрываемых квадратах, а затем нагенерить случайных комбинаций комплементарных фигур, плюс уголки на обрезки, как сейчас. И всё. Даже мелкие фигуры "Дос Навигатора" не понадобятся, достаточно будет сегодняшних уголков.
Если комплементарные комбинации заранее известны и прописаны в программе, карту можно генерить сразу в единицах покрываемых квадратов, добавляя или вырезая уголки для красоты и/или сложности.