UWAGA: jest to dość skomplikowany problem, w stylu walki na wzgórzu, z dodatkową losowością, najlepszy kod nie zawsze może wygrać. Przeczytaj wszystkie zasady w całości, ponieważ jest to dość skomplikowane!
FLAVOR TEXT
Bill i Steve zdecydowali się na „przyjazny” pojedynek, jednak będąc tak bogatym i sprytnym, postanowili pozwolić swoim najlepszym programistom spróbować znaleźć kod, aby się wzajemnie pokonać. Mówi się, że jest programistą.
OBJECTIVE
W szermierce Twoim celem jest zdobycie jak największej liczby trafień przeciwnika, przy najmniejszym trafieniu
MOVES
Twój kod będzie miał następujące opcje „ruchów”
Atak
Parry
Blok
lonży
I
Głowa
Skrzynia
Feet
SCORING POINTS
Atakowanie uderzeń Parowanie, za 1 punkt
Naciskanie rytmów Blokowanie, za 1 punkt
Parowanie rytmów Rzucanie, za 1 punkt
Blokowanie rytmów Atakowanie, za 1 punkt
Krawaty do rzucania Atakowanie, z tym , że gracz rzucający nie może zablokować lub sparować następnej rundy, a atakujący gracz nie może zaatakować lub zaatakować następną rundę
Wiązanie blokujące Parowanie, gracz parujący nie może zablokować lub sparować następnej rundy, a gracz blokujący nie może zaatakować lub zaatakować następnej rundy
HEIGHT OF ACTION
wybierzesz również „wysokość” akcji, przy czym powyższe wyniki będą miały miejsce tylko wtedy, gdy wysokość obu graczy będzie odpowiadać wysokości ataku. jeśli wysokości się nie zgadzają, obaj gracze nie mogą już wybierać tej samej akcji (wysokość nie jest ograniczona) jak w poprzednich rundach wiązania, aż do zdobycia punktu lub wykonania wszystkich 4 akcji (po rozstrzygnięciu remisu wszystkie akcje są ponownie dostępne)
CODE REQUIREMENTS
dla każdej rundy powinien on nakazać ruch przeciwnikowi poprzedniej rundy (z wyjątkiem rundy 1), porównać go z własną, określić wynik poprzedniej rundy, a następnie podać numer następnej rundy, wynik oraz jej wybór / pozycję dla tej rundy
np .:
WEJŚCIE: LC (klatka piersiowa)
WYJŚCIE: poprzednia runda: PM vs LC - wyniki PM! wynik jest teraz 2-1, akcja w następnej rundzie to AH (głowa ataku)
WINNER
gra kończy się po 50 rundach lub po zdobyciu 3 punktów
AGAINST OTHER PLAYERS
pierwsza odpowiedź otrzyma natychmiastową gwarancję wygranej, pod warunkiem, że faktycznie działa / gra. Każda odpowiedź zostanie oceniona, w kolejności wysłania, względem poprzedniego zwycięzcy, a jeśli wygra, zostanie ogłoszony nowym zwycięzcą. Proszę, aby wygrywając lub czekając na współzawodnictwo, NIE zmieniasz kodu. Po pokonaniu nie możesz już konkurować o status mistrzowski z tym samym językiem, możesz jednak przesłać odpowiedź w innym języku (musi być znacząco różny, bez używania odmian tego samego podstawowego materiału).
Spróbuję uruchomić każde wyzwanie i opublikować wyniki w komentarzach mistrza i pretendenta, a także ogłosić nowego zwycięzcę - ponieważ mogę nie być w stanie posługiwać się każdym językiem, zwłaszcza niektórymi bardziej niejasnymi, pytam należy wziąć pod uwagę wszelką możliwą pomoc, aby upewnić się, że odpowiedź zostanie udzielona. Dziękuję Ci!
źródło
Odpowiedzi:
Pyton
En garde!
Mój wojownik łączy nieprzewidywalność z bystrym okiem słabości w postawie przeciwnika. Jest całkiem pewny, że będzie w stanie pozbyć się agresywnych wrogów, ale jego trener (ja) mógł nie przewidzieć pewnych scenariuszy lub, co bardziej niepokojące, mógł źle interpretować zasady (błędy !!).
W każdym razie jestem nowy, więc mam nadzieję, że jest to odpowiedni format kodu:
źródło
Odbieram wzgórze!
Obejmuje to strukturę, która zajmuje się dopasowaniem, wejściem i wyjściem. Wszystko, co musisz zrobić, to zdefiniować własne wersje dwóch funkcji w nagłówku „AIh”, które określają pierwszy ruch i każdy inny ruch.
Kompiluje się w VS2012 (wersja darmowa). Zgodnie z moją najlepszą wiedzą skompiluje się w dowolnym kompilatorze zgodnym ze standardami.
Nazywam to AI „niewyszukanym barbarzyńcą”. Jestem pewien, że ktoś nie zajmie długo.
źródło
UNITIALIZED
?!