Ich baue einen Kommandozeilen-Kampfsimulator. Ich habe zwei Teams: redteam
und blueteam
.Algorithmus für ein Turn-by-Turn-Spiel?
Sie haben 4 Eigenschaften:
health
attack
defense
rep
Die ersten drei sind selbsterklärend, denke ich. rep
ist Ruf oder Angstfaktor. Der Benutzer wird die Funktionen für beide Teams eingeben. Die Mannschaft mit der höchsten Repräsentation startet den Angriff zuerst. damage
= attack - defense
. Dies wird wiederum von der health
subtrahiert. Dann greift das andere Team an, und der Prozess geht weiter bis einer der health <=0
des Teams oder wenn der attack <= defense
weil in diesem Fall kein Schaden angerichtet wird.
In dieser Form ist das Spiel ziemlich einfach nur die Gesundheit ändert und nichts anderes.
Die Frage, die ich habe, ist, verwende ich derzeit Arrays und eine While-Schleife, in denen die gesamte Logik in einer Reihe von verschachtelten if-else
Blöcke platziert ist. Der Code ist wirklich chaotisch. Gibt es einen Algorithmus (und datastructres) für diese Art von Problem?
A
Was meinen Sie mit "spezifische Art von Problem"? Sie haben bereits einen Algorithmus für Ihren speziellen Fall erstellt. –
Mit spezifisch, ich meine spezifisch für Turn-by-Turn-Spiele. – user2559578
Ich denke, dass jedes rundenbasierte Spiel etwas Einzigartiges im Vergleich zu anderen hat. Der Algorithmus, der für die meisten von ihnen funktioniert, ist wahrscheinlich: 'while (true) {für (p: players) {p.take_turn(); if (p.won()) zurückgeben; }} ' –