Lektion 7 von 11JavaScript
JavaScript · Lektion 7 · 35 Minuten
Projekt: Zahlenraten
Das lernst du
- Eingaben mit
prompt()abfragen - Texte mit
Number()in Zahlen umwandeln - Ein komplettes Spiel mit
while,ifund Zählern bauen
prompt(): Fragen stellen
Mit prompt() fragt JavaScript etwas ab. Hier erscheint dafür ein Eingabefeld unter dem Editor:
const name = prompt("Wie heißt du? ");
console.log(`Hallo ${name}!`);Vorsicht: Eingaben sind Text
prompt() liefert immer Text – auch wenn man eine Zahl eintippt. Mit Number() wird daraus eine echte Zahl:
const text = "12";
console.log(text + 1); // Text + Zahl = "121"
console.log(Number(text) + 1); // 13Python-Vergleich: Das ist wie
int(input(...))in Python.
Das Spiel
So läuft ein Zahlenraten mit Zufallszahl – Math.random() liefert eine Zahl zwischen 0 und 1:
const geheim = Math.floor(Math.random() * 20) + 1;
let tipp = 0;
let versuche = 0;
while (tipp !== geheim) {
tipp = Number(prompt("Zahl von 1 bis 20: "));
versuche++;
if (tipp < geheim) console.log("zu klein");
else if (tipp > geheim) console.log("zu groß");
}
console.log(`Geschafft in ${versuche} ${versuche === 1 ? "Versuch" : "Versuchen"}!`);In der Aufgabe ist die geheime Zahl fest (7), damit die automatische Prüfung weiß, was herauskommen muss.
Weiterbauen: Begrenze die Versuche auf 5 – oder gib bei jedem Tipp aus, wie weit er noch daneben liegt.
Deine Aufgabe
Jetzt bist du dran
Bau das Zahlenraten fertig. Die geheime Zahl ist geheim. Frag mit prompt("Dein Tipp: ") so lange nach einer Zahl, bis sie stimmt. Gib nach jedem falschen Tipp zu klein oder zu groß aus. Am Ende: Richtig! Versuche: 3 (mit der echten Anzahl).
const geheim = 7;
let versuche = 0;
// Frag hier in einer Schleife nach Tipps- Denkanstoß
Eine
while-Schleife, die läuft, solange tipp!==geheim ist.prompt()liefert Text – mach mitNumber(...)eine Zahl daraus. - Welcher Befehl hilft?
Zähle bei jedem Tipp versuche++ und vergleiche mit
<und>. - Lückencode – ergänze die ___
const geheim = 7; let versuche = 0; let tipp = ___; while (___) { tipp = ___; ___ if (___) { console.log(___); } else if (___) { console.log(___); } } console.log(___);
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
const geheim = 7;
let versuche = 0;
let tipp = 0;
while (tipp !== geheim) {
tipp = Number(prompt("Dein Tipp: "));
versuche++;
if (tipp < geheim) {
console.log("zu klein");
} else if (tipp > geheim) {
console.log("zu groß");
}
}
console.log(`Richtig! Versuche: ${versuche}`);