Internet a échoué. Les attaques DDoS sont désormais endémiques et répandues. C'est à vous de prendre le contrôle et de réparer Internet.
Chaque bot contrôlera 20 nœuds de ce réseau. Chaque nœud est actif ou sûr , a un propriétaire et a une force, qui commence à 2. Chaque nœud actif est connecté à tous les autres nœuds actifs.
Chaque tour, vous recevrez une liste de tous les nœuds actifs avec leur force. Pour chacun des nœuds actifs que vous possédez, vous:
- Désignez un nœud actif vers lequel vous souhaitez transférer toute votre force, ou
- Enregistrer et augmenter sa force
Ensuite, les événements suivants se produisent dans l'ordre :
- Un nœud choisissant de sauvegarder sa force augmentera sa force de 1.
- Tous les nœuds qui choisissent de transférer leur force transfèreront simultanément toute leur force au nouveau nœud.
- Si un nœud a été transféré de la force d'un nœud ennemi, une attaque s'ensuivra. Si un propriétaire ennemi transfère collectivement plus de force que le propriétaire d'origine (et tous les autres attaquants), cet ennemi devient le nouveau propriétaire. La force de ce nœud devient alors la force de l'attaquant. S'il y a une égalité pour la force, le propriétaire sera choisi au hasard.
- Tous les nœuds laissés sans force seront considérés comme sûrs et donnent 1 point au propriétaire.
Après 100 parties de 100 tours, le propriétaire avec les nœuds les plus sûrs de toutes les parties gagne. EDIT: Je l'ai changé de 2000 à 100 tours, car il s'est avéré que les 1900 derniers tours étaient inutiles
IO
Vous recevrez la liste des nœuds actifs (via les arguments de ligne de commande) comme suit:
F20 F4 E7 E2 E20 F2
F
désigne que le nœud est un nœud ami et E
désigne que le nœud est un ennemi.
Pour chacun de vos nœuds amis, vous devez retourner une action (via STDOUT) comme celle-ci:
0,0 1,3 5,0
Ce qui précède signifierait que vous souhaitez augmenter votre force du premier nœud, utilisez votre deuxième nœud pour attaquer le quatrième nœud, et votre dernier nœud transférera sa force le premier nœud (et si personne ne l'attaque, il deviendra un nœud sûr ).
Après votre retour, votre programme devrait se fermer.
Tableau d'affichage
accumulateur a obtenu 3240 points
chic a obtenu 2370 points
dumbot a obtenu 2262 points
random_bot a obtenu 1603 points
smarter_random_bot a obtenu 1319 points
regular_bot a obtenu 1097 points
Le contrôleur peut être trouvé ici: https://github.com/nathanmerrill/NetAttack