WARNUNG: Dies ist ein ziemlich komplexes Problem, bei einem King-of-the-Hill-Kampfstil mit einer zusätzlichen Zufälligkeit gewinnt der beste Code möglicherweise nicht immer. Bitte lesen Sie alle Regeln vollständig durch, da dies sehr komplex ist!
FLAVOR TEXT
Bill und Steve beschlossen, ein "freundliches" Duell zu führen, obwohl sie so reich und klug waren, und ließen ihre besten Programmierer versuchen, den Code zu finden, mit dem sie sich gegenseitig schlagen konnten. Sie werden als Programmierer bezeichnet.
OBJECTIVE
Beim Fechten ist es Ihr Ziel, die meisten Treffer bei Ihrem Gegner zu erzielen, während Sie selbst am wenigsten getroffen werden
MOVES
Ihr Code hat die folgenden Auswahlmöglichkeiten für "Bewegungen"
Attack
Parry
Block
Longe
UND
Head
Chest
Feet
SCORING POINTS
Angreifende Schläge Parieren, 1 Punkt
Lunging schlägt Blocking, 1 Punkt
Parieren Beats Lunging, 1 Punkt
Blocking Schläge angreifende, 1 Punkt
Longieren Bindungen angreifende, mit dem lunging Spieler nicht in der Lage zu blockieren oder in die nächste Runde pariert und der Angreifer nicht in der Lage Nächste Runde angreifen oder
aussetzen Gleichstand blockieren Parieren, wobei der parierende Spieler die nächste Runde nicht blockieren oder parieren kann und der blockierende Spieler die nächste Runde nicht angreifen oder aussetzen kann
HEIGHT OF ACTION
Sie wählen auch eine "Höhe" für Ihre Aktion, woraufhin die oben genannten Ergebnisse nur stattfinden, wenn die Höhen beider Spieler mit der Angriffshöhe übereinstimmen. Stimmen die Höhen nicht überein, wählen beide Spieler möglicherweise nicht mehr dieselbe Aktion (die Höhe ist nicht beschränkt) wie in den vorherigen Bindungsrunden, bis ein Punkt erzielt wurde oder alle 4 Aktionen ausgeführt wurden (wenn ein Gleichstand gebrochen wurde, alle Aktionen) sind wieder verfügbar)
CODE REQUIREMENTS
Für jede Runde sollte es den Gegner veranlassen, in der vorherigen Runde zu ziehen (außer in Runde 1), es mit seiner eigenen Runde zu vergleichen, das Ergebnis der vorherigen Runde zu bestimmen und dann die Nummer der nächsten Runde, die Punktzahl und seine Wahl / Position auszugeben für diese Runde
Beispiel:
EINGABE: LC (
LongeBrust ) AUSGABE: Vorrunde: PM vs LC - PM-Ergebnisse! Punktzahl ist jetzt 2-1, Aktion für nächste Runde ist AH (Angriffskopf)
WINNER
Das Spiel endet nach 50 Runden oder nachdem 3 Punkte erzielt wurden
AGAINST OTHER PLAYERS
Die erste Antwort erhält sofort einen garantierten Gewinn, solange es funktioniert, um tatsächlich zu arbeiten / zu spielen. Jede Antwort wird in der Reihenfolge der Veröffentlichung gegen den vorherigen Gewinner gewertet und, falls er gewinnt, zum neuen Gewinner erklärt. Ich bitte Sie, während Sie gewinnen oder auf den Wettbewerb warten, Ihren Code NICHT zu ändern. Wenn Sie einmal besiegt sind, können Sie nicht mehr mit derselben Sprache um den Meisterschaftsstatus kämpfen. Sie können jedoch eine Antwort in einer anderen Sprache einreichen (müssen erheblich unterschiedlich sein, dürfen keine Variationen desselben Grundmaterials verwenden).
Ich werde versuchen, jede Herausforderung zu bestehen und die Ergebnisse in den Kommentaren des Champions und Herausforderers zu veröffentlichen sowie einen neuen Gewinner zu benennen - da ich möglicherweise nicht in der Lage bin, jede Sprache zu beherrschen, insbesondere nicht alle dunkeleren, frage ich Jede mögliche Hilfe, die Sie geben können, um sicherzustellen, dass Ihre Antwort ausgeführt wird, wird berücksichtigt. Vielen Dank!
quelle
Antworten:
Python
En garde!
Mein Krieger kombiniert Unberechenbarkeit mit einem scharfen Auge für Schwäche in der Haltung seines Gegners. Er ist ziemlich zuversichtlich, dass er in der Lage sein wird, aggressive Gegner zu beseitigen, aber sein Trainer (ich) hat möglicherweise bestimmte Szenarien nicht vorhergesehen oder, was vielleicht noch beunruhigender ist, die Regeln falsch interpretiert (Bugs !!).
Wie auch immer, ich bin neu und hoffe, dass dies ein akzeptables Format für den Code ist:
quelle
Ich beanspruche den Hügel!
Dies beinhaltet ein Framework, das sich um die Übereinstimmung, Eingabe und Ausgabe kümmert. Sie müssen lediglich Ihre eigenen Versionen von zwei Funktionen in der Überschrift "AIh" definieren, die den ersten und jeden zweiten Zug definieren.
Dies kompiliert in VS2012 (kostenlose Version). Nach meinem besten Wissen wird es in jedem normenkonformen Compiler kompiliert.
Ich bezeichne diese KI als "ungekünstelten Barbaren". Ich bin sicher, es wird nicht lange dauern, bis jemand es besiegt.
quelle
UNITIALIZED
?!