Java Script Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Java Script Problem

    Hallo,
    vorab : Ich bin absoluter Java-Newbie...habe eigentlich heute erst angefangen es zu lernen, weil ich ein bisschen benötige, um eine Art Rechner zu erstellen, der eine bestimmte Formel ausrechnen soll.
    as Problem ist nur...das er es nicht tut. Zunächst mal funktionierten bei meinen vorherigen Tests alle Rechenfunktionen, bis auf das "Addieren".
    Dort wurde nämlich beispielsweise aus 5+3=53
    Die beiden Werte wurden also nur zusammengezogen und nicht wirklich addiert. Das selbe Problem hatte ich bereits in Delphi einmal, da lag es glaube ich an dem Operator, aber ich bin mir nichtmehr sicher und weiss es auch nichtmehr zu fixen...
    Aber bevor ich den Quellcode poste, sage ich nochmal die Formel, die ausgeführt werden soll :

    ( Angriff von einem selbst x Level + Schaden der Attacke + die % von der Würfelzahl ) – ( Verteidigung des Gegners x Level des Gegners ) = Energieabzug des Gegners
    und dann ist die aktuelle HP - der Energieabzug die verbleibende HP, die am Ende ausgegeben werden soll...

    [...und wegen den Prozenten : Es wird mit einem Chatwürfel gewürfelt und dabei zählt :
    1 => Attacke geht daneben
    2 => Der Schaden der Attacke wird noch mal um 20 % erhöht
    3 => Der Schaden der Attacke wird noch mal um 40 % erhöht
    4 => Der Schaden der Attacke wird noch mal um 60 % erhöht
    5 => Der Schaden der Attacke wird noch mal um 80 % erhöht
    6 => Ein Volltreffer, der Schaden wird noch mal um 100 % erhöht und die Attacke ist damit doppelt so stark wie normal ]

    Ich denke, dass man das Ziel jetzt verstehen kann (falls nicht ganz, dann einfach hier posten ;D)

    Nun zum Quellcode :

    <html>
    <head>
    <title>Rechner</title>
    <script type="text/javascript">
    <!--
    function Rechner() {
    var a = document.Formular.angriff.value;
    b = document.Formular.level1.value;
    c = document.Formular.schaden.value;
    d = document.Formular.prozente.value;
    e = document.Formular.verteidigung.value;
    f = document.Formular.level2.value;
    g = document.Formular.hp.value;
    if (d == 1) {
    i = ("Die Attacke ging daneben");
    j = 1;
    }
    if (d == 2) {
    h = (a * b + c * 1.2) - (e * f);
    }
    if (d == 3) {
    h = (a * b + c * 1.4) - (e * f);
    }
    if (d == 4) {
    h = (a * b + c * 1.6) - (e * f);
    }
    if (d == 5) {
    h = (a * b + c * 1.8) - (e * f);
    }
    if (d == 6) {
    h = (a * b + c * 2) - (e * f);
    }
    if (d >= 7) {
    i = ("Die Wurfzahl muss 1-6 sein");
    j = 1;
    }
    i = (g - h);
    if (j == 1) {
    /* Nichts */
    }
    alert("Dem Gegner verbleibt noch " + i + " HP);
    }
    //-->
    </script>
    </head>
    <form name="Formular" action="">
    Angriff//Angreifer : &nbsp &nbsp &nbsp &nbsp &nbsp <input type="text" name="angriff" size="10"><br>
    Level//Angreifer : &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <input type="text" name="level1" size="10"><br>
    Schaden//Technik : &nbsp &nbsp &nbsp &nbsp &nbsp <input type="text" name="schaden" size="10"><br>
    Augenzahl//Würfel : &nbsp &nbsp &nbsp &nbsp &nbsp <input type="text" name="prozente" size="10"><p>
    Verteidigung//Gegner : &nbsp &nbsp &nbsp <input type="text" name="verteidigung" size="10"><br>
    Level//Gegner : &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp <input type="text" name="level2" size="10"><br>
    Aktuelle HP//Gegner : &nbsp &nbsp &nbsp &nbsp <input type="text" name="hp" size="10"><br>
    <input type="button" value="Rechnen" onClick="Rechner()">
    </form>
    </body>
    </html>
    Ich wär überglücklich, wenn mir jdm. sagen könnte, wo überall die Fehler liegen, denn ich krieg es alleine beim besten Willen nicht raus

    MfG, KTJ

  • #2
    das liegt daran, dass deine inputfelder IMMER als string interpretriert werden.

    a = '5' + '3' ist eine verkettung => a = '53'

    du willst aber

    a = 5 + 3 = 8

    haben. wenn du aber mit 'zahlen' 'rechnen' willst, musst du den string zuerst in eine zahl 'umwandeln'.

    hier die funktionen dazu.

    parseFloat() (in Kommazahl umwandeln)
    parseInt() (in Ganzzahl umwandeln)
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar

    Lädt...
    X