Javascript-forum
Zufallsgenerator im Zufallsgenerator - Druckversion

+- Javascript-forum (https://javascript-forum.de)
+-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4)
+--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6)
+--- Thema: Zufallsgenerator im Zufallsgenerator (/showthread.php?tid=2050)



Zufallsgenerator im Zufallsgenerator - Hermdaddy - 30.01.2023

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!


RE: Zufallsgenerator im Zufallsgenerator - rzscout - 31.01.2023

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


RE: Zufallsgenerator im Zufallsgenerator - Hermdaddy - 31.01.2023

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!


RE: Zufallsgenerator im Zufallsgenerator - rzscout - 31.01.2023

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.