Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 16.04.2015, 19:01   #1
.hush
AnyKey`щик
 
Регистрация: 03.12.2014
Сообщений: 9
Написано одно полезное сообщение
(для 2 участников)
Мозаика

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


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

Натолкните пожалуйста на мысль, как это лучше сделать, т.к. собственные варианты реализации хоть и работают, но на мой взгляд явно не являются очевидными и наиболее логичными.
(Offline)
 
Ответить с цитированием
Старый 16.04.2015, 20:50   #2
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Мозаика

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


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

Натолкните пожалуйста на мысль, как это лучше сделать, т.к. собственные варианты реализации хоть и работают, но на мой взгляд явно не являются очевидными и наиболее логичными.
Проще паренной репы:
  • Придумал мозайку
  • Распилил на составляющие
  • Запомнил где какой фрагмент, с каким углом и т.д
  • ....
  • Сравниваешь, если dR - вектор от нужного места до координаты < min - фрагмент на месте.
  • GH
  • Профит!
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 17.04.2015, 00:07   #3
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Мозаика

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

т.к. собственные варианты реализации хоть и работают, но на мой взгляд явно не являются очевидными и наиболее логичными.
Хочу послушать.
(Offline)
 
Ответить с цитированием
Старый 19.04.2015, 11:34   #4
.hush
AnyKey`щик
 
Регистрация: 03.12.2014
Сообщений: 9
Написано одно полезное сообщение
(для 2 участников)
Ответ: Мозаика

Сформулирую вопрос иначе:

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

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

(Offline)
 
Ответить с цитированием
Старый 19.04.2015, 13:13   #5
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Мозаика

Сообщение от .hush Посмотреть сообщение
вариант с хранением координат каждого примитива явно не является правильным решением
Учитывая, что ячейки могут быть самых разных форм это самый нормальный вариант.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com