Перейти к содержимому
Totoro

Dwarf - копаем ямы быстро и качественно

Рекомендуемые сообщения

okipKER.png

 

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

Поэтому я набросал небольшую (на 100 строк) программку.

 

Всё что она умеет - это копать ямы. Я думаю все мы писали такие программки время от времени, чтобы помочь со строительством или добычей.

И эта программа не представляет из себя ничего особенного нового. Я попробовал слегка оптимизировать процесс выемки породы, но не более.

 

Предлагайте свои улучшения по коду и алгоритму, чтобы создать THE BEST ULTIMATE DIGGER EVER и возвести стандарты рытья ям на новый уровень!

 

Код:

https://pastebin.com/rQ71KRND

 

Установка:

1) Вручную. Копируем текст программы, открываем новый файл командой edit dwarf, нажимаем Insert чтобы вставить код, а затем Ctrl+S и Ctrl+W чтобы сохранить и закрыть файл.

2) С Pastebin. Выполняем команду pastebin get rQ71KRND dwarf.

3) С Hel. Выполняем команду hpm install dwarf.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Предлагайте свои улучшения по коду и алгоритму, чтобы создать THE BEST ULTIMATE DIGGER EVER и возвести стандарты рытья ям на новый уровень!

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Хорошая идея. Надо будет только обработать случай с высотой не кратной 3.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Огромный костыль.  :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Огромный костыль.  :D

 

Почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошая идея. Но мне хватает, и своей простенькой наработки (roboshovel), для рытья ямок. =)

Изменено пользователем davial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошая идея. Но мне хватает, и своей простенькой наработки (roboshovei), для рытья ямок. =)

 

Ну тут тоже код простой. Мне просто интересно, можно ли ещё как-то повысить эффективность и так не сложной программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помнится, на прошлом UT была проблема - найти не очень сложное, но и не слишком тупое задание.

Может, в следующем UT устроить соревнование копалок?

 

Только каждому из участников придется дать отдельные одинаковые поля, не зрелищно получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помнится, на прошлом UT была проблема - найти не очень сложное, но и не слишком тупое задание.

Может, в следующем UT устроить соревнование копалок?

 

Только каждому из участников придется дать отдельные одинаковые поля, не зрелищно получится.

 

Копалки скорее для конкурса-пятиминутки пойдут. Типа тех что были про "напиши 10 раз hello world" или "распарси bmp".

 

Можно копалки-добывалки. Типа дать каждому одинаковый куб породы, окружённой бедроком, и кто эффективнее и быстрее выкопает всю руду.

Не знаю насколько это будет увлекательно.  :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
...

Не знаю насколько это будет увлекательно.  :)

Если сканить породу в кубе(общее выкопанное количество и количество выкопанной руды) и всё это выводить на монитор(для болельщиков), то будет интересно.

"Кубик", естественно, генерить для всех участников одинаковый(копии одного и того же).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если сканить породу в кубе(общее выкопанное количество и количество выкопанной руды) и всё это выводить на монитор(для болельщиков), то будет интересно.

А сканировать чем?

* Отладочная карта сканирует по одному блоку за тик.

* Убрать шум на геосканере можно, но тогда игроки будут тупо сканировать всё поле, не слезая с зарядника, и лишь потом пойдут копать.

* А если игрокам не давать геосканер, то копка станет совсем банальной.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

За прогрессом очистки территории можно хоть как-то наблюдать, в то время как при добыче руды роботы почти всегда скрыты в камне.

на стекло какое-нибудь камень заменить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А сканировать чем?

...

 Чем ? Это уже другой вопрос.

А я говорил, про то : что надо сканировать админу ?

 Достаточно знать положение робота, относительно начала поля для копания.

А всё остальное( поскольку у всех игроков в турнире - поля будут идентичны) - уже будет, в базе данных компьютера, выводящего информацию, на "большой экран" для болельщиков.

  Останется только  - "считать блоки".

Изменено пользователем davial

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я говорил, про то : что надо сканировать админу ?  Достаточно знать положение робота, относительно начала поля для копания.

Положение робота не даёт прямой информации о выкопанных блоках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...