Hi Leute,
hier mal wieder, wie angekündigt, etwas für zwischendurch: Die "Galgenraten" Code Kata.
💡 Ziel: Ist es einen Algorithmus bestehend aus einer oder mehreren Funktionen zu schreiben, der dich "Galgenraten" in der Konsole spielen lässt.
- Galgenraten
- Es wird ein Begriff (ein Wort) gesucht, welchen man versucht zu erraten. Dabei kann man entweder Buchstabe für Buchstabe eine Eingabe machen oder gleich versuchen das richtige Wort einzugeben und zu erraten.
- Man hat n Versuche, das Wort zu erraten. Falls der jeweilige eingegebene Buchstabe, nicht im gesuchten Wort vorkommt, wird die Anzahl der verbleibenden Versuche reduziert.
- Entweder man errät das Wort innerhalb seiner Versuche, dann gewinnt man, oder man verliert eben.
🥈 Teil 1: Entwickle die Funktion(en) unter Beachtung der folgenden Vorgaben. Nutze InputBox() als Eingabe1 der Buchstaben/des Wortes und die Console als Output.
- Vorgaben
- Verwende die Wörterliste word-list.au3 #include "word-list.au3" => _WordList() im Anhang, welche einfach nur ein Array mit Wörtern zurück gibt.
- Es soll möglich sein, einen Buchstabe einzugeben (InputBox()) oder auch gleich ein Wort.
- Jeder falsche Buchstabe der nicht im Wort vorkommt reduziert die Versuche.
- Die Anzahl der Versuche richtet sich nach dem zufällig ausgewähltem Wort.
- Angenommen es wird das Wort Tauchen gesucht, welches 7 Buchstaben hat, dann soll die Versuchsanzahl 14 betragen (also doppelt so viele Versuche wie das jeweilige Wort Buchstaben hat).
- Der Begrüßungstext2 des Spiels, in der Console, soll wie folgt aussehen (siehe Spoiler unten).
- Wichtig hierbei ist die Darstellung der gesuchten Buchstaben als Unterstriche mit Leerzeichen dazwischen 😈 🤭 .
Also aus tauchen wird _ _ _ _ _ _ _.
- Wichtig hierbei ist die Darstellung der gesuchten Buchstaben als Unterstriche mit Leerzeichen dazwischen 😈 🤭 .
- Wenn ein falscher3 Buchstabe geraten wurde, sieht es so aus (siehe Spoiler unten).
- Wenn ein richtiger4 Buchstabe geraten wurde, sieht es so aus (siehe Spoiler unten).
- Wenn gewonnen5 wurde, sieht es so aus (siehe Spoiler unten).
- Wenn verloren6 wurde, sieht es so aus (siehe Spoiler unten).
1: Eingabe
2: Begrüßungstext
3: falscher Buchstabe
4: richtiger Buchstabe
+---------------+
|--GALGENRATEN--|
+---------------+
💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung.
Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche.
Wort: _ _ _ _ (7 Versuche noch)
Wort: _ _ _ _ (6 Versuche noch)
Wort: _ u _ _ (6 Versuche noch)
5: gewonnen
+---------------+
|--GALGENRATEN--|
+---------------+
💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung.
Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche.
Wort: _ _ _ _ (7 Versuche noch)
Wort: _ _ _ _ (6 Versuche noch)
Wort: _ u _ _ (6 Versuche noch)
Wort: r u _ _ (6 Versuche noch)
Wort: r u _ _ (5 Versuche noch)
Wort: r u _ _ (4 Versuche noch)
Wort: r u _ t (4 Versuche noch)
Wort: r u s t (4 Versuche noch)
😀 Gewonnen! 4 Versuche übrig, gut gemacht.
Alles anzeigen
6: verloren
+---------------+
|--GALGENRATEN--|
+---------------+
💡 Errate ein Wort mit 4 Buchstaben _ _ _ _ , aus der Kategorie Software Entwicklung.
Du hast 8 Versuche 🤹♂️ , jeder falsche Buchstabe reduziert deine Versuche.
Wort: _ _ _ _ (7 Versuche noch)
Wort: _ _ s _ (7 Versuche noch)
Wort: _ _ s _ (6 Versuche noch)
Wort: _ _ s _ (5 Versuche noch)
Wort: _ _ s _ (4 Versuche noch)
Wort: _ _ s _ (3 Versuche noch)
Wort: _ _ s _ (2 Versuche noch)
Wort: _ _ s t (2 Versuche noch)
Wort: _ _ s t (1 Versuche noch)
Wort: _ _ s t (0 Versuche noch)
😥 Verloren! Das gesuchte Wort war "rust".
Alles anzeigen
🥇 Teil 2 (optional): Erweitere den Ansatz um die Möglichkeit, die Eingabe entweder direkt in der Console tätigen zu können (anstatt über InputBox() wie im Teil 1) oder überlege dir eine andere Möglichkeit (GUI, file system, what ever).
⚡ Rahmenbedingungen:
- Versuche es möglichst komplett ohne Hilfsmittel und ohne Google Suche.
- Zeitliche Vorstellung für diese Challenge ist um die 50 - 90 min (für Teil 1, Teil 2 muss nicht, kann jedoch gemacht werden 😄).
- Wenn du eine Lösung hast und diese hier postest, dann bitte den Code in Spoiler einbinden, damit jeder selbst entscheiden kann ob er die Lösungsvariante der Anderen sehen möchte oder nicht 😉 .
Ich bin gespannt auf eure Lösungen und wünsche happy coding 👍 .
Viele Grüße
Sven
---------------------
Update: Hier noch ein Video um besser die Aufgabenstellung zu verstehen 😅 .
⚠ Disclaimer: Das folgende Video hat den Zweck (Bildungszweck), des aufbauens und teilen von Wissen. Es dient in keinster Weise dem Autor (mir) in Bezug auf Youtube, Wachstum des Kanals oder einer Monetarisierung. Falls dies als Nebenprodukt entstehen sollte, ist dies unabhängig von der Intension des Bildungszweckes hier.
---------------------
🎬 Code Kata Galgenraten (Aufgabenstellung)
⌚ Kapitel:
00:00 Einleitung
00:31 Vorgaben beim Spiel gewinnen
02:26 Vorgaben beim Spiel verlieren
03:03 CUI (Consolen App)
04:20 Kontext für nicht Forum-Mitglieder
04:47 Frage nach Lösungsvorschlägen
📑 Inhalt:
Kurzvorstellung der Code Kata "Galgenraten" und meiner Aufgabenstellung (Vorgaben) an diese Coding Challange.
🎪 Zielgruppe:
Für die Teilnehmer der Code Kata "Galgenraten" im AutoIt Forum.
Mit der Fragestellung wie genau ist die Aufgabenstellung gemeint.
🔇 Out of scope:
Ich habe bewusst auf das Zeigen meines Codes, meiner Lösungsvariante verzichtet.
Ebenfalls wurde der Mechanismus wie man von "InputBox()" zur "Consolen App" kommt, nicht erläutert.
---------------------
💡 Eindrücke/Feedback ist natürlich erwünscht, Danke 🤝 .