Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Galgenraten (https://www.delphipraxis.net/173833-galgenraten.html)

Amateurprogammierer 19. Mär 2013 20:35

Galgenraten
 
Hallo,
Ich möchte gern mit Delphi Galgenraten/Hangman programmieren.

Die gesuchten Wörter habe ich in einer .txt Datei.
Frage Nummer 1: Wie wähle ich zufällig eines dieser Worte aus, und zeige dieses Wort dann unaufgedeckt (in Strichen, also pro Buchstabe ein Label) auf dem Bildschirm?

Den Buchstaben, den ich vermute, gebe ich in ein Edit Feld ein. Beim Klick auf einen Button wird kontrolliert ob diese in dem Wort vorkommt. Wenn ja, sie wird dieser Buchstabe in dem Wort aufgedeckt, wenn nein wird ein Teil des Galgens gezeichnet.Nun Frage Nummer 2: wie überprüfe ichob der Buchstabe im Wort enthalten ist?


MfG

Mathematiker 19. Mär 2013 20:51

AW: Galgenraten
 
Hallo,
sehr viele Fragen auf einmal.
Zitat:

Zitat von Amateurprogammierer (Beitrag 1208016)
Die gesuchten Wörter habe ich in einer .txt Datei.
Frage Nummer 1: Wie wähle ich zufällig eines dieser Worte aus, und zeige dieses Wort dann unaufgedeckt (in Strichen, also pro Buchstabe ein Label) auf dem Bildschirm?

Mein Vorschlag:
Eine Tstringlist erzeugen, die Datei laden, einen zufälligen Eintrag ermitteln ..., z.B.
Delphi-Quellcode:
var woerter:tstringlist;
    anzahl,zufall:integer;
    ratewort:string;
begin
    randomize;
    woerter:=tstringlist.create;
    woerter.loadfromfile('deindateiname.txt');
    anzahl:=woerter.count;
    zufall:=random(anzahl);
    ratewort:=woerter[zufall];
    ...
    woerter.free;
end;
Bei den ... würde ich vorschlagen, das Wort für den Anfang (ist einfacher) in Großbuchstaben umwandeln. Einen zweiten String, z.B. gerateneswort, machst Du so lang wie Dein ratewort, aber mit einem Zeichen, z.B. #:
Delphi-Quellcode:
    gerateneswort:='';
    for i:=1 to length(ratewort) do gerateneswort:=gerateneswort+'#';
So, das war schon ziemlich viel Hilfe. Versuche es erst einmal bis hier hin.

Beste Grüße
Mathematiker

Sir Rufo 19. Mär 2013 23:09

AW: Galgenraten
 
Bitte
Delphi-Quellcode:
Randomize
nur einmal in der Anwendung aufrufen, wenn es halbwegs zufällig sein soll

Volker Z. 20. Mär 2013 00:57

AW: Galgenraten
 
Hallo,

nicht nur Randomize nur einmal aufrufen! Auch die Liste der gesuchten Wörter nur einmal pro Spiel einlesen; ist nicht wirklich prickelnd, wenn nur N Worte in der Liste vorliegen und eines davon mehrfach pro Spiel zufällig ausgewählt wird.
Besser (sicherstellen, dass genügent Worte für einen Hangman vorliegen) beim Spielstart alle Möglichkeiten einlesen, ein Wort per Zufall bestimmen und den Zufallswert aus der Liste entfernen.

Gruß

Mathematiker 20. Mär 2013 05:07

AW: Galgenraten
 
Hallo,
Zitat:

Zitat von Sir Rufo (Beitrag 1208032)
Bitte
Delphi-Quellcode:
Randomize
nur einmal in der Anwendung aufrufen, wenn es halbwegs zufällig sein soll

Zitat:

Zitat von Volker Z. (Beitrag 1208038)
Besser (sicherstellen, dass genügent Worte für einen Hangman vorliegen) beim Spielstart alle Möglichkeiten einlesen, ein Wort per Zufall bestimmen und den Zufallswert aus der Liste entfernen.

Beides vollkommen richtig.
Ich glaube aber, das überfordert ihn noch mehr. Selbst die Stringliste dürfte schon schwierig sein. Wenn ich es richtig verstanden habe, geht es um die ersten Schritte mit Delphi.

Beste Grüße
Mathematiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz