This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

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:

            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:

<!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
Als Lösung markieren 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!
Als Lösung markieren 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
Als Lösung markieren Zitieren


Gehe zu:


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