Оптимальный многопользовательский алгоритм поколения лабиринта

Итак, я понял, что append = T работает с write.table - но write.table нуждается в переключателе sep, который будет использоваться, поэтому это работает:

write.table(myDF, "myDF.csv", sep = ",", col.names = T, append = T)
5
задан Cody Brocious 20 September 2008 в 12:09
поделиться

5 ответов

Альтернатива ответу свободного пространства должна была бы генерировать случайный лабиринт, затем присвоить каждой ячейке значение, представляющее количество перемещений для достижения конца лабиринта (можно сделать обоих сразу, если Вы решаете, что запускаете в 'конце'). Затем выберите расстояние (возможно, самый высокий с точками n на том расстоянии?) и место плееры в квадратах с тем значением.

8
ответ дан 13 December 2019 в 22:19
поделиться

Самое легкое решение, которое я могу предложить, состоит в том, чтобы случайным образом генерировать весь лабиринт как нормальный, затем случайным образом выбрать точку цели и плеер startpoints. После того как это сделано, вычислите кратчайший путь от каждого startpoint до цели. Найдите среднее число и начните 'сглаживать' (удалите/переместите барьеры - не знают, как это будет работать), пути, которые являются значительно выше его, пока все пути не в надлежащем поле. Кроме того, могло быть возможно взять тех, которые являются значительно ниже среднего числа и вставляют дополнительные барьеры.

0
ответ дан 13 December 2019 в 22:19
поделиться

Что относительно первого выбора положения плееров и цели и пути равной длины и впоследствии создают лабиринт, уважая определенные тракты? Если пути не пересекаются, это должно легко работать, я предполагаю

1
ответ дан 13 December 2019 в 22:19
поделиться

Я приблизился бы к этому путем определения цели и точки входа каждого игрока, затем генерации путей подобной длины для каждого из них к цели. Затем я начал бы добавлять ложные ответвления вдоль этих путей, стараться стараются не связываться с путями другого игрока или иметь подключение ответвления назад к пути. Таким образом, по существу каждое ответвление является тупиком.

Таким образом, Вы гарантируете, что пути подобны в длине. Однако это не позволит плеерам взаимодействовать друг с другом. Можно однако вставить это путем создания ссылок между ответвлениями, таким образом, что точки входа ответвления на любом пути на подобном расстоянии далеко от цели. И на этом ответвлении можно отклониться больше тупиков для забавы и прибыли :-)

1
ответ дан 13 December 2019 в 22:19
поделиться

Выберите свою точку выхода где-нибудь в середине

Запустите свои пути N оттуда, добавив 1 к каждому пути на цикл, пока они не, пока Вы хотите, чтобы они были.

Существуют Ваши стартовые точки N, и они являются всеми одинаковыми длина.

Добавьте дополнительные ответвления прочь строк, пока лабиринт не будет полон.

0
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: