Hilfe Los-Topf in js und html

FranziskaN

Mitglied
Hilfe!
Für eine Hausarbeit sollen wir einen Lostopf programmieren.

zu Beginn soll eine Losnummer in einem
HTML-Formular erscheinen, wenn man sich dazu entschließt, das Los zu nehmen, erscheint die Meldung ob man gewonnen oder verloren hat - ebenfalls im HTML formuar

ich bin ziemlich lost

kann mir vielleicht jemand helfen?
Ich habe gar keine Idee, wie das funktionieren soll :(
 

FranziskaN

Mitglied
Ich kann aktuell eine random-zahl (=losnummer) von 1 - 99 ausgeben.
wenn diese als los „eingesetzt“ werden soll, dann soll eine Meldung erscheinen, ob es sich um einen Gewinn oder eine Niete handelt.
das muss den Nummern ja noch irgendwie zugeordnet werden(?)
Und eine bereits „eingesetzte“ Nummer darf kein zweites Mal verwendet werden.
Keine Ahnung, wie das umgesetzte werden soll :(
 

mihe7

Top Contributor
Du hast z. B. ein Array mit 99 Losnummern. Das mischt Du kräftig durch. Dann hast Du einen Zähler, der anfangs auf 0 steht, nennen wir ihn mal runde.

In jeder Runde gibst Du einfach das Element aus, das im Array an Position runde steht. Wird ein Los "eingesetzt", entscheidet der Zufall, ob das Los gewinnt. In jedem Fall wird dann der runden-Zähler erhöht und die nächste Runde kann beginnen.
 

FranziskaN

Mitglied
Du hast z. B. ein Array mit 99 Losnummern. Das mischt Du kräftig durch. Dann hast Du einen Zähler, der anfangs auf 0 steht, nennen wir ihn mal runde.

In jeder Runde gibst Du einfach das Element aus, das im Array an Position runde steht. Wird ein Los "eingesetzt", entscheidet der Zufall, ob das Los gewinnt. In jedem Fall wird dann der runden-Zähler erhöht und die nächste Runde kann beginnen.
Das klingt sehr gut. Das hilft mir auch echt weiter danke :)
Kann mir immer so schlecht vorstellen, wie man so was lösen soll 😩🙈

Mein Array wird schon gemischt
Aktuell gebe ich aber immer den Wert von a[1] aus, der jedes Mal ein anderer ist.
Bei a[0] kommt die Meldung „undefined“…
 

mihe7

Top Contributor
Dann hast Du an 0 eben nichts gespeichert.
Javascript:
const losnummern = new Array(99);
for (let i = 0; i < losnummern.length; i++) {
    losnummern[i] = i+1;
}
Danach hast Du in losnummern ein Array mit Zahlen von 1 bis 99. Musst Du natürlich noch mischen.

Nachtrag:
Aktuell gebe ich aber immer den Wert von a[1] aus, der jedes Mal ein anderer ist
Dann erzeugst Du auch jedesmal neue Werte oder mischst jedesmal neu.
 

FranziskaN

Mitglied
Dann hast Du an 0 eben nichts gespeichert.
Javascript:
const losnummern = new Array(99);
for (let i = 0; i < losnummern.length; i++) {
    losnummern[i] = i+1;
}
Danach hast Du in losnummern ein Array mit Zahlen von 1 bis 99. Musst Du natürlich noch mischen.

Nachtrag:

Dann erzeugst Du auch jedesmal neue Werte oder mischst jedesmal neu.
Jaaaa das war der Grund… fange jetzt logischerweise erst bei 0 an zu zählen 😅

Ja, ich mische jedes Mal neu…
Es soll nur einen Button zum generieren des Loses geben - mit dem Klick darauf fülle ich den Array.
Dann müsste ich den Array schon füllen, wenn die Seite geladen wird und dann mit einen Klick die Werte von 1-99 ausgeben.

Und diesen werten dann noch irgendwie den Gewinn oder eine Niete zuordnen.

Gott ich mache 100 Kreuze, wenn ich dieses Modul hinter mir habe 🤦‍♀️
 

FranziskaN

Mitglied
Jaaaa das war der Grund… fange jetzt logischerweise erst bei 0 an zu zählen 😅

Ja, ich mische jedes Mal neu…
Es soll nur einen Button zum generieren des Loses geben - mit dem Klick darauf fülle ich den Array.
Dann müsste ich den Array schon füllen, wenn die Seite geladen wird und dann mit einen Klick die Werte von 1-99 ausgeben.

Und diesen werten dann noch irgendwie den Gewinn oder eine Niete zuordnen.

Gott ich mache 100 Kreuze, wenn ich dieses Modul hinter mir habe 🤦‍♀️
Okay, ich beantworte mir das selbst. Der Array füllt sich von alleine, beim Laden der Seite, wenn das durch keine extra Funktion aufgerufen wird.
das heißt ich kann über den Button einfach „weiter“ klicken 🤓
 

mihe7

Top Contributor
Ja. Und nachdem es da keine große Forderung bzgl. Gewinn und Niete gibt, kannst Du das ja einfach per Zufall machen: Math.random() < 0.1 wäre in 10 % der Fälle wahr...
 

Kamil1

Gesperrter Benutzer
Hi @FranziskaN , so hätte ich das vielleicht gemacht:

HTML:
<div id="div1">

</div>

Javascript:
var d = document.getElementById("div1");
for (var i = 0; i < 10; i++) {
  var row = "";
  for (var j = 0; j < 10; j++) {
    var x = i * 10 + j;
    row += '<button id="b' + x + '" onclick="ziehe(' + x + ')">' + x + '</button>';
  }
  d.innerHTML += '<p>' + row + '</p>';
}

var xs = [];
for (var i = 0; i < 100; i++) {
  xs[i] = i;
}
shuffle(xs);

function shuffle(array) {
  let counter = array.length;
  // While there are elements in the array
  while (counter > 0) {
    // Pick a random index
    let index = Math.floor(Math.random() * counter);
    // Decrease counter by 1
    counter--;
    // And swap the last element with it
    let temp = array[counter];
    array[counter] = array[index];
    array[index] = temp;
  }
  return array;
}

function ziehe(x) {
  var gewinne = 10;
  if (xs[x] < gewinne) {
    document.getElementById('b' + x).style.backgroundColor = 'green';
  } else {
    document.getElementById('b' + x).style.backgroundColor = 'red';
  }
}

Probiers mal aus, ist eigentlich ziemlich selbsterklärend... Es gibt 10*10 Lose in einem Grit und jedes 10. Los gewinnt...
 

FranziskaN

Mitglied
Hi @FranziskaN , so hätte ich das vielleicht gemacht:

HTML:
<div id="div1">

</div>

Javascript:
var d = document.getElementById("div1");
for (var i = 0; i < 10; i++) {
  var row = "";
  for (var j = 0; j < 10; j++) {
    var x = i * 10 + j;
    row += '<button id="b' + x + '" onclick="ziehe(' + x + ')">' + x + '</button>';
  }
  d.innerHTML += '<p>' + row + '</p>';
}

var xs = [];
for (var i = 0; i < 100; i++) {
  xs[i] = i;
}
shuffle(xs);

function shuffle(array) {
  let counter = array.length;
  // While there are elements in the array
  while (counter > 0) {
    // Pick a random index
    let index = Math.floor(Math.random() * counter);
    // Decrease counter by 1
    counter--;
    // And swap the last element with it
    let temp = array[counter];
    array[counter] = array[index];
    array[index] = temp;
  }
  return array;
}

function ziehe(x) {
  var gewinne = 10;
  if (xs[x] < gewinne) {
    document.getElementById('b' + x).style.backgroundColor = 'green';
  } else {
    document.getElementById('b' + x).style.backgroundColor = 'red';
  }
}

Probiers mal aus, ist eigentlich ziemlich selbsterklärend... Es gibt 10*10 Lose in einem Grit und jedes 10. Los gewinnt...
Vielen Dank für die Antwort.
Aber ich glaube das entspricht nicht so ganz der Anforderung :)

