Na prerii jest suche lato. Czterej rolnicy w okolicy zdają sobie sprawę, że mogą zaokrąglić rynek kukurydzy, spalając uprawy sąsiadów. Ale potrzebują do tego strategii; właśnie tam wchodzisz.
Twoim zadaniem jest napisanie bota, który powie rolnikom, co spalić. Celem jest ukończenie gry z największym obszarem niespalonej ziemi. Pole gry to siatka 32 x 32. Każda komórka może być jedną z następujących czynności:
. - Ground
@ - A bot
# - Ash
W - Wet ground
1,2,3,4,5, or 6 - Fire
Intensywność ognia wzrasta o 1 w każdej turze. Gdy osiągnie wartość 3 lub wyższą, podpali komórki obok niej (poziomo lub pionowo). Gdy ogień osiągnie 6, zamienia się w popiół.
W każdej turze boty otrzymują jako STDIN: bot startujący x, bot startujący y, bot bieżący x pozycja, bot bieżący y pozycja i plansza, oddzielone znakami nowej linii. Przykład:
8
22
6
24
................................
................................
................................
.....................1..........
....................1#1.........
...................1#363........
....................16@1........
.....................31.........
................................
.........1.1....................
........15#62...................
........15@2....................
.........32.....................
................................
................................
................................
................................
................................
................................
................................
................................
................................
....4.1.........................
.....1#3........................
.....@3.........................
.....W..........................
................................
................................
................................
................................
................................
................................
(w tym przypadku jesteś botem w lewym dolnym rogu).
Musisz wypisać trzy znaki, z opcjonalnym znakiem nowej linii, reprezentujące następujące elementy:
Przenieś - jeden z L, R, U, D, or S (stay)
Działanie - jeden z B (burn), P (pour water) or X (do nothing)
Kierunek - jeden z L, R, U, D or S
- kontroluje, na której komórce wykonujesz akcję
Ogień nie wpływa na boty.
Kolejność kolei jest następująca: Wszystkie boty się poruszają; wszystkie boty wykonują akcje; wtedy mają miejsce reguły środowiskowe. Jeśli wylejesz wodę na ziemię, będzie ona mokra ( W
) na jedną turę. Ogień nie rozprzestrzeni się na mokrą ziemię. Jeśli wylejesz wodę na mokrą ziemię, nadal będzie mokra. Jeśli wlejesz wodę do ognia, powróci ona do normalnego podłoża. Nie możesz nic zrobić.
Rundy są prowadzone z 4 botami jednocześnie. Runda kończy się po 50 turach lub gdy jeden bot skończy się z niespalonej ziemi, w zależności od tego, co nastąpi wcześniej. Twój wynik jest obliczany jako liczba naziemnych lub mokrych komórek naziemnych w kwadracie 9 x 9 wyśrodkowanym na początku twojego bota.
Oto przykładowy bot; wybiera losowo wszystkie trzy litery i na ogół spala własne pola.
RandomBurner:
#!/usr/bin/env python
import random
print random.choice('LRUDS')+random.choice('BPX')+random.choice('LRUDS')
Zasady:
- Brak dostępu do systemu plików poza własnym folderem.
- Możesz zapisywać do plików, jeśli chcesz przechowywać trwałe dane między kolejkami, ale tylko do 1 KB na bota
- Nie możesz nadpisywać niczyich botów
- Jeśli wydasz nieprawidłowy ruch, twój bot będzie siedział nieruchomo. Jeśli wydasz nieprawidłową akcję, twój bot nic nie zrobi.
- Proszę trzymać się popularnych języków, które można uruchomić na systemie OSX lub Linux.
Kod kontrolera można znaleźć tutaj.
Wstępne wyniki:
Average of 15 rounds:
---------------------
81 Farmer
56 CautiousBot
42 GetOff
41 Visigoth
40 DontBurnMeBro
37 FireFighter
35 Pyro
11 Protector
Aktualizacja : Dodano Farmera, CautiousBota, GetOff, FireFighter i Pyro.