Die erste Erfahrung oder wie man versucht, eine Legende von Code und Magie zu werden

Hallo an alle. Ich heiße Valentine.

Am 10. Juli las ich Oli Ollistekas Beitrag auf Habre über die Plattformodingame.com und beschloss, mich an logischen Aufgaben sowie am Wettbewerb Legends of Code and Magic zu versuchen.

Angesichts der großen Freizeit interessierte ich mich für Rätsel und Aufgaben, die auf dieser Ressource vorhanden sind. Was gut ist, ist, dass jede Aufgabe, jedes Rätsel Sie nach einer Lösung suchen lässt, obwohl dies manchmal nicht offensichtlich ist.

Bild

Nachfolgend finden Sie eine kurze Information über die Regeln des Wettbewerbs sowie einige offensichtliche oder nicht offensichtliche Dinge für Anfänger.

Legenden von Code und Magie


Der Wettbewerb, der vom 25. Juli bis 24. August läuft. Das Spiel ähnelt in gewisser Weise Hearthstone, jedoch wurden einige Dinge verbessert, um das Gleichgewicht zwischen den Spielern zu verbessern.

Das Spiel findet zwischen zwei Spielern statt und dies ist ein rundenbasiertes Spiel. Jeder Spieler hat sein eigenes Kartenspiel, das während der Entwurfsphase vor der Kampfphase aus den verfügbaren Optionen ausgewählt wurde.

Entwurfsphase


Während der Entwurfsphase bildet jeder Spieler sein eigenes Kartenspiel mit 30 Karten. Dementsprechend bietet der Zug in den ersten 30 Zügen dem Spieler eine Auswahl von 3 Karten, von denen er eine auswählen kann.

Zum Zeitpunkt des Schreibens gibt es 4 Arten von Karten im Spiel:

  1. Kreaturen sind im Wesentlichen Monster. Sie sind die Hauptressource des Spielers, die es ihm ermöglicht, den Feind sowohl zu verteidigen als auch anzugreifen.
  2. Grüne Gegenstände. Wird bei verbündeten Kreaturen verwendet. Erhöhen Sie den Wert von Angriff / Verteidigung. Füge der Kreatur Fähigkeiten hinzu.
  3. Rote Gegenstände. Wird bei feindlichen Kreaturen verwendet. Reduziert Angriff / Verteidigung. Fähigkeiten wegnehmen. Kann eine feindliche Kreatur sofort töten (-99 Verteidigung)
  4. Blaue Gegenstände. Diese Karten werden nur für den Gegner verwendet. Sie nehmen oft Leben und den Feind, manchmal füllen sie die Gesundheit seines Besitzers wieder auf.

Außerdem gibt es im Spiel 6 Arten von Fähigkeiten für Kreaturen:

  1. Durchbruch Wenn eine Kreatur mit dieser Fähigkeit mehr Schaden verursacht als die Gesundheit der gegnerischen Kreatur, geht der verbleibende Schaden an den Gegner. (Nützliche Fähigkeit, aber wie die Praxis gezeigt hat, verwenden nur wenige Menschen diese Karten für ihren beabsichtigten Zweck)
  2. Aufladen Ermöglicht es Ihnen, in derselben Runde anzugreifen, die ausgelöst wurde.

    (Unentbehrlich für eine schnelle Kampfstrategie. Fast alle Karten mit der Fähigkeit "Aufladen" haben jedoch einen niedrigen Angriffs- / Verteidigungswert. Wenn sich der Kampf hinzieht, steigt die Wahrscheinlichkeit, zu verlieren.)
  3. Ablassen Ein Angriff auf feindliche Kreaturen / Feinde stellt die Gesundheit wieder her, die mit einem Angriff vergleichbar ist. (Uber-Fähigkeit. Mit der erforderlichen Anzahl von Karten können Sie die Gesundheit auf 50-70 Punkte erhöhen (von den ersten 30), aber die meisten Karten mit dieser Fähigkeit haben auch niedrige Angriffs- / Verteidigungswerte.)
  4. Wache Die Fähigkeit schützt vor direkten Angriffen auf den Spieler. Zuerst musst du Kreaturen mit dieser Fähigkeit zerstören. (Meiner Meinung nach hat die Karte die nützlichste Fähigkeit. Es ist jedoch zu bedenken, dass einige Karten mit dieser Fähigkeit keinen Angriff haben.)
  5. Tödlich. Zerstört eine angreifende Kreatur. (Karten mit einem Flyer haben in der Regel eine einzige Verteidigung, dh sie können maximal eine Karte entfernen.)
  6. Ward. Im Wesentlichen - Schutz vor dem ersten Schaden. Nach dem ersten Angriff verschwindet im Wesentlichen die Verteidigung und die Karte wird normal. (Diese Fähigkeit greift an und fliegt und durchbricht und entwässert. Aber die Karte schützt den Besitzer nicht vor Schaden, so dass ich in den Strategien anderer Spieler nicht viel von der Karte mit der Station gesehen habe.)