finde meinen bisherigen Code auch ganz gut.. vor allem, weil ich ihn verstehe 😂

Mein einziges Problem ist jetzt beim auswählen einer Zufallszahl anzeigen zu lassen, ob es ein Gewinn oder eine Niete ist..
 

FranziskaN

Mitglied
Sorry, das hatte nicht ganz auf dem Schirm.
also es läuft jetzt soweit, dass ich meine Lose eins nach dem anderen durchgehen kann und random durch einen weiteren Klick sagen kann, ob die entsprechende Zahl ein Gewinn oder eine Niete ist ☺️
 

FranziskaN

Mitglied
Nein, ich ziehe kein los doppelt. Habe das über
var uniqueArray = […new Set (array)]
console.log(uniqueArray)

gelöst

mir ist noch nicht ganz klar wie, aber jetzt gibt es keine Duplikate mehr.

Habe eher das Problemchen, dass ich meine Lose jetzt mehrmals „öffnen“ kann.
also ich kann jedes Mal mehrmals generieren ob es ein Gewinn oder Niete ist. 😂
Das versuche ich gerade zu lösen ☺️
 

mihe7

Top Contributor
Du kannst ja ein zweites Array gleicher Größe anlegen und dort speichern, ob das korrespondierende Los ein Gewinn oder eine Niete ist. Außerdem besteht die Möglichkeit, Objekte zu verwenden, hier mal ein Los:
Javascript:
const los = {
    nummer: 10, /* hier stünde die Losnummer */
    gewinn: true, /* oder eben false */
};
 

