Javascript Würfel, Summe addieren und Werte in Liste ausgeben

Schon festgestellt? Dem Forum sind gerade alle Interaktionsmöglichkeiten genommen. :(

Mehr dazu unter: Abstimmung über das Forum

  • Könnt Ihr mir helfen, die Ergebnisse, beim drücken eines Würfels, im linken grauen Feld auf zu listen und im rechten Feld, die Summe zu addieren?


    Schöne Grüße Fin

    Dateien

    • Würfel.zip

      (57,05 kB, 5 Mal heruntergeladen, zuletzt: )
  • Also die gewürfelten Zahlen sollen unten Links im Kasten stehen ? Dann alle zusammen rechen und das ergebniss dann in rechten Feld stehen. Sehe ich das richtig. ?


    PS: Habe das mal gerade versucht und muß sagen das es sich ganz einfach umsetzen läst.Es gibt zwar viele Wege und das wahr meiner.


    Die gewürfelten Zahlen läßt man ganz normal unten im Feld anzeigen so wie du die oben auch anzeigen läßt . Das sollte nicht dein problem sein das solltest du hinbekommen. Dann läst du die Gewürfelte Zahl in ein Feld anzeigen ( Bei mir id="gesammt" ). Beim nächsten Würfeln liest du die Zahl aus "id Gesamt" wieder aus und rechnest die mit der neuen gewürfelten Zahl wieder zusammen und läßt sie wieder in den Feld Gesamt anzeigen. So hast du nach jeden Würfeln die Gesamt Zahlen .


    Dein Script habe ich am Anfang gleich geändert ,weil deins ist zu lang das brauch man so nicht.

    Bei randomNumber1() gibst du die max Zahl und Würfelnummer gleich mit . randomNumber(1,4). Das machst du bei jeden Würfel

    randomNumber(1,4)

    randomNumber(2,6)

    randomNumber(3,10)

    usw.

    Dann sieht dein Script insgesamt nur noch so aus

    Code
    1. function randomNumber(a,b) {
    2. var min1 = 1;
    3. var max1 = b;
    4. var elem1 = document.getElementById('output'+a);
    5. elem1.innerHTML = rand1(min1, max1);
    6. }
    7. function rand1(min1, max1) {
    8. return Math.floor(Math.random() * (max1 - min1 + 1)) + min1;
    9. }

    Mehr brauchst du bei deinen Script nicht.Da sind jetzt noch nicht deine gewollte änderungen drinne , das wahr jetzt nur dein Script und zwar kürzer. Wie du das andere hinbekommst habe ich dir geschrieben. Fals es nicht klappt dann melde dich nochmal

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von basti1012 ()

  • Ich habe mir das Script nicht angesehen, weil ich keine ZIP aus Foren lade, aber warum nicht alle Würfel gleichzeitig rollen?

    JavaScript
    1. var _min = 1;
    2. var _max = 6;
    3. var _dices = 6
    4. for ( x=0; x<_dices; x++ )
    5. _out.innerHTML += '<p>' + (Math.floor(Math.random() * (_max - _min + 1)) + _min) + '</p>';

    Lustig wäre auch, wenn Du die Unicode-Zeichen verwenden würdest:

    JavaScript
    1. var _min = 1;
    2. var _max = 6;
    3. var _dices = 6
    4. var _diceFaces = [ "0x2680", "0x2681", "0x2682", "0x2683", "0x2684", "0x2685" ];
    5. for ( x=0; x<_dices; x++ )
    6. _out.innerHTML += String.fromCharCode( _diceFaces[(Math.floor(Math.random()*(_max-_min+1))+_min)-1] );

    Muss man halt ein wenig mit der Größe usw. rumspielen, damit das nett aussieht...

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Arne Drews ()

  • Die ermittelte Zufallszahl des gerade gewürfelten Würfels kannst Du wie die Würfelwerte unter die Würfel schreiben. Die id der Ebene ist ja "outputwert". z.B.

    elem_dice_single=document.getElementById("outputwert")

    elem_dice_single.innerHTML=Wert des Würfels.


    Da du den gewürfelten Wert zweimal schreiben willst, würde ich diesen auch in einer variable abspeichern. z.B. dice1=Rand(...)


    Das Aufsummieren ist komplizierter. Neben der von Arne Drews vorgeschlagenen Variante alle Würfel auf einmal zu aktivieren, kannst Du die Summe auch in einer Variablen z.B. dice_sum ermitteln. Diese kannst Du per

    dice_sum+=Wert des aktuell aktivierten Würfels laufend erhöhen.


    Hierbei müsstest Du aber den VORIGEN Wert des Würfels wieder abziehen, da er ja in der Gesamtsumme nicht mehr enthalten sein darf (sondern "nur" der neue Wert). Also ggf. nochmal eine Variable z.B. dice1_old, mit der du den vorigen Wert abspeicherst.

  • sorry, wegen der späten Antwort. Ich habs probiert, bekomm es aber nicht hin. Mit Html und Css kann ich flüssig arbeiten. Bei Javascript, bin ich absoluter Anfänger.

    Auf die Frage von Arne Drews, ich programmier es für einen Kollegen, nach seinen Vorgaben

  • was genau bekommst du den jetzt nicht hin.? Hast du das mit den zusammen rechnen hinbekommen oder das noch nicht ?

    mein Codet sieht so aus

    Mußt im html auch noch kleinigkeiten anpassen. Fals es nicht klappt gebe ich dir Link zur kompletten geänderten Spieldatein


    Was ist eigentlich mit deinen Würfel Bilder los? Die sind irgendwie kaputt.In den Bildern wird nix angezeigt. Du hast aber auch Sonderzeichen genommen für die Namen und Sonderzeichen haben eigentlich nix im Link zu suchen.

    Dieser Beitrag wurde bereits 4 Mal editiert, zuletzt von basti1012 ()

  • Anders als chrisee82 schlage ich vor, bei jedem Würfeln die komplette Summe neu zu berechnen, dann muss man sich um das Subtrahieren, wenn schon einmal gewürfelt wurde, nicht kümmern.

    Code
    1. Ich habs probiert, bekomm es aber nicht hin.

    Dann poste doch noch Mal den Stand, den Du jetzt hast.

  • Hab nur mal aus Spaß etwas rumgespielt. Da ich gerne mit Objekten arbeite, habe ich das mal als Prototyp an das HTMLElement-Objekt gehängt:

    Bei einer einfachen Vorlage wie dieser:

    HTML
    1. <div class="throw">
    2. <p class="dices"></p>
    3. <p class="sum"></p>
    4. </div>

    sind nun fast beliebige Aufrufe möglich:

    Der Text für die gewürfelte Augenzahl könnte über den zweiten Parameter ebenfalls angepasst werden:

    JavaScript
    1. // Beispiel: 6 würfel, Min und Max = default
    2. document.querySelector( '.throw' ).throwDices( 6, { rspTxt:'Dein Ergebnis: ' } );

    Muss man nicht so machen, ich finds halt praktisch...

  • Dann probiere mal, ob Du mit dieser Funktion zum Ziel kommst:

    Code
    1. function summieren() {
    2. var outputs = document.querySelectorAll(".divdice p[id^='output']");
    3. var sum = 0;
    4. for (var i = 0; i < outputs.length; i++) {
    5. var content = outputs[i].innerHTML;
    6. if (content != "") sum += parseInt(content);
    7. }
    8. document.getElementById("outputsumme").innerHTML = sum;
    9. }

    BTW: Ich habe da auch etwas mit Objekten experimentiert: