In der Schule sollen wir uns Delphi mehr oder weniger selber beibringen und das anhand eines Hangmanspiels.
Nun habe ich das Spiel soweit eingeteilt und verzweifel nun am Programmieren.
Soweit hab ich das Spiel bis jetzt:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105:
| unit pHangman;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TTHangman = class(TForm) LbRatewort: TLabel; EdBitteEingeben: TEdit; LbBuchstabe: TLabel; procedure FormCreate(Sender: TObject); procedure FormKeyPress(Suchwort: String; Sender: TObject; var Key: Char); private Buchstabe:string; function Ratewort_Erzeugen(Suchwort : String) : string; procedure Ratewort_Zeigen(Ratewort : String); function Wort_Durchsuchen(Suchwort:String; zaehler:integer; Buchstabe:String) : Boolean; public end;
var THangman: TTHangman;
implementation
{$R *.DFM}
procedure TTHangman.FormCreate(Sender: TObject);
var Zaehler : Integer; var Ratewort : String [30]; var Suchwort : String [30]; var Buchstabe : String;
begin
Suchwort := 'Dienstag';
For Zaehler := 1 to length(Suchwort) do
begin Buchstabe := ''; Suchwort[Zaehler] := upcase (Suchwort[Zaehler]); Ratewort := Ratewort_Erzeugen(Suchwort); Ratewort_Zeigen(Ratewort); Wort_Durchsuchen(suchwort,zaehler, Buchstabe); end;
end;
function TTHangman.Ratewort_Erzeugen(Suchwort : String):String; var Zaehler : integer; var Leerwort : string;
begin Leerwort := ''; for Zaehler := 1 To length(Suchwort) do begin leerwort := Concat(Leerwort,'_ '); end; Ratewort_Erzeugen := Leerwort; end;
procedure TTHangman.Ratewort_Zeigen(Ratewort:String);
begin LbRatewort.caption := Ratewort; end;
procedure TThangman.FormKeyPress(Suchwort : String; Sender: TObject; var Key: Char); var Zaehler : Integer; var Buchstabe : char; begin buchstabe := key; buchstabe := upcase(Buchstabe); for zaehler := 1 To length(Suchwort) do begin if wort_durchsuchen(suchwort, zaehler, Buchstabe) = true then begin ? end else .. end; end;
function TThangman.wort_durchsuchen(Suchwort:String; zaehler:integer; buchstabe:String):boolean; begin If suchwort[zaehler] = buchstabe then begin wort_durchsuchen := true end else wort_durchsuchen := false; end; end. |
Um den Durchgang kurz zu schildern.
Das zu suchende Wort ist deklariert "Dienstag".
Erzeugung von einem Unterstrich für jeden Buchstaben von Dienstag.
Ausgabe der Unterstriche in einem Label.
Spieler drückt einen Buchstaben.
Wort wird auf den Buchstaben hin durchsucht.
Wenn der Buchstabe vorhanden ist, soll der Buchstabe in das Ratewort (Anfangs _ _ _ _ _ _ _ _ ) eingesetzt werden -> (D _ _ N _ _ _ G)
Wenn der Buchstabe nicht vorhanden ist, sollen die Fehlversuche in einem Label hochgezählt werden.
Danke für eure Hilfe
Quality*