FranziskaN

Mitglied
Du kannst ja ein zweites Array gleicher Größe anlegen und dort speichern, ob das korrespondierende Los ein Gewinn oder eine Niete ist. Außerdem besteht die Möglichkeit, Objekte zu verwenden, hier mal ein Los:
Javascript:
const los = {
    nummer: 10, /* hier stünde die Losnummer */
    gewinn: true, /* oder eben false */
};

hab es so gelöst, dass der Eventlistener für den entsprechenden Button mit {once : True} nur einmal ausgelöst werden kann.

er wird aber jedes Mal beim weiterspringen des Arrays erneut aufgerufen, weshalb er dann beim nächsten wert wieder geklickt werden kann.

Aber die Lösung mit dem zweiten Array ist eigentlich auch ganz gut.
vielleicht werde ich das im Laufe des Semester noch ändern müssen (da die Aufgabe wohl weitergeführt werden soll)

aber erstmal bin ich ganz zufrieden damit… gestern hätte ich noch fast geweint , weil ich absolut kein Verständnis für diese Programmieraufgaben habe 😂🙈

vielen Dank jedenfalls ☺️
 

FranziskaN

Mitglied
Hey,

vielleicht kann mir noch mal jemand helfen. Unser Dozent hat die Aufgabe überarbeitet und ich wollte verschiedene Optionen durch das Nutzen eines Buttons aufrufen. Leider funktioniert das nicht wirklich.
Ich kann meine Lose aufrufen. Daraus soll durch ein formfeld explizit eins ausgewählt werden.
Diese Nummer lasse ich dann anzeigen.
und anschließend öffnen.
Leider komme ich danach nicht mehr weiter.
Eigentlich will ich dann wieder die Nummern aufrufen, damit man sich eine neue auswählen kann.
 

Anhänge

  • 5D5D4842-E560-4A56-9732-4AD2F05F5984.jpeg
    5D5D4842-E560-4A56-9732-4AD2F05F5984.jpeg
    112 KB · Aufrufe: 0
Zuletzt bearbeitet:

mihe7

Top Contributor
Kannst Du mal den kompletten Code in Code-Tags (hier im Editor oben links auf </> klicken) posten? Gerne auch das HTML, damit man das nachvollziehen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaScript Hilfe dringend (v.2) Angular, React, JQuery - Fragen zu JavaScript 1
M Hilfe! Feature detection - Browser nach Java abfragen Angular, React, JQuery - Fragen zu JavaScript 3
T Bitte um Hilfe bei Zeichenzähler Erweiterung Angular, React, JQuery - Fragen zu JavaScript 12
T Bin neu und brauche Hilfe Angular, React, JQuery - Fragen zu JavaScript 4
T Benötige Hilfe Angular, React, JQuery - Fragen zu JavaScript 11
K Hilfe bei Caesar Verschlüsselung Angular, React, JQuery - Fragen zu JavaScript 2
N Hilfe, kann jemand den Fehler finden? Angular, React, JQuery - Fragen zu JavaScript 4
A Hilfe für guten Zweck Angular, React, JQuery - Fragen zu JavaScript 6
L suche Hilfe bei Anpassung eines Scripts Angular, React, JQuery - Fragen zu JavaScript 5
M Hilfe bei kleinem Script Angular, React, JQuery - Fragen zu JavaScript 8
O Anfänger bittet um Hilfe neuer Versuch Angular, React, JQuery - Fragen zu JavaScript 1
O Bitte um Hilfe Angular, React, JQuery - Fragen zu JavaScript 3
B Photoshop Script Hilfe Angular, React, JQuery - Fragen zu JavaScript 2
K Javascript "Bild mit Pfeiltasten automatisch bewegen" HILFE Angular, React, JQuery - Fragen zu JavaScript 0
F Hilfe bei if Abfrage Angular, React, JQuery - Fragen zu JavaScript 2
K Hilfe bei mitwachsenden Textboxen. Angular, React, JQuery - Fragen zu JavaScript 5
H Hilfe bei quiz gesucht Angular, React, JQuery - Fragen zu JavaScript 5
F Hilfe Button mit Javascript Angular, React, JQuery - Fragen zu JavaScript 2
F [S] Hilfe beim JavaScript auf Homepage Angular, React, JQuery - Fragen zu JavaScript 4
R Java Code Hilfe Angular, React, JQuery - Fragen zu JavaScript 16
J Von javascript zu java HILFE Angular, React, JQuery - Fragen zu JavaScript 5
B Brauche Hilfe bei Java-Script... Angular, React, JQuery - Fragen zu JavaScript 4
Bloodfire Brauche Hilfe bei Java Skript Angular, React, JQuery - Fragen zu JavaScript 5
A Brauche hilfe bei java-script Angular, React, JQuery - Fragen zu JavaScript 3
V Hilfe Angular, React, JQuery - Fragen zu JavaScript 7
M Hilfe gesucht für ein Projekt Angular, React, JQuery - Fragen zu JavaScript 1
C Hilfe bei passwort skript Angular, React, JQuery - Fragen zu JavaScript 3
S Brauche Hilfe mit Java Script Angular, React, JQuery - Fragen zu JavaScript 2
M Advend Advend mein Lichtlein ist ausgebrannt :( HILFE Angular, React, JQuery - Fragen zu JavaScript 2
G Hilfe - Javascript geht auf meinem Rechner nicht. Angular, React, JQuery - Fragen zu JavaScript 2
M Hilfe Angular, React, JQuery - Fragen zu JavaScript 5
R Brauche Hilfe bei dem Java Script Bitte Angular, React, JQuery - Fragen zu JavaScript 3
J Brauche Hilfe, weiß aber nicht wie das heißt! Angular, React, JQuery - Fragen zu JavaScript 8
R Rolldown Menü Hilfe bitte Angular, React, JQuery - Fragen zu JavaScript 2
S Bitte um Hilfe Script gesucht Angular, React, JQuery - Fragen zu JavaScript 4
L Hilfe bei Bildscroll Script Angular, React, JQuery - Fragen zu JavaScript 5
A HILFE - Popup soll sich selbst aktualisieren. Angular, React, JQuery - Fragen zu JavaScript 3
G Hilfe bei Mauskoordinaten abfrage Angular, React, JQuery - Fragen zu JavaScript 4
A Brauche hilfe bei einen Servlet Angular, React, JQuery - Fragen zu JavaScript 8
L Hilfe! Newbie verzweifelt! Angular, React, JQuery - Fragen zu JavaScript 7
S Preloader hilfe Angular, React, JQuery - Fragen zu JavaScript 7
O Newbie sucht Hilfe Angular, React, JQuery - Fragen zu JavaScript 3
T Totaler Newbee bitte dringend um Hilfe Angular, React, JQuery - Fragen zu JavaScript 2
H Ich brauche hilfe Angular, React, JQuery - Fragen zu JavaScript 3
M Ich brauch jetzt, genau jetzt Hilfe!!!! Angular, React, JQuery - Fragen zu JavaScript 3
R Netscap + Java Brauche Hilfe Angular, React, JQuery - Fragen zu JavaScript 1
N HILFE:... ICH KOMME NET MEHR WEITER! Angular, React, JQuery - Fragen zu JavaScript 2
H0xt html übergibt an js ein wert nicht Angular, React, JQuery - Fragen zu JavaScript 18
C HTML-JAVA Angular, React, JQuery - Fragen zu JavaScript 2
Zeppi Webserver erweitert index.html Angular, React, JQuery - Fragen zu JavaScript 1
Aleyna_ Einbinden von js (ts) und HTML-Datei funktioniert nicht Angular, React, JQuery - Fragen zu JavaScript 16
G Variablen aus URL auslesen und in HTML darstellen Angular, React, JQuery - Fragen zu JavaScript 1
isatindersinght jquery convert html to image Angular, React, JQuery - Fragen zu JavaScript 0
T JS/HTML: User Inputs statt Predefines nehmen; onChange Events werden ignoriert Angular, React, JQuery - Fragen zu JavaScript 6
D HTML-Seite erkennt JS-File im Ordner nicht Angular, React, JQuery - Fragen zu JavaScript 4
M Mit innerHTML in eine bestimmte HTML-Datei schreiben Angular, React, JQuery - Fragen zu JavaScript 8
J Html Button mit JavaScript ausführen Angular, React, JQuery - Fragen zu JavaScript 5
D Java Tool um HTML und Javascript zu analysieren Angular, React, JQuery - Fragen zu JavaScript 3
D Variable ohne HTML Tags ausgeben Angular, React, JQuery - Fragen zu JavaScript 14
F Schnellen Browser für HTML mit JS drin. Angular, React, JQuery - Fragen zu JavaScript 6
T html code per javascript einfügen Angular, React, JQuery - Fragen zu JavaScript 7
B HTML, CSS - Frame online aktualisieren Angular, React, JQuery - Fragen zu JavaScript 11
Chris81T Java <> DWR <> JavaScript/HTML Angular, React, JQuery - Fragen zu JavaScript 2
N warum kann ich kein javascript und css in mein html script einbinden Angular, React, JQuery - Fragen zu JavaScript 3
Gossi Frage zu Html (evtl. auch JavaScript?) Angular, React, JQuery - Fragen zu JavaScript 10
J Problem:Zugriff auf Ausgabefeld (HTML-Formular)) Angular, React, JQuery - Fragen zu JavaScript 3
C sort_table.js HTML-Tabelle direkt sortiert anzeigen lassen Angular, React, JQuery - Fragen zu JavaScript 5
O HTML Dropdownliste Angular, React, JQuery - Fragen zu JavaScript 3
J HTML frage mit javascript lösbar? Angular, React, JQuery - Fragen zu JavaScript 3
H Kalender mit Java(Script) in HTML Angular, React, JQuery - Fragen zu JavaScript 6
T HTML Tabelle - per JS neue Zeile Angular, React, JQuery - Fragen zu JavaScript 4
N HTML-Formular mit Java Script berechnen Angular, React, JQuery - Fragen zu JavaScript 4
S User Name an Html übergeben Angular, React, JQuery - Fragen zu JavaScript 6
A Flash-oder HTML Dateien mittels Java Kalenderscript anzeigen Angular, React, JQuery - Fragen zu JavaScript 4
G html mit java auslesen Angular, React, JQuery - Fragen zu JavaScript 6
L Dauerlaufzeile mit Fotos für html Angular, React, JQuery - Fragen zu JavaScript 2
M den Browser auffordern html-seite nachzuladen Angular, React, JQuery - Fragen zu JavaScript 3
D Java Variablen in HTML/Java abrufen Angular, React, JQuery - Fragen zu JavaScript 4
S HTML Cod in einer bestimmten stelle einfügen. Angular, React, JQuery - Fragen zu JavaScript 12
M Umwandeln von Umlauten im HTML form Angular, React, JQuery - Fragen zu JavaScript 10
W Wert aus HTML-Quelltext auslesen Angular, React, JQuery - Fragen zu JavaScript 8
C Flashfilm aus einer HTML-Seite im Fullscreen öffnen Angular, React, JQuery - Fragen zu JavaScript 2
A Java-Script mit HTML ändern Angular, React, JQuery - Fragen zu JavaScript 6
T java-html navigationsproblemchen Angular, React, JQuery - Fragen zu JavaScript 4
J html befehl in JS Angular, React, JQuery - Fragen zu JavaScript 5

Ähnliche Java Themen

Neue Themen


Oben