Предложить алгоритм и структуру данных для решения игры Globs (http://www.deadwhale.com/play.php?game=131). Это довольно забавно.Алгоритм и структура данных для решения игры «Глобусы»/заливка залива/«FloodIt»
Укажите временную сложность (большой-O) вашего подхода в терминах N, размер сетки (N> = 14). Достаточно эффективные алгоритмы с низкой степенью сложности.
(MatrixFrog правильно указывает, что эта игра также известна как FloodIt и Smashery дал решение 3 месяца назад в ссылке он приводит ниже. Все, что вы чуваки предполагающие обрезку/жадный только 1 опережающего просмотра, что дает неоптимальные решения.)
Игра генерирует случайную квадратную сетку узлов nxn, где каждый узел окрашен в один из шести цветов (Grn = 1, Ylw = 2, Red = 3, Blu = 4, Pur = 5, Orn = 6) , Уровень 1 имеет сетку 9x9, затем n увеличивает каждый уровень, до 14. На каждом уровне вы можете принять до 25 оборотов, иначе проиграете. На каждом шагу вы выбираете, какой цвет изменить верхний левый узел, например. Grn-> Red, так что любые связанные соседние (horiz/vert) узлы нового цвета будут ассимилироваться в форму, а 1 pt на каждый усваиваемый узел добавляется к вашему счету. Задачей подсчета является заполнение каждой сетки в виде нескольких поворотов, как это возможно, например. если вы сделаете это за 16 оборотов, то ваши 9 неиспользованных ходов => 2 * 9 MULTIPLIER умножат ваш общий накопленный балл.
Очевидно, что существует много способов разложить это, и выбор рекурсивного обратного трассировки по умолчанию с сеткой 14x14 является жизнеспособным соперником; Какие другие типы структур данных делают это? A *? Не зацикливайтесь на оптимальности, мне интересно, есть ли алгоритм «достаточно хорошего».
(я думал, что это может быть интересный проект, чтобы написать код робота и получить глупую высокие баллы. Хотя я набрал 3.5E + 12 все мое fleshware себя.)
Вы пытаетесь решить или переопределить игру? –
Просто решите! Используем ли мы структуры данных вообще или просто сохраняем сетку 14x14? Если мы используем рекурсию, каждый кадр стека будет содержать свой собственный 14x14 сетки + текущий балл. – smci
Собирался ответить, но сыграл еще пару раундов и понял, что я использую глупый взгляд, который я бы не хотел программировать! : D Это немного умнее, чем я считал первым! Хороший вопрос. – silentcontributor