Nachdem Sie Karten in seinem Deck ausgewählt haben, endet die Entwurfsphase. Die Kampfphase beginnt

Kampfphase


In dieser Phase besteht das Hauptziel darin, den Gegner zu besiegen und seine Gesundheit auf 0 zu reduzieren.
In diesem Fall hat der Spieler einen Parameter wie Mana. Während der ersten Runde in der Kampfphase beträgt der Manawert 1. In jeder Runde erhöht sich der Indikator um 1, bis er den Maximalwert von 12 erreicht. Manapunkte werden für das Beschwören von Kreaturen sowie für die Verwendung von Gegenständen ausgegeben.

Bild

Zu Beginn jedes Zuges hat der Spieler Informationen über seine Karten auf seinen Händen und dem Tisch sowie Karten auf dem Tisch des Gegners. Basierend auf diesen Daten sollte der Bot (Programm) eine Befehlszeile erstellen.

Jeder Zug vom gesammelten Deck erhält eine zufällige Karte. Wenn die Gesundheit auf 25, 20, 15, 10 oder 5 Punkte sinkt, werden in der nächsten Runde mehr Karten gerufen.

Bild
Im nächsten Zug zieht der Gegner 3 Karten aus dem Stapel.

Wenn die Gegner ungefähr gleich stark sind, endet das Spiel in der Regel mit etwa 200 Zügen. Ich hatte jedoch auch ein Spiel mit 240 bis 250 Zügen. Die Untergrenze liegt bei ca. 80-85, vorausgesetzt, die Spieler haben bei falschem Einsatz von Teams keine Fehler gemacht.

Mögliche nützliche Strategien


Der Hauptunterschied zwischen diesem Wettbewerb und dem vorherigen Code of Kutulu besteht darin, dass es sich um ein Kartenspiel handelt und dass es ein Element von Zufall und Glück gibt.

Während des Wettbewerbs wurden verschiedene Strategien getestet:

  1. Eine Reihe von Kreaturen mit einer Ladung, einem Flug und einem Durchbruch für einen schnellen Sieg.
  2. Eine Reihe von Kreaturen mit Wache für maximale Sicherheit + Karten mit Ladung und Abfluss.
  3. Satz von Kreaturen mit Wache + grünen und roten Karten.
  4. Eine Reihe von Kreaturen mit maximalem Angriff / Verteidigung, Vorhandensein von Indikatoren + für die Gesundheit des Spielers oder - für die Gesundheit des Gegners und nur dann, abhängig von seinen Fähigkeiten.

Herkömmlicherweise können Strategien in zwei Kategorien unterteilt werden.

Schneller Sieg - Kreaturen greifen nur den Feind an und bewachen Kreaturen, falls vorhanden.
Vollständiger Sieg - die Kreaturen des Feindes werden zerstört, und wenn es keine Kreaturen gibt, dann der Feind selbst.

Nun kurz zu jeder Strategie:

Set von Kreaturen mit Ladung, tödlich und Durchbruch für schnellen Sieg


Die Strategie zeigte ihr Scheitern aufgrund eines zufälligen Elements. Du kannst viele Karten ziehen, die 1-2 Mana kosten, aber die Startkarten enthalten überhaupt keine. Diese Strategie sollte nur für einen schnellen Sieg verwendet werden und wenn der Feind keine einzige Kreatur mit Wache gerufen hat. Während des Wettbewerbs traf ich diese Strategie mit anderen Spielern, sogar von oben, aber in der Regel verloren sie schnell, wenn das Spiel 100-120 Züge überschritt.

