forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Мозаика (http://forum.boolean.name/showthread.php?t=19792)

.hush 16.04.2015 19:01

Мозаика
 
Здравствуйте! Есть такая задача: цель игры - заполнить поле, поделенное на фрагменты соотвествующими этим фрагментам фигурами, т.е. собрать мозаику. При этом элементы мозаики могут представлять сразу несколько объединенных фигур, как на этом рисунке:


слева - поле, справа - примеры элементов мозаики.

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

RegIon 16.04.2015 20:50

Ответ: Мозаика
 
Цитата:

Сообщение от .hush (Сообщение 295042)
Здравствуйте! Есть такая задача: цель игры - заполнить поле, поделенное на фрагменты соотвествующими этим фрагментам фигурами, т.е. собрать мозаику. При этом элементы мозаики могут представлять сразу несколько объединенных фигур, как на этом рисунке:


слева - поле, справа - примеры элементов мозаики.

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

Проще паренной репы:
  • Придумал мозайку
  • Распилил на составляющие
  • Запомнил где какой фрагмент, с каким углом и т.д
  • ....
  • Сравниваешь, если dR - вектор от нужного места до координаты < min - фрагмент на месте.
  • GH
  • Профит!

Arton 17.04.2015 00:07

Ответ: Мозаика
 
Разрезать поле на части, запомнить положение каждой детали мозаики.

Цитата:

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

.hush 19.04.2015 11:34

Ответ: Мозаика
 
Сформулирую вопрос иначе:

Делаю игру-паззл, смысл которой заключается в заполнении фигруы объектами-элементами мозаики. Само поле (фигура которую нужно собрать) делится на примитивы, а элементы которыми оперирует игрок могут состоять из одного или нескольких таких примитивов (см. картинки). Задача в общем-то несложная, но в процессе ее решения столкнулся с проблемой - представлением уровней. Если вариант с треугольниками как на первой картинке лекго решается с помощью двумерного массива (в котором 0 означает пустоту, 1 - совбодлный треугольник, а 2 - занятый треугольник, и при размещении элемента мозаики просто проверяются на занятость соответствующие элементы массива, а при загрузке уровня этот массив считывается из файла), то как быть с мозайкой со второй картинки я никак не могу разобраться - вариант с хранением координат каждого примитива явно не является правильным решением. Поэтому прошу помощи - натолкните на мысль как это вообще можно реализовать в виде "нормальной" структуры данных?

Картинки (Фигуры - уровни для заполнения и примеры возможных элементов)


Nex 19.04.2015 13:13

Ответ: Мозаика
 
Цитата:

Сообщение от .hush (Сообщение 295096)
вариант с хранением координат каждого примитива явно не является правильным решением

Учитывая, что ячейки могут быть самых разных форм это самый нормальный вариант.


Часовой пояс GMT +4, время: 10:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot