![]() |
[Anfänger] Wortliste auf einen String überprüfen
Hallo DP-User,
Im Informatik Unterricht haben wir (endlich) mit Delphi angefangen. Nun sollen wir bis zum Ende des Schuljahres eine Abgespeckte Version des Spiels "Text Express" schreiben. Bei dem Spiel geht es darum, dass man verschiedene Buchstaben bekommt (6). Und dann aus diesen Wörter bilden muss. Je größer das Wort desto mehr Punkte erhält man. Wir entwickeln das Programm vollständig in der Schule, doch habe ich im Moment nichts zu tun und dachte mir ich fange schonmal an um ein paar Pluspunkte zu sammeln. Das gesamte Programm soll als Konsolenanwendung geschrieben werden. Mein Problem ist nun, dass ich nicht weiß, wie ich eine vorhandene Wortliste ( wortliste.txt eine Zeile - ein Wort) auf einen String hin überprüfen lassen kann. Ich habe bereits dieses und andere Foren durchstöbert und nichts konkretes gefunden. Ich muss wohl die gesamte Liste mit LoadFromFile in eine string-Liste einlesen und dann überprüfen, ob mein String darin enthalten ist. Da stecke ich fest. Hier mein bisheriger Quellcode:
Delphi-Quellcode:
Ihr müsst nur mal meinem Gehirn nen Anstoß geben^^
program TEultra;
{$APPTYPE CONSOLE} uses SysUtils; var option : integer; buchstaben : array[1..6] of string; buchstabe : integer; i : integer; wort : string; begin repeat writeln('Willkommen bei Text Express Ultra!'); writeln('1 = Spiel starten'); writeln('2 = Highscore'); writeln('3 = Spiel Beenden'); readln(option); if option = 1 then begin for I := 1 to 6 do begin randomize; buchstabe := random(26) + 65; buchstaben[i] := char(buchstabe); end; writeln(buchstaben[1]); writeln(buchstaben[2]); writeln(buchstaben[3]); writeln(buchstaben[4]); writeln(buchstaben[5]); writeln(buchstaben[6]); writeln('Bilden sie aus diesen Buchstaben nun die Wörter!'); writeln('Drücken sie enter um mit dem Spiel zu Beginnen!'); readln; readln(wort); end else if option = 2 then begin end else begin writeln('Bitte eine Gültige Option eingeben!'); end; until option = 3; end. bis dahin mfg Jonas |
Re: [Anfänger] Wortliste auf einen String überprüfen
Hallo Jonas, wenn Du eine Stringliste verwendest, könntest Du Dir mal die Methode IndexOf() anschauen.
|
Re: [Anfänger] Wortliste auf einen String überprüfen
Lade die Datei mit der Wortliste ein eine
![]() |
Re: [Anfänger] Wortliste auf einen String überprüfen
jupp, TStringList biete Möglichkeiten zum Suchen :angel:
ansonsten die Datei per ReadLn zeilenwise einlesen und dann einfach prüfen ob eine eingelesene Zeile (Zeile=Wort, bei einem Wort pro Zeile) mit dem eingegebenem String übereinstimmt. |
Re: [Anfänger] Wortliste auf einen String überprüfen
Hi Jonas,
so nebenbei. Was mir gerade auffällt ist, dass du 6 Buchstaben zufällig erzeugst. Was aber wenn man aus diesen 6 Buchstaben gar kein Wort bilden kann? Ich würde an deiner Stelle die Textdatei mit den Wörtern auslesen und dann die Buchstaben eines Wortes zufällig ausgeben lassen.
Delphi-Quellcode:
Grüße ddcool
var
TextDatei: TStringList; wort: String; i: Integer; begin TextDatei := TStringList.Create; TextDatei.LoadFromFile('Datei.txt'); randomize; wort := TextDatei.Strings[random(TextDatei.Count-1)]; for i := 0 to Length(wort)-1 do begin randomize; writeln(wort[random(Length(wort)-1)]; // Hier musst du dir noch ausdenken, wie du es realisierst, // dass ein Buchstabe nich zweimal genommen wird. end; TextDatei.Free; end; |
Re: [Anfänger] Wortliste auf einen String überprüfen
solltest auch auf klein-/GROSSSCHREIBUNG achten, denn das und DAS oder Das ist was anderes. für die bildschirmsteuerung, würd ich mir noch die ANSI Escapesequenzen ansehen, oder 'ne nachgebaute CRT unit.
@himitsu: fände es nicht so toll, wenn bei eingabe jedes buchstabens die gesamte wortliste neu durchsucht werden sollte, dies betrifft sowohl kleine als auch grosse wortlisten. bei kleinen wäre wohl 'ne stringlist von vorteil, für grösse, bräuchte man schon inkrementelle verfahren und 'ne spezielle datenstruktur, damit das effizient laufen kann. <HTH> GG |
Re: [Anfänger] Wortliste auf einen String überprüfen
danke für die Antworten bisher! werd mal sofort testen
@ddcool Ich hatte es eigentlich so geplant, dass man sich 6 neue Buchstaben geben kann , wenn man nicht mehr weiter kommt aber dafür dann Punkte abgezogen werden! mfg |
Re: [Anfänger] Wortliste auf einen String überprüfen
Und wenn du den Lehrer wirklich beeindrucken willst, dass implementierst du eine Binärsuche. ;)
|
Re: [Anfänger] Wortliste auf einen String überprüfen
Zitat:
geben würde wenn es möglich gewesen wäre aus den Buchstaben ein Wort zu bilden. Grüße Klaus |
Re: [Anfänger] Wortliste auf einen String überprüfen
Zitat:
Grüße ddcool |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 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