Das Internet ist ausgefallen. DDoS-Angriffe sind mittlerweile weit verbreitet. Es liegt an Ihnen, die Kontrolle zu übernehmen und das Internet zu reparieren.
Jeder Bot steuert 20 Knoten in diesem Netzwerk. Jeder Knoten ist entweder aktiv oder sicher , hat einen Besitzer und eine Stärke, die bei 2 beginnt. Jeder aktive Knoten ist mit allen anderen aktiven Knoten verbunden.
In jeder Runde erhalten Sie eine Liste aller aktiven Knoten mit ihrer Stärke. Für jeden Ihrer aktiven Knoten haben Sie folgende Möglichkeiten:
- Bestimmen Sie einen aktiven Knoten, den Sie übertragen möchten gesamte Stärke , oder
- Speichern Sie und erhöhen Sie seine Stärke
Dann passiert das Folgende in der richtigen Reihenfolge :
- Ein Knoten, der seine Stärke speichert, erhöht seine Stärke um 1.
- Alle Knoten, die ihre Stärke übertragen möchten, übertragen gleichzeitig ihre gesamte Stärke auf den neuen Knoten.
- Wurde einem Knoten Stärke von einem feindlichen Knoten übertragen, erfolgt ein Angriff. Wenn ein feindlicher Besitzer gemeinsam mehr Stärke überträgt als der ursprüngliche Besitzer (und alle anderen Angreifer), wird dieser Feind zum neuen Besitzer. Die Stärke dieses Knotens wird dann zur Stärke des Angreifers. Wenn es einen Gleichstand für die Stärke gibt, wird der Eigentümer zufällig ausgewählt.
- Alle Knoten ohne Stärke werden als sicher angesehen und geben dem Besitzer 1 Punkt.
Nach 100 Spielen mit 100 Runden gewinnt der Besitzer mit den sichersten Knoten in allen Spielen. EDIT: Ich habe es von 2000 auf 100 Runden geändert, da die letzten 1900 Runden nutzlos waren
IO
Ihnen wird die Liste der aktiven Knoten (über Befehlszeilenargumente) wie folgt übergeben:
F20 F4 E7 E2 E20 F2
F
bezeichnet, dass der Knoten ein freundlicher Knoten ist, und E
bezeichnet, dass der Knoten ein Feind ist.
Für jeden Ihrer befreundeten Knoten sollten Sie eine Aktion (über STDOUT) wie die folgende zurückgeben:
0,0 1,3 5,0
Das oben Gesagte würde bedeuten, dass Sie Ihre Stärke des ersten Knotens erhöhen möchten, Ihren zweiten Knoten zum Angreifen des vierten Knotens verwenden möchten und Ihr letzter Knoten seine Stärke an den ersten Knoten überträgt (und wenn niemand ihn angreift, wird er zu einem sicheren Knoten ).
Nach der Rückkehr sollte Ihr Programm beendet werden.
Anzeigetafel
Akku bekam 3240 Punkte
nobel bekam 2370 Punkte
Dumbot bekam 2262 Punkte
random_bot bekam 1603 Punkte
smarter_random_bot bekam 1319 Punkte
steady_bot bekam 1097 Punkte
Den Controller finden Sie hier: https://github.com/nathanmerrill/NetAttack