Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zufallsgenerator im Zufallsgenerator
#1
Hallo liebe Mitglieder,

Ich bin in diesem Forum mindestens genauso neu wie im Bereich der Programmierung.
Ich benötige für eine Geburtstagsfeier meiner Oma einen Zufallsgenerator, in welchem ein Zufallsgenerator implementiert ist. 
Mein Code sieht bislang so aus:

Code:
            var myArray1 = [
            'A',    
            'B',
            'C',
            'D',
            'E',
            'F'
                ];
                
                var NameArray = [
            'Dein Nachname beginnt mit: XXX',
            'Dein Vorname beginnt mit: XXX',
            'Dein Haustier beginnt mit: XXX',
            'Trinken!'
                ];
var rand = Math.floor(Math.random()*NameArray.length);
var rValue = NameArray[rand];
document.write(rValue)


Der Basis-Zufallsgenerator (NameArray) funktioniert, aber was muss ich anstelle der XXX setzen, damit per Zufall der Anfangsbuchstabe ausgegeben wird?
Da nicht immer ein Anfangsbuchstabe benötigt wird, kann ich die beiden Zufallsgeneratoren nicht nebeneinander stellen.

Ich hoffe ihr könnt mir helfen,

danke und liebe Grüße!
Zitieren
#2
Hiho Hermdaddy, Hier
ersteinmal rate ich dir dringend ab document.write zu verwenden. Verwende da lieber innerHTML oder textContent. Hier ein erstelltes Beispiel von mir:

Code:
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Zufallsinhalt ausgeben</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        html {font-size: 16px;}
        body {
            width: 100vw;
            height: 100vh;
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        button {
            width: 300px;
            height: 36px;
            margin-bottom: 24px;
        }
        #output {
            font-family: Arial, Helvetica, sans-serif;
            font-size: 2rem;
            font-weight: bold;
        }
    </style>
    <script>
        document.addEventListener('DOMContentLoaded', init);
        function init() {
            document.getElementById('ausgabe').addEventListener('click', ausgabe);
        }
        function ausgabe() {
            let ausgabe = document.getElementById('output');
            var myArray1 = ['A', 'B', 'C', 'D', 'E', 'F'];       
            var NameArray = [
                'Dein Nachname beginnt mit: ',
                'Dein Vorname beginnt mit: ',
                'Dein Haustier beginnt mit: ',
                'Trinken!'
            ];
            zufall1 = NameArray[Math.floor(Math.random() * Math.floor(NameArray.length))];
            zufall2 = myArray1[Math.floor(Math.random() * Math.floor(myArray1.length))];
            if(zufall1 == 'Trinken!') {
                ausgabe.innerHTML = zufall1;
            } else {
                ausgabe.innerHTML = `${zufall1} ${zufall2}`;
            }
        }
    </script>
</head>
<body>
    <button id="ausgabe">Zufallswert ausgeben</button>
    <div id="output">
        <p>&nbsp;</p>
    </div>
</body>
</html>


Viel Erlfolg

rzscout
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren
#3
Hey rzscout,

vielen Dank für die schnelle Antwort und die Verbesserungsvorschläge!
Ich hab jedoch noch viel mehr Kategorien, das habe ich vergessen zu erwähnen. Da befindet sich der zufällige Buchstabe mal in der Mitte oder am Anfang, und auch noch einige Kategorien in denen kein Buchstabe gelost werden sollte.
Das lässt sich mit deinem Code jetzt nicht erweitern oder?

Vielen Dank aber nochmal!
Zitieren
#4
Zitat:Hey rzscout,

vielen Dank für die schnelle Antwort und die Verbesserungsvorschläge!
Ich hab jedoch noch viel mehr Kategorien, das habe ich vergessen zu erwähnen. Da befindet sich der zufällige Buchstabe mal in der Mitte oder am Anfang, und auch noch einige Kategorien in denen kein Buchstabe gelost werden sollte.
Das lässt sich mit deinem Code jetzt nicht erweitern oder?

Vielen Dank aber nochmal!


Ja Hermdaddy, es lässt sich leicht erweitern. Die Zufallsgeneratoren sind so aufgebaut das die Länge der Arrays(Einträge) kein Unterschied machen. Und der If-Anweisung lässt sich mit einer Switch-Anweisung umbauen, sodass mehrere alternative Inhalte angezeigt werden können.

Der Zufallsgenerator hat nur 5min gebraucht.
"Gerne dürft ihr mir eine gute Bewertung da lassen aber auch gegenüber Kritik bin ich offen" Angel
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste