Galgenmännchen in Lazarus

Für Fragen von Einsteigern und Programmieranfängern...

Galgenmännchen in Lazarus

Beitragvon Julix » 18. Mär 2017, 13:35 Galgenmännchen in Lazarus

Hallo,
ich würde gerne Galgenmännchen in Lazarus schreiben.
Habe auch schon ein bisschen was geschafft.
Das bisherige Programm kann mithilfe einer if-anweisung schon überprüfen ob ein gesuchter Buchstabe in einem String (zu erratendes Wort) ist.
Code: Alles auswählen
for i:=1 to length(s) do
  begin
 
  if s[i]=ges then ausgabe:=ausgabe+ges else ausgabe:=ausgabe+'X';
 
  end;                                                           

Die Ausgabe sieht dann so aus:
Gesuchte Wort:'Hallo'
Buchstabe:'a'
Ausgabe:'XaXXX'

Mein Problem ist ich weiß nicht, wie man ich es hinbekommen soll, dass in der nächsten 'Runde' dann auch der Buchstabe, den ich schon erraten habe berücksichtigt wird.
Bsp.
Wenn ich in der nächsten Runde ein 'l' suche wird ausgegeben:
XXllX
Es soll aber das 'a' aus der Runde davor berücksichtigt werden:
XallX

Danke im Voraus
Julix
 
Beiträge: 4
Registriert: 17. Feb 2017, 16:02

Beitragvon af0815 » 18. Mär 2017, 15:37 Re: Galgenmännchen in Lazarus

Ich würde sagen, du musst dir die Buchstaben die schon richtig erraten wurden speichern.

Eine Möglichkeit ist, die 'ausgabe' String mit X zu machen, der genau solange wie dein gesuchtes Wort inj 's' ist. Wenn ein Buchstabe richtig ist, so tauscht du dort das X gegen den Buchstaben aus und zeigst diesen String dem Benutzer wie bisher an.

Initialisierung einmalig bei Beginn der Runde
Code: Alles auswählen
 
for i:=1 to length(s) do
  begin
    ausgabe[i]:= 'X';
  end;
 


Abfrage und austausch
Code: Alles auswählen
 
for i:=1 to length(s) do
  begin
     if s[i]=ges then ausgabe[i] := ges;
  end;
 


und damit du weisst ob das Spiel zu ende ist, braucht man dann nur 's' mit 'ausgabe' vergleichen. Sind beide gleich so bist du fertig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3001
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Julix » 18. Mär 2017, 16:30 Re: Galgenmännchen in Lazarus

Ja danke erstmal aber soweit hatte ich auch schon einmal gedacht.
Bekomme dann immer nur eine Fehlermeldung:
'Incompatible types: got "AnsiString" expected "Char".'

Wenn ich dann ges als Char bei den Variablen angeben will gibt er mir eine Fehlermeldung in der Zeile aus, wo ich ges einlesen will.
Also muss ich irgendwie ges von einem String in einen Char umwandeln sofern das geht.

af0815 hat geschrieben:Abfrage und austausch
Code: Alles auswählen
 
for i:=1 to length(s) do
  begin
     if s[i]=ges then ausgabe[i] := ges;
  end;
 


Julix
 
Beiträge: 4
Registriert: 17. Feb 2017, 16:02

Beitragvon theo » 18. Mär 2017, 17:31 Re: Galgenmännchen in Lazarus

Julix hat geschrieben:ich würde gerne Galgenmännchen in Lazarus schreiben.

Lügen haben kurze Beine. ;-)

Julix hat geschrieben:Danke im Voraus

Immerhin schreibst du "im Voraus" nicht mit zwei "r".
Danke dafür.
theo
 
Beiträge: 7760
Registriert: 11. Sep 2006, 18:01

Beitragvon af0815 » 18. Mär 2017, 18:22 Re: Galgenmännchen in Lazarus

Julix hat geschrieben:Wenn ich dann ges als Char bei den Variablen angeben will gibt er mir eine Fehlermeldung in der Zeile aus, wo ich ges einlesen will.
Also muss ich irgendwie ges von einem String in einen Char umwandeln sofern das geht.


Vielleich hilft dir der http://wiki.freepascal.org/Character_and_string_types/de link. Dort mal mit ShortString ansehen. Siehe auch http://wiki.freepascal.org/Shortstring/de

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3001
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried