diff --git a/darts/index.html b/darts/index.html new file mode 100644 index 0000000..b2b9bbf --- /dev/null +++ b/darts/index.html @@ -0,0 +1,46 @@ + + + + + + Helios Darts 🎯 + + + + +

🎯 Helios Darts

+ +
+
+

Spieler 1

+
501
+
+
+

Spieler 2

+
501
+
+
+ +
+

Wurf eingeben (z.B. 60 oder T20)

+ + +
+ +
Spieler 1 ist dran
+ + + + diff --git a/darts/script.js b/darts/script.js new file mode 100644 index 0000000..27444d3 --- /dev/null +++ b/darts/script.js @@ -0,0 +1,76 @@ +let scores = [501, 501]; // Punktestände für Spieler 0 und 1 +let currentPlayer = 0; // 0 = Spieler 1, 1 = Spieler 2 + +function submitThrow() { + const inputField = document.getElementById("inputScore"); + const rawInput = inputField.value.toUpperCase().trim(); // Mach "t20 " zu "T20" + + let points = 0; + + // 1. Checken: Ist es eine spezielle Eingabe (T18, D20, BULL)? + if (rawInput.startsWith("T")) { + // Beispiel: T20 -> Wir schneiden das "T" weg, nehmen die 20, mal 3 + let number = parseInt(rawInput.substring(1)); + points = number * 3; + } + else if (rawInput.startsWith("D")) { + // Beispiel: D20 -> 20 * 2 + let number = parseInt(rawInput.substring(1)); + points = number * 2; + } + else if (rawInput === "BULL") { + points = 50; + } + else if (rawInput === "25") { + points = 25; + } + else { + // 2. Normaler Zahleneingabe (z.B. "60" oder "45") + points = parseInt(rawInput); + } + + // Sicherheitscheck: Ist die Eingabe Gültig? + if (isNaN(points)) { + alert("Ungültige Eingabe! Versuch es mit Zahlen, T20 oder D20."); + inputField.value = ""; + return; + } + + // Punkte abziehen + let newScore = scores[currentPlayer] - points; + + // Logik: Nicht unter 0 fallen (Bust) + if (newScore < 0) { + document.getElementById("status").innerText = `Überworfen! Nächster Spieler.`; + } else if (newScore === 0) { + alert(`Spieler ${currentPlayer + 1} hat gewonnen! 🎯`); + location.reload(); // Seite neu laden für neues Spiel + } else { + scores[currentPlayer] = newScore; + } + + // Anzeige aktualisieren + updateDisplay(); + + // Spieler wechseln + currentPlayer = (currentPlayer === 0) ? 1 : 0; + + // Status Text + document.getElementById("status").innerText = `Spieler ${currentPlayer + 1} ist dran`; + + // Feld leeren + inputField.value = ""; + inputField.focus(); +} + +function updateDisplay() { + document.getElementById("score1").innerText = scores[0]; + document.getElementById("score2").innerText = scores[1]; +} + +// Damit man auch "Enter" auf der Tastatur drücken kann +document.getElementById("inputScore").addEventListener("keypress", function(event) { + if (event.key === "Enter") { + submitThrow(); + } +});