KOMPLETNY
Sezon Wumpus zakończył się, a wraz z nim życie wielu okrutnych Wumpusów i odważnego Łowcy. Jak również niektórzy tchórzliwi, niemoralni i wręcz głupi Łowcy. Ale pod koniec dnia NascarHunter autorstwa dr Heckle'a przyniósł najwięcej łupów i chwały. Pozdrawiamy cię, och, dzielny ... kierowco?
W Wumpusach jest otwarty sezon, a łowcy z całego świata gromadzą się w Jaskiniach Wumpus, aby spróbować wzbogacić się o cenne Pelty Wumpusa.
Gra
Oparty na klasycznej grze Hunt the Wumpus , z kilkoma odmianami.
Mapa
Dwunastościan . Istnieje 20 pokoi, każde połączone z 3 innymi pokojami, tworząc w zasadzie 3 pierścienie z mostami pomiędzy nimi.
Wumpus
Wumpus to mistyczna bestia. Nikt nie jest pewien, jak to wygląda, ale wszyscy zgadzają się, że jest okrutny. Wumpus mieszka w jaskiniach i lubi jeść martwe rzeczy. Jeśli w jaskini obok Wumpusa znajduje się zwłoki, przeprowadzi się tam i je zje. Jeśli Wumpus zdoła przenieść się do jaskini zawierającej łowców, zabije je również. Jeśli Wumpus usłyszy strzałę w jego pobliżu, wpadnie w panikę i wpadnie do przypadkowego pokoju.
Cechy opcjonalne : Są one obecnie uwzględnione, aby gra była bardziej interesująca, ale można ją usunąć na popularne żądanie, jeśli dodają zbyt wiele losowości.
Wściekły Wumpus: Jeśli Wumpus zostanie postrzelony, ma 20% szans na przeżycie i szaleństwo przez 3 dni. Podczas szaleństwa będzie losowo poruszał się dwa razy dziennie, ale nadal będzie przyciągał zwłoki. Po 3 dniach umrze. Drugi strzał zabije Wumpusa.
Wędrujący Wumpus: Każdego dnia, jeśli nic więcej nie uruchamia Wumpusa, ma on 25% szansy na ruch.
Łowcy
Jednocześnie do jaskini może wejść czterech myśliwych. Jaskinie są ciemne, więc łowcy nie widzą, ale mogą użyć innych zmysłów. Łowcy mogą wąchać Wumpusa w sąsiednim pokoju, wąchać zwłoki w sąsiednim pokoju, słyszeć innych myśliwych poruszających się w sąsiednich pokojach i słyszeć, czy strzała trafi w sąsiedni pokój.
Łowcy mają dwie akcje: strzelaj lub poruszaj się. Łowca może wystrzelić strzałę do sąsiedniego pokoju lub własnego pokoju i poruszać się podobnie.
Rozgrywka
W każdej rundzie łowcy najpierw zauważą otoczenie, a następnie wykonają jeden ruch. Ruch następuje przed strzałami, więc jeśli strzała zostanie wystrzelona do pokoju, z którego wyprowadza się myśliwy, myśliwy przeżyje. Po wykonaniu wszystkich ruchów łowcy strzały są oceniane. Jeśli pojedynczy mieszkaniec i strzała znajdują się w tym samym pomieszczeniu, zostanie on zastrzelony i umrze. Jeśli dwóch lub więcej osób dzieli pokój, jeden zostanie losowo trafiony i umrze. Uwaga: Zwłoki są mieszkańcami, więc martwe ciało może służyć jako częściowa tarcza.
Po wszystkich ruchach łowcy Wumpus zareaguje. Jeśli myśliwy wprowadził się do pokoju z Wumpusem, Wumpus go zje. Jeśli Wumpus się poruszy, zje również mieszkańców nowego pokoju.
Po 100 dniach, jeśli myśliwi nie zabiją Wumpusa lub padną ofiarą, umrą z głodu w jaskiniach.
Kod
Cały kod źródłowy można znaleźć tutaj . Wszystkie zgłoszenia powinny być w Javie, chyba że ktoś chce mi napisać adapter stdIn / stdOut;)
Boty powinny rozszerzyć klasę Łowca. Aby nazwać Łowcę, dodaj konstruktor bez parametrów, które ustawiają pole nazwy. Aby odpowiedzieć, zastąp funkcję getResponse. W tej funkcji, w każdej turze, będziesz otrzymywać tablicę 5 booleanów, która mówi ci o twoim otoczeniu.
status 0 = „Pachniesz wumpusem”
status 1 = „Słyszysz innego łowcę”
status 2 = „Czujesz zwłoki”
status 3 = „Usłyszysz stukot strzałki”
status 4 = „Czujesz innego łowcę w tym samym pokoju co ty”
Klasa Hunter ma 2 miejsca: nextMove i nextDirection, które używają odpowiednio enums Move i Direction. Ruch może być MOVE lub SHOOT, kierunek może być LEWY, PRAWY, BACK lub TUTAJ. Kierunki są spójne, co oznacza, że powrót zawsze spowoduje powrót do poprzedniego pokoju, w którym byłeś, a jeśli wchodzisz z tego samego pokoju, LEWO i PRAWO zawsze będą takie same. Jeśli jednak wejdziesz z innego kierunku, LEWO i PRAWO zabiorą Cię w różne miejsca.
Zapraszam również do wdrożenia własnych metod. Pamięć jest trwała przez cały turniej, co oznacza, że twój łowca zostanie skonstruowany tylko raz. Jednak na początku każdej rundy wywoływana jest metoda newGame (), aby powiadomić myśliwego o rozpoczęciu nowej gry.
Punktacja
Jednocześnie rywalizuje czterech łowców. Jeśli zostanie zabity, skóra Wumpusa jest warta 60 punktów, równo podzielona pomiędzy wszystkich myśliwych, którzy przeżyli. W pełni okrągły styl robin, więc każda kombinacja 4 łowców będzie grać razem.
Uwzględniono 5 przykładowych Łowców: 4 z bardzo podstawową funkcjonalnością i jedną, która pozwala na wkład użytkownika do gry, do celów testowych.
Jeśli masz jakieś sugestie / prośby, daj mi znać!
Koniec jest w zasięgu wzroku!
Światowa populacja Wumpus jest ścigana w alarmującym tempie. Ustawa o ochronie naszych wumpusów ma zostać uchwalona w środę, 17 czerwca. Po tej dacie nie będzie więcej łowców w jaskiniach, a zwycięzca zostanie wybrany.
Tablica wyników
Uwaga : przepraszam, w kodzie był błąd, który mógł powodować, że Łowcy nie żyli w wielu grach. Po naprawieniu nie zmienia to bardzo ogólnie ogólnych rankingów, ale w dużej mierze zmienia statystyki.
Dostępne są wyniki, uruchamiając każdy zestaw myśliwego w 1000 grach. NascarHunter i FullCoverageHunter przewodzą paczce i chociaż dodatek AntiHunter zapewnił Wumpusom 2% doładowania, nadal trzęsą się z nóg przy 32% współczynniku przeżycia tego rodzaju. Strzały od innych myśliwych są bardziej niż kiedykolwiek największym zagrożeniem w jaskiniach.
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)
źródło
int
wartości 0-31? Jesteśmy tu dużymi chłopcami, możemy wykonywać operacje bitowe :)Odpowiedzi:
NascarHunter
Nie ma w tym wiele logiki. Jego zasady są proste: skręć w lewo, spaloną ziemię, powtórz. I, hej, może mieć szczęście!
8 czerwca edycja:
Dodano dodatkową logikę do Nascar, aby uwzględnić przyleganie do Wumpusa w stosunku do jego ostatniego ruchu. Rozważ to jako pit stop, aby pozostać w temacie. Jeśli wyczuje Wumpusa po zestrzeleniu korytarza, to musiał przybyć do jednego z dwóch sąsiednich pokoi, ponieważ umarłby na strzale, który właśnie wziął myśliwy. Skutecznie daje albo Wumpus 2 tury do życia, jeśli nie ruszy się ponownie, albo Nascar 1 tury do życia, jeśli stoi na zwłokach. Uwzględnia również trzecią opcję, jeśli jest to pierwsza tura, ale tylko raz. W końcu prześlę port do FCH, zajęty.
FullCoverageHunter
Podąża za tym samym credo NascarHunter, ale zmienia na przemian jego ścieżkę, co gwarantuje utworzenie pętli o długości 10 unikalnych pokoi. Ponieważ każdy pokój jest wyjątkowy, a my strzelamy w każdym kierunku na pokój, wszystkie pokoje zostają zwolnione. Dotyczy to każdego pokoju początkowego (postulowane przez mojego kumpla Neala, dzięki Neal!). Dodekaedry są takie fajne!
Chciałbym zauważyć, że jest to coś innego niż nasz przyjaciel, MonsterHunter, ponieważ nie próbuje żadnych sztuczek ani prawdziwych „taktyk”. Siłą tego jest fakt, że każde pomieszczenie zostaje ponownie zwolnione: rozwiązanie brutalnej siły. Ma to teoretyczną nogę w NascarHunter, ponieważ Nascar trafi tylko 10 z 20 pokoi, zajmując tylko połowę powierzchni.
11 czerwca edycja:
Dodano wzorzec logiki wykrywania Wumpus z NascarHunter. Powinien obiektywnie poprawić wynik.
Daj mi znać, jeśli wystąpią jakieś błędy, pakiet nie grał dobrze z moim IDE :(
źródło
Borsuk
On nie lubi gości.
źródło
Elmer Fudd
„Ciii. Bądź bardzo cichy, poluję na Wumpusa”
Elmer jest skupiony na zdobyczy i ignoruje wszystko oprócz zwłok i Wumpusa. Próbuje znaleźć zwłoki, potem się wycofuje i zaczyna strzelać. Jeśli poczuje Wumpusa, cofnie się, a jeśli nadal będzie go wąchał, strzeli.
Przepraszam wszystkich programistów Java, jest to prawdopodobnie wyjątkowo brzydkie, pełne błędów składniowych i prawdopodobnie popsułem moją logikę.
Pacyfista
Ten facet jest moralnie przeciwny wszelkiemu sportowi krwi i zastanawia się, jak się w ogóle pojawił w tej sytuacji. Ucieknie od jakiegokolwiek kontaktu i nigdy nie oddaje strzału.
źródło
Łowca potworów
Polujemy na potwora i mamy 4 lata ... Przypomina mi to moją ulubioną grę! Ten myśliwy przejdzie większą część mapy, poruszając się naprzemiennie w lewo-prawo, a jeśli Wumpus będzie w pobliżu, zwabi go, cofając się, aby móc dokładnie określić, gdzie on jest.
Mogłem pozbyć się lastDirection, ale zachowuję semantykę i czytelność :). W rzeczywistości umiera dość często, ale kontroler często umieszcza 2/3 łowcy w tym samym pokoju na początku, a często w pobliżu Wumpusa (może być również w tym samym pokoju) ... więc insta death ^^ '.
źródło
PacingHunter
Tam iz powrotem, pomiędzy pokojami. jeśli pachnie Wumpusem lub słyszy gracza, strzela w lewo, a potem w prawo. jeśli Wumpus jest obok niego na początku, to strzela do pokoju, do którego się przeprowadzi.
}
źródło
ScaredyCat
ScaredyCat boi się wszystkiego. Jeśli pachnie wumpusem lub zwłokami albo słyszy strzałę lub łowcę, biegnie w losowym kierunku. W przeciwnym razie po prostu strzela strzały w losowych kierunkach.
źródło
Zjada pędy i liście
W przeciwieństwie do Pandy sławy książki gramatycznej, ten myśliwy tak naprawdę nic nie je, ale albo strzelamy, jeśli jest Wumpus, albo wyruszamy na szlak, który, mam nadzieję, powstrzyma nas przed chodzeniem w kółko.
źródło
Idomeneus
Idomeneus jest dość prosty - jeśli w pobliżu znajduje się Wumpus lub inny myśliwy, wszędzie strzela ogniem i modli się, by bogini polowania była po jego stronie. Jeśli jest blisko zwłok, czeka na Wumpusa. Nie lubi innych łowców i ucieknie, jeśli zaczną strzelać do niego w pobliżu lub jeśli znajdą się w tym samym pokoju co on. Wreszcie, jeśli się nudzi, losowo krąży po wiecznych korytarzach.
źródło
Emo Wumpus (łowca)
Emo Wumpuses (związane z Wilkami Emo, które czasami używają broni i samolotów latających) ) nienawidzą wszystkiego (szczególnie Javy). Nie rozróżniają Łowców i Wumpusów i próbują zastrzelić ich jednakowo. Nienawidzą także kierowców Nascar i zawsze będą strzelać dobrze. Jeśli w pobliżu nie ma nikogo, kto mógłby strzelać, porusza się w prawo, ale zrobi to tylko trzynaście razy z rzędu, zanim jeszcze bardziej wpadnie w depresję z powodu bycia samemu i spróbuje się zastrzelić (trzynaście to pechowa liczba). Na 99. etapie, jeśli nadal żyją, spróbują się zastrzelić, ponieważ głód jest tak kiepskim sposobem na śmierć.
Wumpusy są większe (i cięższe) niż Wilki, ale ten wciąż głodował do 424 bajtów (w przeciwieństwie do potężnego 2,72 kb NascarHunter).
Dlaczego nie popełnisz samobójstwa? Emo Wumpuses wierzą, że jedynym dobrem, który może uczynić, jest zakończenie cierpienia innych przed samobójstwem. Dlatego zabiją wszystko, co mogą, zanim nadejdzie ich czas na śmierć.
Wumpus? (Anti-Hunter)
Um, co robi Wumpus na liście łowców? Ten facet bardzo się wkurzył, że ludzie zabijają jego krewnych, więc postanowił przebrać się za jednego z nich i dołączyć do polowania. Jego głównym celem jest zabijanie myśliwych. Próbuje ukryć się przy zwłokach, co da mu szansę na tarczę przed łowcami. Jeśli w pobliżu nie ma żadnych łowców, będzie poruszał się w określonym kierunku, dopóki nie zostaną wykryci łowcy, w takim przypadku spróbuje ich zabić, zanim ruszy w innym kierunku.
Niestety większość Wumpusów jest głupia i nadal będzie próbowała go zabić. Niezależnie od tego uważa, że jego ofiary są niezbędne dla dobra Wumpusów wszędzie.
}
źródło
Laomedon
Laomedon wędruje bez celu, próbując znaleźć zwłoki. Po znalezieniu jednego i znalezieniu go, pozostaje w tym samym miejscu obok zwłok. Kiedy wącha Wumpusa, strzela do pokoju Zwłok.
Na nieszczęście dla niego, inni myśliwi nie doceniają jego umiejętności i wydaje się, że dużo go zastrzelili ...
źródło
NealHunter
Po rozmowie na ten temat z moim przyjacielem DoctorHeckle pomyślałem, że fajnie byłoby spróbować samemu. Użyłem pomysłu na przemian w lewo i w prawo, aby pokryć jak najwięcej obszarów, a następnie postanowiłem dodać trochę odpowiedzi do stanów, ale tylko 0 i 1 - niezależnie od tego, czy Wumpus lub myśliwy są w pobliżu. Nie działa tak dobrze jak NascarHunter, co na początku mnie zaskoczyło. Po zastanowieniu zdałem sobie jednak sprawę, że wystrzelenie strzały w losowym kierunku (tak jak to robi) po usłyszeniu łowcy / wąchaniu Wumpusa nie zrobi nic, jeśli poruszą się w tej turze, ponieważ strzały są strzelane do pomieszczeń, ale ruch odbywa się zanim je zabije. Nie do końca tak skuteczny, jak myślałem ... ale nadal działa dobrze!
źródło
WalkingIdiot
Ten idzie, dopóki nie znajdzie wumpusa. Następnie strzela w prawo. Jeśli wumpus nadal tam jest, musi znajdować się po lewej stronie, więc strzel jeszcze raz. Po drodze nie troszczy się o innych myśliwych ani zwłoki, stąd nazwa.
Zostać
Pobyt nie lubi chodzić. Po prostu strzela i pamięta, czy zastrzelił myśliwego.
źródło