Es ist ein trockener Sommer in der Prärie. Die vier Bauern in der Region erkennen, dass sie den Markt für Mais durch Verbrennen der Ernte ihrer Nachbarn in die Enge treiben können. Dafür brauchen sie eine Strategie. Hier kommst du rein.
Deine Aufgabe ist es, einen Bot zu schreiben, der den Bauern sagt, was sie verbrennen sollen. Ziel ist es, das Spiel mit der größten Fläche an unverbranntem Land zu beenden. Das Spielfeld ist ein 32x32-Raster. Jede Zelle kann eine der folgenden sein:
. - Ground
@ - A bot
# - Ash
W - Wet ground
1,2,3,4,5, or 6 - Fire
Die Intensität des Feuers nimmt mit jeder Runde um 1 zu. Sobald es 3 oder höher ist, werden Zellen daneben (horizontal oder vertikal) in Brand gesetzt. Nachdem das Feuer 6 getroffen hat, verwandelt es sich in Asche.
In jedem Spielzug erhalten Bots als STDIN Folgendes: Bots starten x, Bots starten y, Bots aktuelle x-Position, Bots aktuelle y-Position und das Brett, getrennt durch Zeilenumbrüche. Ein Beispiel:
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..........................
................................
................................
................................
................................
................................
................................
(in diesem Fall bist du der Bot unten links).
Sie müssen drei Zeichen mit einem optionalen Zeilenumbruch ausgeben, der Folgendes darstellt:
Move - einer von L, R, U, D, or S (stay)
Action - einer von B (burn), P (pour water) or X (do nothing)
Richtung - eine von L, R, U, D or S
- steuert, für welche Zelle Sie die Aktion ausführen
Feuer beeinflusst keine Bots.
Die Zugreihenfolge ist wie folgt: Alle Bots bewegen sich; Alle Bots führen Aktionen aus. dann passieren umweltregeln. Wenn Sie Wasser auf den Boden gießen, ist es W
eine Runde lang nass ( ). Feuer breitet sich nicht auf nassem Boden aus. Wenn Sie Wasser auf nassen Boden gießen, bleibt es weiterhin nass. Wenn Sie Wasser ins Feuer gießen, kehrt es zu normalem Boden zurück. Mit Asche kann man nichts anfangen.
Runden werden mit jeweils 4 Bots gespielt. Die Runde endet nach 50 Runden, oder wenn einem Bot der unverbrannte Boden ausgeht, je nachdem, was zuerst eintritt. Ihre Punktzahl wird berechnet als die Anzahl der gemahlenen oder nassen gemahlenen Zellen im 9x9-Quadrat, zentriert an der Stelle, an der Ihr Bot gestartet ist.
Hier ist ein Beispielbot; Es wählt alle drei Buchstaben nach dem Zufallsprinzip aus und brennt in der Regel seine eigenen Felder nieder.
RandomBurner:
#!/usr/bin/env python
import random
print random.choice('LRUDS')+random.choice('BPX')+random.choice('LRUDS')
Regeln:
- Kein Dateisystemzugriff außerhalb Ihres eigenen Ordners.
- Sie können in Dateien schreiben, wenn Sie dauerhafte Daten zwischen den Runden speichern müssen, jedoch nur bis zu maximal 1 KB pro Bot
- Sie dürfen den Bot eines anderen Benutzers nicht überschreiben
- Wenn Sie einen ungültigen Zug ausgeben, bleibt Ihr Bot stehen. Wenn Sie eine ungültige Aktion ausgeben, unternimmt Ihr Bot nichts.
- Bitte halten Sie sich an gebräuchliche Sprachen, die auf einer OSX- oder Linux-Box ausgeführt werden können.
Controller-Code finden Sie hier.
Erste Ergebnisse:
Average of 15 rounds:
---------------------
81 Farmer
56 CautiousBot
42 GetOff
41 Visigoth
40 DontBurnMeBro
37 FireFighter
35 Pyro
11 Protector
Update : Farmer, CautiousBot, GetOff, FireFighter und Pyro hinzugefügt.