AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [Anfänger] Wortliste auf einen String überprüfen
Thema durchsuchen
Ansicht
Themen-Optionen

[Anfänger] Wortliste auf einen String überprüfen

Offene Frage von "JonasxD"
Ein Thema von JonasxD · begonnen am 5. Mai 2008 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
JonasxD

Registriert seit: 20. Jan 2007
16 Beiträge
 
#1

[Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:17
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:
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.
Ihr müsst nur mal meinem Gehirn nen Anstoß geben^^

bis dahin mfg Jonas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:21
Hallo Jonas, wenn Du eine Stringliste verwendest, könntest Du Dir mal die Methode IndexOf() anschauen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:22
Lade die Datei mit der Wortliste ein eine Delphi-Referenz durchsuchenTStringListe und gucke mit der Methode IndexOf von TStringList, ob das Wort in der Liste vorhanden ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:25
jupp, TStringList biete Möglichkeiten zum Suchen

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#5

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:37
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:
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;
Grüße ddcool
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#6

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:43
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
  Mit Zitat antworten Zitat
JonasxD

Registriert seit: 20. Jan 2007
16 Beiträge
 
#7

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:47
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:49
Und wenn du den Lehrer wirklich beeindrucken willst, dass implementierst du eine Binärsuche.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:49
Zitat von JonasxD:
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
Ich würde es aber nur für sinnvoll halten, wenn es den Punktabzug nur dann
geben würde wenn es möglich gewesen wäre aus den Buchstaben ein Wort zu bilden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
ddcool

Registriert seit: 8. Jun 2003
146 Beiträge
 
Delphi XE2 Architect
 
#10

Re: [Anfänger] Wortliste auf einen String überprüfen

  Alt 5. Mai 2008, 14:55
Zitat:
Ich würde es aber nur für sinnvoll halten, wenn es den Punktabzug nur dann
geben würde wenn es möglich gewesen wäre aus den Buchstaben ein Wort zu bilden.
Ja genau das, bei zufälligen Buchstaben kann es ja sein, dass man sich viel zu häufig neue Buchstaben hohlen muss um das Wort zu vervollständigen. Das würde unnützen Punkteabzug geben, weil die warscheinlichkeit, dass ein Buchstabe vorkommt liegt bei nur 26 Buchstaben schon bei 1/26 oder 6/156.

Grüße ddcool
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz