Ich verzweifele gerade daran, dass mein schöner Algorithmus daran scheitert, dass ein Gleichungssystem keine sinnvollen Lösungen zurückgibt.
Folgendes: es ging in meinem Programm darum, dass ich für ein RPG-Kampfsystem einen Schadens-Algorithmus haben wollte. Dieser sollte folgende Form haben:
SCHADEN = ANGRIFF/VERTEIDIGUNG * 3/5 *
KONSTANTER_WERT_1 + ANGRIFF *
KONSTANTER_WERT_2
Also es soll die Differenz aus Angrifswert des Angreifers und Verteidigungswert des Angegriffenen gebildet werden, dies mal einen konstanten Wert wie etwa 50 multipliziert werden, und dann das ganze noch zu dem Produkt aus Angriff und einen anderen konstanten Wert addiert werden.
So sollte am Ende ein Schadenswert rauskommen, wo Angrifswert und Verteidigugnswert eine Rolle spielen, jedoch auch bei riesigen Verteidigungswerten ein angemessener Schaden ausgeteilt wird.
Jetzt hatte ich keinen Peil, wie groß die beiden konstanten Werte sein sollen, dass am Ende ein sinnvoller Schaden entsteht; deswegen wollte ich es so machen, dass ich mir eine Tabelle aufgestellt habe, bei welchem Angriffs- und welchem Verteidigungswert welcher Schaden ausgeteilt wird, sodass ich beim Einsetzen in die Allgemeinform' ganz viele Gleichungen habe, wo nur noch WERT1 und WERT2 vorkommen. Diese Gleichungen wollte ich auf alle möglichen Arten kombinieren, sodass sich viele viele Gleichungssysteme entwickeln, die viele mögliche Werte für WERT1 und WERT2 errechnen, aus denen ich dann das arithmetische Mittel bestimmen wollte.
Jetzt zu meinem Problem, was ich anhand eines Beispiels erläuetrn möchte:
Folgende Werte:
Stärke: 20, Vert.: 15, Schaden: 70
Stärke: 50, Vert.: 45, Schaden: 650
Macht folgend Gleichungen:
60/75 * WERT1 + 20*WERT2 = 70;
150/225 * Wert1 + 50*Wert2 = 650
beides aufgelöst anch Wert 2 ergibt
Wert2 = 7/2-1/25*Wert1
Wert2 = 13-1/75*Wert1
und wenn ich das nun gleichsetze und nach Wert1 auflöse, kommt eine negative Zahl in Höhe von -356,25 raus...sowohl im Programm, als auch im Per-hand-Rechnen.
Nun kann natürlich im Battle-Script keine negative Zahl möglich sein, da Schadenswerte ja immer positiv sein müssen.
Wo ist der Fehler? ist es ne mathematisch falsche Umformung, oder ein logischer Denkfehler?
