Zum Inhalt springen
BetaEN
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, if und 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);   // 13

Python-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

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

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}`);