Javakurs/Übungsaufgaben/Hangman: Unterschied zwischen den Versionen
(Fehler korrigiert) |
(→Kommentare) |
||
(16 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== Hangman == | == Hangman == | ||
− | Schreibe das in der Vorlesung besprochene Spiel Hangman für die | + | Schreibe das in der Vorlesung besprochene Spiel Hangman für die Konsole.<br> |
Es soll von einem Spieler beliebig oft spielbar sein. | Es soll von einem Spieler beliebig oft spielbar sein. | ||
− | In jedem Spielschritt soll die verbleibene Menge an Rateversuchen, sowie die bereits erratenen Buchstaben des Lösungswortes in der Form "HAN__AN" angezeigt werden. | + | In jedem Spielschritt soll die verbleibene Menge an Rateversuchen, sowie die bereits erratenen Buchstaben des Lösungswortes in der Form "HAN__AN" angezeigt werden. Die verbleibenden Rateversuche können einfach in Form einer Zahl angegeben werden. |
# Mache dir Notizen zum Spielablauf einer Hangman-Spielrunde. | # Mache dir Notizen zum Spielablauf einer Hangman-Spielrunde. | ||
# Skizziere den Programmablauf. | # Skizziere den Programmablauf. | ||
# Notiere den mittlerweile besser durchdachten Programmablauf möglichst übersichtlich und mit möglichst vielen Schritten. | # Notiere den mittlerweile besser durchdachten Programmablauf möglichst übersichtlich und mit möglichst vielen Schritten. | ||
− | # Mache dir Gedanken darüber welche Schritte sehr komplex sind und entwerfe auch für sie einen Programmablauf.<br><br> | + | # Mache dir Gedanken darüber, welche Schritte sehr komplex sind und entwerfe auch für sie einen Programmablauf.<br><br> |
− | # Kopiere und entpacke die | + | # Kopiere und entpacke [http://docs.freitagsrunde.org/Veranstaltungen/javakurs_2009/vorgaben/hangman/Hangman.zip die Vorgaben] in ein Verzeichnis deiner Wahl |
# Benutze zum Schreiben deines Programmes die Vorgabedatei "Hangman.java" im Verzeichnis "Hangman". | # Benutze zum Schreiben deines Programmes die Vorgabedatei "Hangman.java" im Verzeichnis "Hangman". | ||
+ | # Erstelle dein Programm mit dem Komando '''javac *.java''' | ||
+ | # Führe das Programm mit '''java Hangman''' aus | ||
− | '''Anmerkung''': Das Einlesen von Zeichen über die Konsole gestaltet sich in Java üblicherweise etwas umständlich. Aus diesem Grund enthalten die Vorgaben zu dieser Übung eine Bibliotheksklasse "Terminal", welche dir einige leicht zu benutzende Funktionen für die Arbeit mit der Konsole zur Verfügung stellt. Solange sich die Datei "Terminal.java" im selben Verzeichnis wie deine Datei "Hangman.java" befindet hast du Zugriff auf alle Funtionen der Bibliotheksklasse | + | '''Anmerkung''': Das Einlesen von Zeichen über die Konsole gestaltet sich in Java üblicherweise etwas umständlich. Aus diesem Grund enthalten die Vorgaben zu dieser Übung eine Bibliotheksklasse "Terminal", welche dir einige leicht zu benutzende Funktionen für die Arbeit mit der Konsole zur Verfügung stellt. Solange sich die Datei "Terminal.java" im selben Verzeichnis wie deine Datei "Hangman.java" befindet, hast du Zugriff auf alle Funtionen der Bibliotheksklasse, indem du sie in der Form "Terminal.gewünschteFunktion()" aufrufst. |
− | |||
* public static String readString () // liest ein Wort von der Konsole | * public static String readString () // liest ein Wort von der Konsole | ||
* public static char readChar () // liest ein enzelnes Zeichen von der Konsole | * public static char readChar () // liest ein enzelnes Zeichen von der Konsole | ||
+ | |||
+ | === Fortgeschritte === | ||
+ | '''Achtung, schwer!''' | ||
+ | * Gib die verbleibenden Rateversuche in Form eines ASCII-Hangmans aus. (Beispiele findest du weiter unten) | ||
+ | '''Tipp:''' Ein Array zum Speichern der Graphik kann hier außerordentlich hilfreich sein. | ||
+ | |||
+ | == Kommentare == | ||
+ | Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;) | ||
+ | |||
+ | <!-- | ||
+ | Als kleine Starthilfe folgt ein Beispiel, wie so ein Kommentar formatiert sein könnte. Mit "Vorschau zeigen" kannst du dir ansehen, was deine Änderung bewirken würde, ohne wirklich etwas zu ändern. | ||
+ | Du musst übrigens außerhalb dieses auskommentieren Bereichs schreiben ;) | ||
+ | |||
+ | ==== Robert ==== | ||
+ | Na mal schauen, ob irgendjemand diese Funktion wirklich benutzt. Ich fände es jedenfalls toll. | ||
+ | |||
+ | --> | ||
+ | |||
+ | Ich denke, dass String.contains() sowie replaceCharAtPosition() keinen Mehrwert für die Lösung der Aufgabe bieten, da in jedem Fall eine Schleife zum Finden der einzusetzenden Buchstaben verwendet werden muss. Daher ist die Verwendung eines char-Arrays intuitiver - hier kann Suche und Ersetzen in einer Schleife durchgeführt werden. [martin] | ||
+ | |||
+ | Um die Konsole zu löschen muss eine schleife verwendet werden die zig mal System.out.println(""); ausführt, da terminal keine clear; operation unterstüzt. [georg] | ||
+ | |||
+ | ------------------------------------------- | ||
+ | |||
+ | ==== ASCII - ART ==== | ||
+ | |||
+ | ++--++------+-- | ||
+ | || // | | ||
+ | ||// _|_ | ||
+ | |+/ /o 0\ | ||
+ | ++ (| ( |) | ||
+ | +| \_-_/ | ||
+ | || __|__ | ||
+ | || )----O| : |O----( | ||
+ | || | : | | ||
+ | || | _ | | ||
+ | ++ || || | ||
+ | /++\ _|| ||_ | ||
+ | //||\\ \__/ \__/ | ||
+ | // || \\ | ||
+ | --++--++--++---------------- | ||
+ | |||
+ | _____ | ||
+ | |/ | | ||
+ | | O | ||
+ | | `|´ | ||
+ | | ^ | ||
+ | ____|_____ | ||
+ | |||
+ | |||
+ | |||
+ | [[Kategorie:Java]] | ||
+ | [[Kategorie:Java_Aufgaben]] |
Aktuelle Version vom 21. März 2011, 12:11 Uhr
Inhaltsverzeichnis
Hangman
Schreibe das in der Vorlesung besprochene Spiel Hangman für die Konsole.
Es soll von einem Spieler beliebig oft spielbar sein.
In jedem Spielschritt soll die verbleibene Menge an Rateversuchen, sowie die bereits erratenen Buchstaben des Lösungswortes in der Form "HAN__AN" angezeigt werden. Die verbleibenden Rateversuche können einfach in Form einer Zahl angegeben werden.
- Mache dir Notizen zum Spielablauf einer Hangman-Spielrunde.
- Skizziere den Programmablauf.
- Notiere den mittlerweile besser durchdachten Programmablauf möglichst übersichtlich und mit möglichst vielen Schritten.
- Mache dir Gedanken darüber, welche Schritte sehr komplex sind und entwerfe auch für sie einen Programmablauf.
- Kopiere und entpacke die Vorgaben in ein Verzeichnis deiner Wahl
- Benutze zum Schreiben deines Programmes die Vorgabedatei "Hangman.java" im Verzeichnis "Hangman".
- Erstelle dein Programm mit dem Komando javac *.java
- Führe das Programm mit java Hangman aus
Anmerkung: Das Einlesen von Zeichen über die Konsole gestaltet sich in Java üblicherweise etwas umständlich. Aus diesem Grund enthalten die Vorgaben zu dieser Übung eine Bibliotheksklasse "Terminal", welche dir einige leicht zu benutzende Funktionen für die Arbeit mit der Konsole zur Verfügung stellt. Solange sich die Datei "Terminal.java" im selben Verzeichnis wie deine Datei "Hangman.java" befindet, hast du Zugriff auf alle Funtionen der Bibliotheksklasse, indem du sie in der Form "Terminal.gewünschteFunktion()" aufrufst.
- public static String readString () // liest ein Wort von der Konsole
- public static char readChar () // liest ein enzelnes Zeichen von der Konsole
Fortgeschritte
Achtung, schwer!
- Gib die verbleibenden Rateversuche in Form eines ASCII-Hangmans aus. (Beispiele findest du weiter unten)
Tipp: Ein Array zum Speichern der Graphik kann hier außerordentlich hilfreich sein.
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)
Ich denke, dass String.contains() sowie replaceCharAtPosition() keinen Mehrwert für die Lösung der Aufgabe bieten, da in jedem Fall eine Schleife zum Finden der einzusetzenden Buchstaben verwendet werden muss. Daher ist die Verwendung eines char-Arrays intuitiver - hier kann Suche und Ersetzen in einer Schleife durchgeführt werden. [martin]
Um die Konsole zu löschen muss eine schleife verwendet werden die zig mal System.out.println(""); ausführt, da terminal keine clear; operation unterstüzt. [georg]
ASCII - ART
++--++------+-- || // | ||// _|_ |+/ /o 0\ ++ (| ( |) +| \_-_/ || __|__ || )----O| : |O----( || | : | || | _ | ++ || || /++\ _|| ||_ //||\\ \__/ \__/ // || \\ --++--++--++----------------
_____ |/ | | O | `|´ | ^ ____|_____