Code Bots
Ich hasse private und geschützte Variablen. Ich möchte einfach auf alles zugreifen!
Wenn Sie wie ich sind, dann ist diese Herausforderung für Sie!
Schreiben Sie einen Bot, der in Harmonie mit anderen Bots zusammenarbeitet und andere Bots dazu bringt, das zu tun, was Sie wollen. Sie sind Programmierer und wissen, wie die Dinge funktionieren sollen. Ihre Aufgabe ist es, so viele andere Bots wie möglich auf Ihre Art und Weise zu konvertieren.
Der Code
Sie haben 24 Codezeilen, um Ihren Bot zu schreiben. In jeder Runde führt jeder Bot 1 Zeile nacheinander aus.
Jeder Bot speichert 5 Variablen A
durch E
. A
und B
sind für den persönlichen Gebrauch, C
speichert die nächste auszuführende Zeile, D
speichert die aktuelle Richtung und E
ist eine Zufallszahl. Die Variablen beginnen bei 0, außer D
bei einem zufälligen Wert. Alle Variablen haben nur Speicher 0-23. Zahlen, die größer oder kleiner sind, werden mit 24 moduliert.
In diesem Beitrag benutze ich den Gegner, um der benachbarte Bot zu sein, dem Sie gegenüberstehen
Jede Zeile muss einen der folgenden 5 Befehle enthalten:
Flag
tut nichts. Nur dass du so gewinnstMove
bewegt deinen bot in dieD
th richtung. Wenn ein Bot das Feld bereits belegt, wird keine Bewegung ausgeführtCopy Var1 Var2
kopiert den Inhalt von Var1 in Var2If Condition Line1 Line2
Wenn Condition true ist, wird Line1 ausgeführt, andernfalls Line2Block Var1
blockiert den nächsten Schreibzugriff auf eine Variable
Eine Variable kann wie folgt verwendet werden:
#Var
wird die Variable als Zeilennummer verwenden. Wenn A
17 ist, Copy #8 #A
wird der Inhalt von Zeile 8 in Zeile 17 kopiert. Dabei
*Var
wird die Variable Ihres Gegners verwendet. Copy 5 *C
setzt die C
Variable des Gegners auf 5
Var+Var
, um die beiden Variablen zu addieren. Copy D+1 D
dreht den Bot nach rechts
Wann D
als Richtung verwendet wird, [North, East, South, West][D%4]
wird verwendet
Diese Modifikatoren können verkettet werden: Copy *#*C #9
kopiert die nächste Zeile, die Ihr Gegner ausführt, in Ihren eigenen Code in Zeile 9. **D
Bezieht sich auf die D
Variable Ihres Gegners .
Eine Bedingung wird wie folgt bewertet:
- Wenn
Var
:- Wenn Var
A
durch istC
, wird true zurückgegeben, wenn Var ungleich null ist, andernfalls false. - Wenn Var ist
D
, wird true zurückgegeben, wenn sich ein Bot in derD
Richtung befindet, andernfalls false - Wenn Var ist
E
, wird true zurückgegeben, wenn E ungerade ist, andernfalls false - Wenn Var eine Zeile ist, wird true zurückgegeben, wenn es sich um eine Flag-Zeile handelt
- Wenn Var
- Wenn
Var1=Var2
:- Gibt true zurück, wenn beide gleich sind
A-E
und dieselbe Zahl haben - Gibt true zurück, wenn beide Zeilen sind und der Zeilentyp gleich ist
- Gibt true zurück, wenn beide gleich sind
- Wenn
Var1==Var2
:- Gibt true zurück, wenn beide gleich sind
A-E
und dieselbe Zahl haben - Gibt true zurück, wenn beide Zeilen sind und identisch sind (Flags von verschiedenen Bots sind nicht gleich)
- Gibt true zurück, wenn beide gleich sind
50 Bots von jedem Typ werden nach folgendem Muster in eine toroidale Welt gesetzt:
B...B...B...B...
..B...B...B...B.
B...B...B...B...
..B...B...B...B.
Nach jedem Spiel von 5.000 Runden werden die Flaggen auf jedem Bot gezählt. Sie erhalten einen Punkt, wenn ein Bot mehr von Ihrer Flagge als jede andere Art von Flagge hat. Bei einem Gleichstand zwischen N
Bots werden keine Punkte vergeben.
Es wird 10 Spiele geben und am Ende werden Punkte gesammelt.
Randnotizen
Zeilenende-Kommentare sind zulässig und mit gekennzeichnet //
Der Versuch, etwas zu tun, das keinen Sinn ergibt, wie z. B. das Hinzufügen zu einer Zeile, führt zu nichts
Der Versuch, auf einem nicht existierenden Bot etwas zu tun, führt zu nichts
Die unendliche Rekursion eines If
Willens endet, ohne dass eine Zeile ausgeführt wird
If
ändert den Wert von nicht C
A Block
läuft erst ab, wenn jemand versucht, darauf zu schreiben
Es können mehrere Variablen und Zeilen gleichzeitig gesperrt werden
Block
Wenn Sie eine Variable mehrmals verwenden, wird sie mehrmals blockiert, solange sich die zweite Blockanweisung in einer anderen Codezeile als die erste befindet
Leerzeichen sind nur zwischen Argumenten (und nach dem Befehl) zulässig
Wenn ein Bot kürzer als 24 Zeilen ist, ist Flag der Rest der Zeilen.
Beispielprogramm
Copy 2 C //Skip to the If line
Flag //Where I'm storing my flag
Move //Move in the D'th direction
If D #5 #2 //If there's a bot, copy code, otherwise, move!
Copy #1 *#E //Copy my flag onto a random spot in my bot's code
Copy 2 C //Skip back to the If line
Das Programm wird von meinem Python - Controller ausgeführt werden hier .
Der Java-Controller ist da. Er ist schnell und sieht viel besser aus als der Python- Controller .
Anzeigetafel:
- 6837 $ Kopie
- 3355 Lockheed
- 1695 MindControl
- 967 byzantinisch
- 959 AttackOrElse
- 743 Cadmyllion
- 367 Influenza
- 251 TheCommonCold
- 226 Magus
- 137 HideBlockAttack
- 129 RowBot
- 123 FastMoveCloneDodge
- 112 FastForwardClone
- 96 QuickFreeze
- 71 RepairAndProtect
- 96 SuperFreeze
- 93 RovingVirus
- 80 ForwardClone
- 77 FreezeTag
- 68 Palimpseste
- 62 BlockFreezeAttack
- 51 RushAttackDodge
- 46 Blocker
- 40 TurretMaker
- 37 Nachahmer
- 37 Kamikaze
- 35 FlagInjector
- 33 RandomCopier
- 31 heimtückisch
- 29 HappyAsAClam
- 25 NanoVirus
- 21 Nullifier
- 19 Nanoviris
- 17 BoringCopybot
- 16 Movebot
- 14 Flagbot
- 13 Neutralisator
- 12 Krebs
- 9 DNAbot
- 9 Parasit
- 8 MetaInsidious
- 8 Umbenennung
- 8 AdaptiveBot
- 8 ReproducingBot
- 8 KungFuBot
- 5 QuickFreezerbot
- 4 Angreifer
quelle
Antworten:
Flagbot
Warum etwas tun, wenn andere Bots nett genug sind, mir ihren Code zu geben?
quelle
Tag einfrieren
Fallen Sie den Gegner in einer Schleife, füllen Sie ihn mit Fahnen und gehen Sie zum nächsten Gegner über.
quelle
Copy C+23 C
Dies muss die bösartigste Codezeile xD sein.Or would that not count as your flags?
. Denn wenn sie nicht als Ihre eigenen Flaggen gelten, ist es definitiv keine gute LösungParasit
Warum andere Bots töten? Dieser Bot durchsucht den Code des Gegners und ersetzt nur die Flags.
quelle
$ Copy
Dieser Bot verwendet fast die gleichen Techniken wie Lockheed von COTO, daher werde ich schamlos etwas ausleihen und verbessern.
Dies nutzt eine
C
Sicherheitsanfälligkeit aus, um Blöcke zu brechen und den Neutralisator sogar umzukehren. Aus diesem Grund ist es auch absolut geschrieben. Ich denke, dies könnte brechen, wenn dieC
Schicht wieder eingesetzt wird, aber solange die Schicht konstant ist, kann sie umgeschrieben werden, um sie zu bekämpfen.Aus welchem Grund auch immer, das Fehlen einer Schleife am Ende machte diesen Bot super gut.
quelle
C
Werten aufgerufen werden. Auf diese Weise kann ein Block gestapelt werden, wenn er von einerIf
Anweisung aufgerufen wird. Dies ist der hier verwendete Exploit. $ Copy unterbricht Blöcke (wie die Muschel), indem es immer wiederCopy
in derselben Zeile ausgeführt wird, bis es erfolgreich ist, was einen Vorteil gegenüber Lockheed bietet.Lockheed
Meine dritte (und wahrscheinlich letzte) Unterwerfung in diesem speziellen Bot-Krieg: der Lockheed-Reaktor, oder kurz "Lockheed".
Besonderer Dank geht an @Wasmoo, der seine Entdeckung "" geteilt hat. Wenn Sie eine Variable mehrmals blockieren, wird sie mehrmals blockiert, solange sich die zweite block-Anweisung in einer anderen Codezeile als Ihre erste befindet. " einfach nicht wahr "ausnutzen. Ich nutze es ausgiebig.
Vielen Dank auch an Nathan Merill für die Verwaltung des Wettbewerbs und die Veröffentlichung des Simulators. Der Simulator ist bei der Optimierung von Bots von unschätzbarem Wert. Ich hätte es nicht geglaubt, wenn ich es nicht mit meinen eigenen Augen simuliert hätte, aber das Hinzufügen oder Entfernen des konzeptionell unbedeutendsten Bot-Features kann den Unterschied zwischen großem Erfolg und erbärmlichem Misserfolg ausmachen. Ich bin hin und her gerissen, ob das eine gute Sache ist oder nicht.
quelle
If
Verweis auf diese Zeile schlägt nicht fehl), Sie denselben Wert blockieren (eine einzelne Zeile kann die Zeilen 1-24 mit einer inkrementierenden Variablen blockieren) und Block wurde noch nicht veröffentlicht (jemand hat versucht, diese Variable zu ändern)C
,<block target>
) noch nicht in Kraft ist". Das heißt, die Zeile, in der sich die Blockanweisung befindet, hat keine Relevanz für das Stapeln, mit der Ausnahme, dass bei direkter Ausführung des BlocksC
= Blockanweisungsadresse.Angriff oder sonst
Da Defensivroboter wie die byzantinischen so gut abschnitten, beschloss ich, auch einen Defensivroboter zu bauen.
Dies hat zwei Arten von Mustern, abhängig davon, ob der Feind anwesend ist oder nicht.
wechselt er zwischen dem Kopieren seiner Flagge und dem Kopieren des Codes, der den Feind veranlasst, die Flagge (einen schwachen Replikator) zu kopieren, mit derer seine Flagge kopiertWeitere Tests ergaben einige wichtige Konzepte:
A+7
wird als effektiver als jedes andere Inkrement angezeigt (+200 über dem nächstbesten)Das grafische Beobachten der Simulation über die Java-Benutzeroberfläche hat sehr geholfen. Vielen Dank! Unten ist der neue und verbesserte Code. Ich glaube nicht, dass ich mehr tun kann.
quelle
C
es blockiert hat. Da auf diesem Bot ein rotierender Block basiertC
, werden für jeden seiner Befehle mehrere Blöcke gebildet. Das macht diesen Bot besonders defensiv.If
Liste einen Block pro Zeile hinzu und tippt dabei auf dieC
Variable, die ihn aufgerufen hat. Mit dem 1 Block und 9 Ifs, die die Block-Anweisung ausführen, kann der Bot bis zu 10 Blocks für jede Zeile erhalten (wobei mindestens 24 * 10 * 10 Umdrehungen erforderlich sind). Vielleicht hat das OP die Simulation nicht richtig übermittelt.Row Bot
Bewegt sich, bis ein Roboter gefunden wird.
Wird diesen Roboter in die gleiche Richtung wie sich selbst einstellen.
Kopiert dann seinen Code in den Roboter.
Dies sollte eine Reihe von "Row Bot" -Robotern ergeben. :)
quelle
If
Aussagen groß geschrieben werden. Zweitens sollte es nicht sein Plätze auf beiden Seiten der=
, wieD=*D
.Super einfrieren
Dieser Bot versucht weiterhin, den Bot vor sich einzufrieren, bis er funktioniert, und schreibt dann eine Reihe von Flags in zufällige Linien. Nach 8 Runden dreht er sich und bewegt sich zu einem anderen Gegner weiter.
quelle
Byzantinisch
Ein hoch defensiver Bot, der mehrere Blöcke auf seinen Flags und die sensibelsten Anweisungen, einschließlich Metablöcke (dh Blöcke auf kritischen Blockanweisungen), einrichtet.
Es bewegt sich auch ständig auf unvorhersehbare Weise und pflanzt Flaggen auf bestmöglicher Basis an zahlreichen Orten auf Gegner.
Ich bin mir nicht sicher, wie es funktionieren wird, da ich nicht simulieren kann. Aber wir werden es versuchen. ;)
Haftungsausschluss
Ich habe dies geschrieben, bevor ich freundlicherweise von PhiNotPi darüber informiert wurde, dass bedingte Logik kostenlos ist. Ich habe mich jedoch entschlossen, es zu belassen, da man nie zu viele Bots haben kann.
quelle
Cadmyllion
"Ich habe gerade einen Bot im Battle Royale betreten", sage ich. "Es bewegt sich alle paar Runden, um Angriffe durch langsamere Bots zu verhindern."
"Was meinst du mit langsameren Bots?" Fragt PhiNotPi.
"Bots, die lange Ketten bedingter Logik auswerten", erwidere ich.
"If-Anweisungen, die zu anderen Anweisungen umleiten, einschließlich anderer if-Anweisungen, werden alle in derselben Runde ausgeführt", sagt PhiNotPi.
"Süße massakrierte Regeln des Assembler-Codes!" Ich weine. "Wer ist auf diese Idee gekommen?"
... und so entstand die Geschichte von Cadmyllion.
Cadmyllion: der Bot, der die surreale Fähigkeit ausnutzt, unendlich viele bedingte Ausdrücke in einer einzigen Anweisung zu bewerten, indem er so ziemlich alles, was er tut, bedingt.
Code
quelle
Meta Insidious
Dieser Bot friert ein und konvertiert dann Gegner in weniger effiziente Versionen von Sparrs Insidious , die wiederum Gegner in Bots verwandeln, die für mich Spam-Flags sind. Dies ist wahrscheinlich der komplexeste Bot, den ich geschrieben habe, und ich erwarte daher, dass er schrecklich funktioniert. Es gab keinen Platz zum Blockieren und nur eine Flagge im Code. Das Verwandeln eines Bots in einen heimtückischen Klon dauert ebenfalls zu lange.
Die größte Herausforderung bestand darin, den Code für die heimtückischen Klone so zu schreiben, dass er unabhängig von seiner Position im Bot funktioniert. Das Einfrieren wird entfernt, wenn ich den vorletzten Code genau dort einfüge, wo sich das Einfrieren befindet. Dies startet den Gegner gerade noch rechtzeitig.
quelle
Reparieren und schützen
Dieser Bot repariert seinen eigenen Code und schützt gleichzeitig die neu reparierten Leitungen.
Erläuterung:
Der Anfangswert von
A
ist0
und die Zeilen sind mit 0-23 nummeriert. Wenn dieIf
Anweisung ausgeführt wird und falsch ist, versucht sie, dieselbe Zeile erneut auszuführen. Der Controller erlaubt es einem Bot nicht, dieselbe Zeile zweimal auszuführen, daher wird die Runde beendet undC
inkrementiert auf1
.Die nächste Zeile
Copy #A #A+8
wird unabhängig vom Wert derIf
Anweisung ausgeführt. Der Unterschied besteht darin, dass es zweimal ausgeführt wird, wenn es wahr ist, und einmal, wenn es falsch ist. Wenn die Leitung#A+8
gesperrt ist (was eventuell vorkommt), wird sie durch zweimaliges Ausführen mit tatsächlichem Kopieren und einmaliges Ausführen nur entsperrt. Dann wird die neu kopierte Zeile blockiert, um sie beizubehalten.quelle
A
? Ist es nicht0
? Wenn ja, dann vergleichen Sie in Ihrer ersten Zeile Zeile 0 mit Zeile 16, aber wie ich aus dem OP-Beispielbot verstanden habe, ist die erste Zeile Zeile 1, nicht wahr? Außerdem#C
bezieht sich immer noch Ihre erste Zeile auf genau diese Zeile. Bedeutet dies, dassIf
Sie sich in einer Endlosschleife befinden , wenn die Anweisung false zurückgibt?Neutralisator
Dieser Bot lässt sein Opfer sein gesamtes Programm umschreiben, sodass es 0 Punkte wert ist. Sobald der Virus vorhanden ist, geht er weiter. Dies ist eine Annäherung der verbrannten Erde an den Sieg.
Der Vergleich
*#*C==#7
scheint sich nicht korrekt auf die Verschiebung des Gegners einzustellen, aber der Bot bewegt sich schließlich weiter.quelle
Copy C+1 C
ist alles, was benötigt wird, um eine einzelne Zeile zu überspringen.Copy 23 C
stattdessen dorthin, um zur ersten Zeile zurückzukehren.Heimtückisch
Inspiriert von @Cruncher infiziert dieser Bot andere Bots mit einem kleinen Codeblock und füllt den anderen Bot mit den Flaggen dieses Bots. Diese Bots sitzen dann auf Enten, um weiter anzugreifen, aber sie werden größtenteils mit meinen Flaggen gefüllt sein, wenn sie von jemand anderem erneut infiziert werden.
Edit: Danke an @PhiNotPi für die Golfunterstützung, @overactor für die Effizienzberatung
quelle
Fröhlich wie ne Muschel
Dies ist eine Übung zum Blockieren. Es lief bemerkenswert gut, bis
$Copy
es soweit war.Die Muschel hat 22 Blockbefehle. Da
A
jede Schleife verschoben wird, verweisen sie jedes Mal auf andere Zeilen in der Schleife. Auf diese Weise kann jeder Befehl Blöcke in jeder zweiten Zeile stapeln, wobei maximal 22 Blöcke pro Zeile zulässig sind. Um die vollständig gepanzerte Muschel zu zerbrechen, müsste man also 22 Mal in eine Zeile schreiben.Beispielsweise
#10
wird jedes Mal durch die Schleife durch die folgenden Zeilen geschützt:#10
geschützt durch Linie 7 (7+0+3
= 10)#10
geschützt durch Leitung 0 (0+7+3
= 10)#10
geschützt durch Leitung 17 (17+14+3
= 34 = 10)#10
geschützt durch Leitung 10 (10+21+3
= 34 = 10)Nachdem Zeile 10 von Schleife 3
#10
viermal blockiert wurde, sind vier Schreibvorgänge erforderlich#10
, um die Blöcke zu unterbrechen, und ein fünfter, um die Zeile tatsächlich zu überschreiben.Beachten Sie, dass Blöcke durch ihren
C
Wert verschlüsselt werden und nicht gestapelt werden, wenn die geschützte Leitung bereits durch denselbenC
Wert blockiert wurde . Nachdem 22 Blöcke für jede Zeile erstellt wurden, werden die Blöcke nicht mehr gestapelt.quelle
Bewusstseinskontrolle
Ich denke, es ist nie zu spät?
MindControl basiert auf meiner Vorstellung, dass es einige Zeit dauern würde, mein gesamtes Programm auf den Gegner zu kopieren, währenddessen mein Bot für Angriffe aus anderen Richtungen anfällig ist. Warum also nicht den Gegner dazu bringen, mein Programm zu kopieren, während ich nach Feinden scanne?
Sobald MindControl einen Feind findet, friert es den Feind sofort ein, um die Flucht zu verhindern. Dann lädt es den Downloader auf den Gegner hoch und lässt das Opfer das MindControl-Programm selbst herunterladen. Der Downloader nutzt die Tatsache aus, dass nur wenige Bots verwendet werden
B
Schleife verwenden, bis er alle 24 Zeilen heruntergeladen hat. Wenn der Downloader#19
vonCopy 16 C
nach umschreibtCopy 23 C
, bedeutet dies, dass das Opfer alle Zeilen heruntergeladen hat, und startet sich selbst neu.Die ersten Versionen meines Bots enthalten keine Blöcke. Und es war so verwundbar, dass fast jede Veränderung lähmend wirkt. Also habe ich beschlossen, Blocks basierend auf Wasmoos $ Copy (das auf COTOs Lockheed basiert) hinzuzufügen. Der Nachteil ist, dass es für das Original schwierig ist, Fehler in den Kopien zu korrigieren. Aber das ist alles andere als lähmend und die Punktzahl hat sich erheblich erhöht, sodass ich die Blöcke behalten habe.
AKTUALISIERUNG
Ich habe den Downloader so lange verbessert, bis ein erfolgreiches Umschreiben zur Umgehung von Blöcken durchgeführt wurde. Es bedeutet, dass es noch eine Runde dauert, um den Downloader hochzuladen, aber meine Punktzahl hat sich nach dieser Änderung verdoppelt !! Kann nicht mit Zahlen streiten.
Noch ein Update. Wie Sie vielleicht bemerkt haben, entscheidet MindControl, ob ein Ziel angegriffen werden soll, indem eine zufällige Linie zwischen sich und dem Ziel verglichen wird. Wenn sie übereinstimmen, geht MindControl lediglich davon aus, dass das Ziel bereits infiziert ist, und lässt es in Ruhe. (Randnotiz: Ich habe zum Vergleich eine statische Linie verwendet, die jedoch viele falsch-positive und -negative liefert.) Es stellt sich heraus, dass es viele falsch-negative gibt. Also habe ich mich entschlossen
==
, einige Kleinigkeiten auszunutzen und gerneC+23
zu verändern23+C
. Das Programm ist funktional identisch, aber in den Augen von==
. Jetzt, da MindControl keine Linie mehr hat, die mit einer Linie in einem anderen Bot identisch ist, trifft es jeden unberührten Bot zu 100%. Wiederum stieg der Score signifikant an.Der Downloader wurde nochmals verbessert. Es läuft jetzt auf einer kürzeren Schleife. (was eine große Korrelation mit meiner Punktzahl zu haben scheint)
Nochmals verbesserter Downloader. Verwendet den Original-Bot-Code, um das Hochladen zu beschleunigen. Es wurden auch 2 zufällige Blöcke hinzugefügt, was die Punktzahl zu verbessern scheint
quelle
Angreifer
quelle
Movebot
Wie Flagbot, aber bewege dich, während du Geschenke mit Code annimmst, die zu all unseren Flaggen passen.
quelle
Reproduzierender Bot
Dieser Bot versucht, seinen Gegner einzufrieren und dann seinen gesamten Code in diesen Bot zu kopieren, bevor der andere Bot neu gestartet wird. Dies sollte auch (meistens) funktionieren, wenn der Gegner blockt, obwohl dies alles noch langsamer macht, als es bereits ist.
quelle
Magus
Magus ist ein einfacher Versuch, sich selbst zu vermehren. Es versucht sich in die Programme anderer Bots zu kopieren. (Bearbeitet, um negative Zahlen zu entfernen, Zustand zu korrigieren und Linien zu schneiden.)
quelle
for (int i = 1; i < 25; i++)
. .DNAbot
Dieser Bot repariert seinen eigenen Code, während er sich bewegt und angreift.
quelle
Blocker
quelle
Nachahmer
quelle
Schneller Freezerbot
Versucht, Flags in die Linie zu kopieren, die neben seinem Gegner ausgeführt werden, bewegt sich, wenn es keinen anzugreifenden Feind gibt.
quelle
Blockieren, einfrieren, angreifen
Blockiert alle 24 Zeilen, schleift dann 24-mal, entweder in Bewegung oder greift an und wiederholt dann. Bei einem Angriff wird versucht, den Gegner einzufrieren, dann werden vier Flaggen an zufällige Orte kopiert und dann gedreht.
quelle
Verstecken, Blockieren, Angreifen
Dieser Bot basiert auf Block Freeze Attack. Ich habe die Platzierung einiger
If
Anweisungen geändert , um sie kompakter zu gestalten und mehr Flaggen zu platzieren. Ich habe es auch zu Beginn eines Spiels weggelaufen, um etwas Zeit zum Blockieren zu kaufen.quelle
Roving-Virus
Dieser Bot wandert, bis er einen Feind findet, friert ihn dann ein, ersetzt seinen gesamten Code durch seinen eigenen, friert ihn auf und wandert dann erneut.
quelle
Die Erkältung
Es infiziert Sie praktisch sofort und Sie verbreiten es herum. Basierend auf PhiNotPis Parasite überprüft die Erkältung fast sofort, ob sie ihre Flagge über Ihre kopieren kann. Blockiert einen zufälligen Wert, wenn dies nicht möglich ist. Bewegt sich ein bisschen, wenn es keinen Gegner gibt.
quelle
Grippe
Dies basiert eng auf der Erkältung (die von meinem Parasiten verursacht wurde) mit leicht erhöhter Geschwindigkeit.
quelle
Rebranding
Dieser Bot versucht, zufällig Flaggen in feindlichen Bots zu finden und durch freundliche Flaggen zu ersetzen. Inspiriert von Cancer Bot.
quelle