ПОЛНОЕ
Сезон Wumpus закончился, и с, жизнями многих злобного Wumpus и храброго Охотника. А также некоторые трусливые, аморальные и откровенно глупые охотники. Но в конце дня NascarHunter от доктора Гекла ушел с самой добычей и славой. Мы приветствуем тебя, о храбрый ... водитель?
Это открытый сезон для Wumpus, и охотники со всего мира стекаются в пещеры Wumpus, чтобы попытаться разбогатеть на ценных шкурах Wumpus.
Игра
По мотивам классической игры « Охота на вумпа» , с несколькими вариациями.
Карта
Додекаэдр . Есть 20 комнат, каждая из которых соединена с 3 другими комнатами, образуя в основном 3 кольца с мостами между ними.
Wumpus
Wumpus - мистический зверь. Никто не уверен, как это выглядит, но все согласны с тем, что это свирепо. Вумпус живет в пещерах и любит есть мертвые вещи. Если в пещере рядом с Wumpus есть труп, он переедет туда и съест его. Если случится, что Вумпус войдет в пещеру с охотниками, он также убьет и съест их. Если Вумпус услышит стрелу рядом с ним, он запаникует и побежит в случайную комнату.
Дополнительные черты : они в настоящее время включены, чтобы сделать игру более интересной, но могут быть удалены по популярному запросу, если они добавляют слишком много случайности.
Разъяренный Вумпус: Если Вумпуса застрелят, у него будет 20% выживания и неистовства в течение 3 дней. Во время буйства он будет случайным образом двигаться два раза в день, но все равно будет привлекаться к трупам. Через 3 дня он умрет. Второй выстрел стрелой также убьет Wumpus.
Wandering Wumpus: Каждый день, если ничто другое не вызывает Wumpus, у него есть 25% -ый шанс перемещения.
Охотники
Четыре охотника могут войти в пещеры одновременно. Пещеры темные, поэтому охотники не могут видеть, но они могут использовать свои другие чувства. Охотники могут чувствовать запах Wumpus в соседней комнате, чувствовать запах трупа в соседней комнате, слышать, как другие охотники движутся в соседних комнатах, и слышать, стреляют ли стрелы в соседнюю комнату.
У охотников есть два действия: стрелять или двигаться. Охотник может стрелять в соседнюю комнату или в свою комнату и двигаться аналогичным образом.
Игровой процесс
В каждом раунде охотники сначала отмечают свое окружение, а затем делают один ход. Движение происходит перед стрелами, поэтому, если стрела попадет в комнату, из которой выходит охотник, он выживет. После того, как все ходы охотника сделаны, стрелки оцениваются. Если один человек и стрелка находятся в одной комнате, он будет застрелен. Если двое или более человек живут в одной комнате, один из них будет случайно ранен и погибнет. Примечание: трупы являются обитателями, поэтому мертвое тело может служить частичным щитом.
После всех ходов охотника, Wumpus ответит. Если охотник вошел в комнату с Wumpus, Wumpus съест его / ее. Если Wumpus переместится, он также съест обитателей новой комнаты.
Через 100 дней, если охотники не убили Вумпа или пали жертвами, они умрут от голода в пещерах.
Код
Весь исходный код можно найти здесь . Все материалы должны быть на Java, если кто-то не захочет написать мне адаптер stdIn / stdOut;)
Боты должны расширять класс Hunter. Чтобы назвать своего Охотника, добавьте конструктор без параметров, который устанавливает поле имени. Чтобы ответить, переопределите функцию getResponse. В этой функции каждый ход вам будет передан массив из 5 логических значений, который расскажет вам о вашем окружении.
статус 0 = "Ты чувствуешь запах гумуса"
статус 1 = "Ты слышишь другого охотника"
status 2 = "Ты чувствуешь запах трупа"
status 3 = "Вы слышите грохот стрелы"
status 4 = "Ты чувствуешь другого охотника в той же комнате, что и ты"
Класс Hunter имеет 2 слота: nextMove и nextDirection, которые используют перечисления Move и Direction соответственно. Move может быть MOVE или SHOOT, перенаправление может быть LEFT, RIGHT, BACK или HERE. Направления последовательны, то есть возвращение всегда вернет вас в предыдущую комнату, в которой вы были, и если вы входите из той же комнаты, ВЛЕВО и ВПРАВО всегда будут одинаковыми. Однако, если вы войдете в другом направлении, ВЛЕВО и ВПРАВО перенесут вас в разные места.
Не стесняйтесь применять и свои собственные методы. Память сохраняется на протяжении всего турнира, то есть ваш охотник будет построен только один раз. Однако в начале каждого раунда вызывается метод newGame (), чтобы сообщить вашему охотнику, что началась новая игра.
счет
Четыре охотника соревнуются одновременно. Если его убить, шкура Вумпуса будет стоить 60 очков, равномерно распределенных среди всех выживших охотников. Полный круговой стиль, так что каждая комбинация из 4 охотников будет играть вместе.
В комплект входят 5 образцов охотников: 4 с очень простой функциональностью и один, который позволяет пользователю вводить данные для тестирования.
Если у вас есть какие-либо предложения / пожелания, пожалуйста, дайте мне знать!
Конец в поле зрения!
На население Wumpus в мире охотятся с угрожающей скоростью. Ожидается, что закон «Защити наших грызунов» будет принят в среду, 17 июня. После этой даты в пещерах больше не будет охотников, а победитель будет выбран.
Табло
Примечание: мои извинения, в коде была ошибка, из-за которой Охотники могли оставаться мертвыми в нескольких играх. Исправив это, он не сильно изменит общий рейтинг, но в значительной степени изменит статистику.
Счет идет, запустив каждый набор охотника в 1000 игр каждый. NascarHunter и FullCoverageHunter возглавляют группу, и хотя добавление AntiHunter дало Wumpuses повышение выживаемости на 2%, они все еще трясутся в своих сосущих ногах при уровне выживания 32% в своем роде. Стрелки от других охотников больше, чем когда-либо, представляют самую большую угрозу в пещерах.
1. NascarHunter : 16557175 (17.08)
2. FullCoverageHunter : 15195545 (15.68)
3. Trig : 14459385 (14.92)
4. Idomeneus : 13428570 (13.85)
5. Eats Shoots and Leaves : 12763945 (13.17)
6. WalkingIdiot : 12329610 (12.72)
7. NealHunter : 12287140 (12.68)
8. Unnamed : 11013720 (11.36)
9. MonsterHunter : 10686035 (11.02)
10. Pacer : 9187000 (9.48)
11. Badger : 9042570 (9.33)
12. Stay : 8721210 (9.0)
13. Emo Wumpus : 7831050 (8.08)
14. Paranoid : 7722965 (7.97)
15. Huddle : 7465420 (7.7)
16. ElmerFudd : 7245995 (7.47)
17. Laomedon : 6963845 (7.18)
18. Pacifist : 6944960 (7.16)
19. ScaredyCat : 6937370 (7.15)
20. Wumpus : 114170 (0.11)
Total rounds: 4845000
Humans killed by arrows: 5289674 (1.09)
Humans dead by starvation: 1046024 (0.21)
Humans killed by wumpus: 1887634 (0.38)
Wumpus victories: 1563372 (0.32)
источник
int
значение 0-31? Мы здесь большие мальчики, мы можем выполнять битовые операции :)Ответы:
NascarHunter
Не так много логики для этого. Его правила просты: поверните налево, выжженная земля, повторите. И, может, ему повезет!
8 июня редактировать:
Добавлена дополнительная логика в Nascar для учета смежности с Wumpus относительно его последнего хода. Считай это пит-стопом, чтобы оставаться в теме. Если он чувствует Wumpus после стрельбы по коридору, то он, должно быть, прибыл в одну из двух других смежных комнат, поскольку он умер бы от выстрела, который только что сделал охотник. Он эффективно дает либо ход Wumpus 2, если он не двигается снова, либо ход Nascar 1, если он стоит на трупе. Также учитывается третий вариант, если это первый поворот, но только один раз. В конце концов, я буду портировать на FCH, занят занят.
FullCoverageHunter
Следует тому же кредо NascarHunter, но чередует его путь, который гарантированно образует цикл длиной 10 уникальных комнат. Так как каждая комната уникальна, и мы стреляем в каждом направлении в каждой комнате, все комнаты обстреляны Это верно для любой стартовой комнаты (постулированной моим приятелем Нилом, спасибо Нилу!). Додекаэдры такие крутые!
Я хотел бы отметить, что это отличается от нашего друга, MonsterHunter, так как он не пытается обмана или какой-либо реальной «тактики». Сила этого в том, что каждая комната снова обстреляна: решение грубой силы. Это имеет теоретическую опору для NascarHunter, поскольку Nascar поразит только 10 из 20 комнат, покрывая только половину площади.
11 июня редактировать:
Добавлен логический шаблон обнаружения Wumpus от NascarHunter. Следует объективно улучшить балл.
Дайте мне знать, если есть какие-либо ошибки, пакет не играл хорошо с моей IDE :(
источник
барсук
Он не любит посетителей.
источник
Элмер Фадд
"Шшшш. Будь осторожен, тихий, я охочусь на глупца"
Элмер зациклен на добыче и игнорирует все, кроме трупов и Wumpus. Он пытается найти труп, затем отступает и начинает стрелять. Если он пахнет Wumpus, он отступит, и если он все еще пахнет им, он будет стрелять.
Приношу свои извинения всем Java-программистам, это, вероятно, чрезвычайно уродливо, полно синтаксических ошибок, и я, вероятно, испортил свою логику.
пацифист
Этот парень морально против любого вида кровавого спорта и удивляется, как он вообще оказался в этой ситуации. Он убежит от любого контакта и никогда не выстрелит.
источник
Охотник на монстров
Мы охотимся на монстра и нам 4 года ... Это напоминает мне мою любимую игру! Этот охотник будет ходить большую часть карты, перемещаясь влево-вправо поочередно, и, если Вумпус рядом, он заманивает его, возвращаясь назад, чтобы иметь возможность точно определить, где он находится.
Я мог бы избавиться от lastDirection, но я придерживаюсь семантики и читабельности :). На самом деле, он умирает довольно часто, но контроллер часто помещает 2/3 охотника в одну и ту же комнату с самого начала, и часто рядом с Вумпусом (также может быть в той же комнате) ... так что до смерти ^^ '.
источник
PacingHunter
Назад и вперед, между комнатами. если он пахнет Wumpus или слышит игрока, он стреляет влево, затем вправо. если Wumpus находится рядом с ним для начала, то он снимает комнату, в которую он переедет.
}
источник
Напуганная кошка
ScaredyCat боится всего. Если он пахнет wumpus или трупом или слышит стрелу или охотника, он бежит в случайном направлении. В противном случае он просто продолжает стрелять в случайных направлениях.
источник
Ест побеги и листья
В отличие от «Панды грамматики», этот охотник на самом деле ничего не ест, но мы либо стреляем, если вокруг Вумпус, либо уходим на тропу, которая, как мы надеемся, не позволит нам ходить по кругу.
источник
Идоменей
Идоменей довольно прост - если поблизости находится Вумпус или другой охотник, он везде стреляет в сарроу и молится, чтобы богиня охоты была на его стороне. Если он рядом с трупом, он подстерегает Wumpus. Он не любит других охотников и убежит, если они начнут стрелять рядом с ним, или если они находятся в той же комнате, что и он. Наконец, если ему скучно, он случайно зашагает по вечным коридорам.
источник
Эмо Вумпус (Охотник)
Эмо Вумпусы (связанные с Эмо Волками, которые иногда используют оружие и летают самолеты ) ненавидят все (особенно Java). Они не делают различий между Охотниками и Вумпусами и все равно пытаются их застрелить. Они также ненавидят водителей Nascar и всегда будут стрелять правильно. Если никого нет рядом, чтобы стрелять, они двигаются вправо, но будут делать это тринадцать раз подряд, прежде чем они будут еще более подавлены одиночеством и попытаться застрелиться (тринадцать - неудачное число). На 99-м ходу, если они все еще живы, они попытаются застрелиться, потому что голод - такой неудачный способ умереть.
Вумпусы крупнее (и тяжелее) волков, но этот по-прежнему голодает до 424 байт (в отличие от здоровенных 2,72 кб NascarHunter).
Почему бы просто не покончить жизнь самоубийством? Эмо Вумпусы верят, что единственный поступок добра, который может сделать, - это положить конец страданиям других, прежде чем убить себя. Поэтому они убьют все, что могут, прежде чем наступит их время умирать.
Wumpus? (Анти-Хантер)
Хм, что делает Вумпус в списке охотников? Этот парень очень разозлился, что люди убивают его родственников, поэтому он решил одеться как один из них и присоединиться к охоте. Его главная цель - просто убивать охотников. Он пытается спрятаться возле трупов, что даст ему шанс защитить щит от охотников. Если поблизости нет охотников, он будет двигаться в направлении, пока охотники не будут обнаружены, и в этом случае он попытается убить их, прежде чем двигаться в другом направлении.
К сожалению, большинство Wumpus глупы, и все еще собираются попытаться убить его. Несмотря на это, он считает свои жертвы необходимыми во благо Вумпусов повсюду.
}
источник
Laomedon
Лаомедон бесцельно бродит, пытаясь найти труп. Как только он нашел его и выяснил, где он, он остался в том же месте рядом с трупом. Когда он чувствует запах Wumpus, он стреляет стрелами в комнату Трупа.
К сожалению для него, другие охотники не ценят его навыки, и они, кажется, стреляют в него много ...
источник
NealHunter
Поговорив об этом с моим другом Доктором Хеклом, я подумал, что было бы весело попробовать самому. Использовал идею чередования влево и вправо, чтобы охватить большую часть области, а затем решил добавить немного отклика на состояния, но только 0 и 1 - независимо от того, находятся ли Wumpus или охотник поблизости. Не так хорошо, как NascarHunter, что меня сначала удивило. Поразмыслив, я понял, что стрелка в случайном направлении (как это делает), услышав, как охотник / пахнет вумпусом, ничего не сделает, если он движется в этом повороте, поскольку стрелы попадают в комнаты, но движение проводится, прежде чем он убивает их. Не так эффективно, как я думал ... но все же хорошо работает!
источник
WalkingIdiot
Этот ходит, пока он не найдет Wumpus. Затем он стреляет прямо. Если wumpus все еще там, он должен быть слева, поэтому стреляйте еще раз. По дороге ему нет дела до других охотников или трупов, отсюда и название.
Остаться
Пребывание не любит гулять. Он просто стреляет и вспоминает, стрелял ли он в охотника.
источник