Podstawowe zasady (inne niż moje)
Fabuła
Jest rok 4579, ludzie mają teraz 2 ręce po 1001 palców. Pałeczki stały się oparte na punktach. I @Dennis ma więcej przedstawicieli niż @Martin ... Ręcznie rysowane czerwone kółka są teraz odrzucane ... Jon Skeet trafił 2 tryliony przedstawicieli na każdej stronie SE ... Tak, strasznie wiem
Pałeczki to rozwiązana gra ręczna. Aby obejść ten problem, stworzyłem go zmutowanym. Zwiększyłem liczbę palców.
Zasady gry
Sposób, w jaki się to gra
Każdy zaczyna z 2 rękami. Każda ręka ma 1001 palców. Każda ręka zaczyna się od 1 (jednego) palca w górę na każdej dłoni. Podczas swojej tury możesz „trafić” rękę innych graczy. Aby trafić, wybierz 1 z twoich rąk do uderzenia i 1 z ich rąk do uderzenia. Ręka, która została trafiona, ma teraz liczbę palców, które były na początku ORAZ liczbę palców, które miałeś na dłoni, którą uderzyłeś.
DAWNY
P1: 1,1
P2: 1,1
. P1[0]
trafienia P2[1]
. Teraz palce są P1:1,1
P2:1,2
. Teraz P2[1]
uderza p1[0]
. Palce są teraz P1: 3,1
P2 1,2
.
Jeśli jedna ręka dotrze do 1001 palców w górę lub więcej, wówczas ta ręka jest na zewnątrz. Następnie gracz, który dostał rękę (na swoją turę) może „podzielić”. Dzielenie ma miejsce wtedy, gdy bierzesz dłoń, która jest w środku, i zmniejszasz o połowę liczbę palców (zaokrąglamy w górę) i oddajesz je drugiej ręce, aby ją odzyskała.
DAWNY
P1: 1000,2
P2 7,7
. P2[0]
trafienia P1[0]
. Wynik to P1: 0,2
P2 1,1
. P1[1]
dzieli się na swoją turę, a wynik to P1: 1,1
i P2 7,7
.
Gra kończy się, gdy jeden z graczy wyciągnie obie ręce. Punkty są punktowane na podstawie liczby palców zwycięzcy. Więcej punktów = lepiej. Przegrany nie zdobywa punktów.
Są inne zasady, które są używane, ale te są tutaj stosowane.
Wszyscy grają wszyscy (round robin)
Etap końcowy
Suma punktów za każdą wygraną rundę. Wtedy średnia wszystkich punktów w górę. Podziel sumę przez średnią liczbę punktów i uzyskaj końcowy wynik. Większość punktów wygrywa.
Rzeczywiste zasady
Proszę nie nie starają się rozwiązać grę. Naprawdę muszę go uruchomić: P
Upewnij się, że bot może działać szybko. Przy ocenie długości rund potrwa to trochę
Wszystkie biblioteki potrzebne w twoim programie muszą znajdować się w domyślnej bibliotece Pythona. Wymień także te, które chcesz zaimportować. Import będzie tylko podstawowy import (dla matematyki zrobić: import math
)
Odpowiedzi muszą działać w Pythonie 3.x
Treser
Twój bot będzie własnym plikiem Python 3 z play
funkcją.
play
zostaną przekazane dwie listy po dwie liczby. Ta liczba wskazuje, ile palców jest na każdej ręce. Pierwsza lista to Twoja własna ręka.
Jeśli zdecydujesz się uderzyć rękę drugiego gracza, zwróć listę dwóch bitów. Pierwszy bit to indeks ręki, której używasz do uderzenia ( 0
pierwszy, 1
ostatni), a drugi bit to indeks ręki, którą trafiasz na przeciwnika.
Jeśli zdecydujesz się podzielić, zwróć dowolną inną prawdziwą wartość.
Tada!
Kontroler można znaleźć tutaj . Zapisz każdego bota we własnym pliku i wypisz jego nazwę pliku (bez .py
) w botnames
.
Ostatnia uwaga:
Ty i drugi bot będziecie na zmianę w pierwszej kolejności. Jeśli gra nie zakończy się w 100 000 (sto tysięcy) rundach, gra zostanie zakończona i żaden bot nie wygra.
Kontroler nie jest chroniony przed ruchami trwającymi wiecznie, ale niepotrzebne koszty ogólne zostaną mocno skrzywdzone.
My handler is very simple, your bot must do it's logic then adjust the the finger scores as needed, remember!
Co, więc to my wykonujemy obliczenia dla KoTH?