Hangman in Delphi

Arwenly

Grünschnabel
Hallo!

Ich muss für den Informatik unterricht ein Hangman Programm schreiben. Weiß aber ehrlich gesagt nicht so recht wie ich überhaupt anfangen soll. :confused:

Das Ratewort soll durch Striche angezeigt werden. Buchstaben sollen eingegeben, nicht angeklickt werden. Bei einem falsch geratenen Buchstaben soll ein Teil des Galgens gemalt werden und die Fehlversuche angezeigt werden.

Für einen Source Code mit kurzen Erklärungen wäre ich wirklich seeeehr dankbar. Es geht mir nicht darum mich vor der arbeit zu drücken, sondern um eine Lösung zu sehen und dadurch auch zu einer eigenen zu kommen.

Vielen Dank schonmal im Vorraus :)

MfG Arwenly
 
teil das ganze in unterprogramme auf. in jedem einzelnen, wird ein strich gezeichnet. dann machst du die striche die die buchstaben darstellen sollen, und stellst sie auf visible oder unvisible. wenn der buchstabe eraten wurde, stellst du den strich auf unvisible, oder schreibst gleich in dieses Label den richtigen Buchstaben.

Eingabe machst du mit einem Editfeld, oder mit auch immer was du willst. Vergleichst diesen Buchstaben mit dem String des Wortes, wenn der Buchstabe (1x oder öfters) enthalten ist, vertauscht du eben die Striche gegen die Buchstaben, aber dass mit den Labels kannst du auch so machen wie du willst. Wenn er nicht enthalten ist, erhöhst du die Anzahl der Falsch geratenen, und rufst je nach Anzahl das jeweilige Unterprogramm dass die Striche des Männchens zeichnet auf.
 
Ich würde das Problem so angehen:

Zunächst würde ich in einem Fenster zwei Bereiche erstellen, eines für die Eingabe und Darstellung des gesuchten Wortes mit den bereits richtigen Buchstaben und zweitens den Bereich, in dem der Hang-Man gemalt wird.

Wie stelle ich die geratenen Buchstaben dar?

Du solltest in einer Variablen den Ratebegrif speichern und in einer anderen
die bereits gefundenen Buchstaben. Zu Beginn entspricht diese Variable genau sovielen Unterstrichen, wie das Ratewort an Zeichen hat.

In einem Eingabefeld kann der Benutzer jeweils einen Buchstaben eingeben.
Prüfe in einer Schleife jeden Buchstaben des Rateworts, ob er mit dem eingegeben Buchstaben übereinstimmt.
Wenn ja, ersetze im Wort mit den bereits erratenen Zeichen den Unterstrich durch den gefundenen Buchstaben.
Solltest du aber nach Vergleich aller Zeichen feststellen, dass keine Entsprechung gefunden wurde, rufts Du eine Funktion auf, die den nächsten Strich des Galgenmännchens zeichnet.

Wie stelle ich das Galgenmännchen dar?

Je nach dem wie grafisch aufwendig das sein soll, mußt du verschiedene Elemente zur Darstellung wählen.
Z.B.
____ Ok, das ist natürlich nur eine bescheidene Darstellung. Für
| | das Prinzip gilt folgendes. Du benötigst zum Zeichnen des
\0/ | fertigen Galgenmännchens eine bestimmte Anzahl von Elementen,
| | sagen wir mal 10, die durchaus unterschiedlich sein können.
/ \ | In einer Variablen zählst du, wieviele Fehler bereits gemacht wurden
| und stellst dann das Element mit dieser Nummer dar.
Eigenschaft Visible auf true setzen.
D.h. also beim vierten Fehler zeigst du das 4. Element an, beim 5. Fehler das
5. etc.

ich hoffe das hilft Dir schon mal ein wenig weiter....
 
Original geschrieben von Arwenly
Hmm Danke, aber ehrlich gesagt, hat mir das kein bisschen geholfen :(

ich glaube nicht, dass dir hier jemand einen fix und fertigen code schreiben wird :) (außer jemand hat es schon zufällig bereits mal programmiert)..aber ich und vop haben dir wohl auch schon einen lösungsweg gegeben..
 
also ich würds auch so machen, und dazu einen Array verwenden. Wort in einen Array einlesen (also jeder Buchstabe ein Element), und dann mit einer Schleife immer wieder den Array durchlaufen und gucken, ob der eingegebene Buchstabe vorhanden ist.

Die Darstellung ist dann ne andere Geschichte. Da kannst Du aber auch einen Array verwenden, der dann ausgegeben wird. Der Array enthält genauso viele Elemente wie das Wort. Am Anfang ist aber in jedem Element ein Strich. Wenn jetzt im Wort-Array der dritte Buchstabe (z.B. "L") erraten wurde, dann wird im Strich-Array das dritte Element durch ein "L" ersetzt.

Eigentlich sind das nämlich zwei Teile die Du Prgrammieren musst:
1.) Der wesentlich einfachere und auch unwichtigere Teil: die grafische Oberfläche

2.) der eigentliche inhalt, also das Prinzip des Hangman-Spiels. Also das eine Schleife immer wider den Array komplett durchläuft und Buchstaben vergleicht, und diese Vorgänge dann weiterverarbeitet.

Gruss,
Christian
 
Zurück