Set von Kreaturen mit Wache für maximale Sicherheit + Karten mit Ladung und Abfluss


Eine der besten Strategien für ein schnelles Spiel. Kartenverteidiger angerufen. Und wenn es keine gibt, dann laden und entleeren. Mit dieser Strategie können Sie die feindlichen Verteidiger-Kreaturen effektiv zerstören und gleichzeitig geschützt bleiben. Im Falle eines Übergangs zu einem langen Spiel verliert die Strategie nicht an Stärke, da es Kreaturen mit Wache gibt, die hohe Angriffs- / Verteidigungsindikatoren haben.

Satz von Kreaturen mit Wache + grünen und roten Karten.


Die Strategie ist schlechter als die vorherige, da Gegenstandskarten eher ein Hilfscharakter als ein Grundcharakter sind. Daher wurde beschlossen, die Priorität auf Kreaturen zu verlagern.

Eine Reihe von Kreaturen mit maximalem Angriff / Verteidigung


Bei der Ausarbeitung dieser Strategie wurde er von der Arbeit der Bot-Bosse sowie mehrerer Spieler geleitet. Die Strategie ist nur für ein langwieriges Spiel geeignet, da in den ersten Zügen in der Regel nicht genügend Mana vorhanden ist, um beschworen zu werden.

Nachteile Sowie Problemumgehungen


Beim Kompilieren eines Bots für die letzte Strategie wurde festgestellt, dass dieser Befehl als Aktion nicht legal markiert ist, wenn das Anruf-Team auf eine Karte abzielt, die aufgrund fehlenden Manas nicht aufgerufen werden kann, oder auf eine Karte, die nicht angegriffen werden kann. Einerseits ist dies ein wunderbares Merkmal des Wettbewerbs. Nur wenige Teilnehmer haben die Gesundheit von Kreaturen während eines Angriffs oder die Auswirkungen von Kartengegenständen berücksichtigt. Wenn also alle Kreaturen eine bereits zerstörte Karte angegriffen haben, haben alle Teams automatisch auf nicht legal umgestellt.

Es wurde jedoch möglich, nur eine große Anzahl von Teams gleichzeitig zu bilden.

Bild

Theoretisch können Sie Teams schreiben, die mit einer Karte für jede feindliche Kreatur und dann für den Feind selbst angreifen. Schreiben Sie alle möglichen Kombinationen von SUMMON und ATTACK.

Was getan wird, wird ausgeführt, und der Rest wird in Aktion gehen, ist nicht legal.

Ergebnisse


Zum Zeitpunkt des Schreibens befindet sich mein Bot auf dem 120. Platz der Bronzeliga.

Und bei 950 Platz in der allgemeinen Spitze. Am Ende des Wettbewerbs rollte ich jedoch aus den Top 1000 heraus.
Bescheidenes Ergebnis. Dies ist teilweise auf die ersten Erfahrungen mit der Teilnahme am Wettbewerb zurückzuführen. Spielerbewertungen werden basierend auf dem True Skill-Algorithmus berechnet. Nach diesem Algorithmus werden zu Beginn 10 bis 20 Kämpfe mit den Besten in dieser Liga ausgetragen, basierend auf den Ergebnissen wird der Startplatz in der Tabelle bestimmt, und dann werden Kämpfe mit einer Wertung von ± 10 ausgetragen. Jeder Sieg erhöht die Wertung, jede Niederlage sinkt. Es werden also mehr als 100 Kämpfe ausgetragen und der Platz in der Tabelle bestimmt. Und dann kämpft der Bot weiter mit Spielern, die ihr Programm zur Verarbeitung senden. So können Sie Ihre Bewertung einfach erhöhen, indem Sie in der Tabelle stehen. Ich habe den Algorithmus immer wieder zur Verarbeitung geschickt, in der Hoffnung, sofort ganz oben zu sein.

Es bleibt abzuwarten und sich auf den nächsten Wettbewerb auf codingame.com vorzubereiten . Außerdem warte ich darauf, dass das Spiel in den Mehrspielermodus wechselt, was meinen Code verbessert.

Source: https://habr.com/ru/post/de422297/


All Articles