Ergebnis 1 bis 8 von 8

Thema: Wordament Wortfeld generieren

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #2
    Das klingt eher, wie ein rekursiver Ablauf.

    Code:
    funktion MatrixCrawler (teilwort, ref wörterliste, xPos, yPos)
    begin
      
      wenn IstTeilEinesWortes(teilwort) 
        und xPos >= 0 und xPos < anzahlSpalten 
        und yPos >= 0 und yPos < anzahlZeilen
      dann
      
        // Finden eines Wortes
        wenn teilwort in Wörterbuch
        dann
          füge teilwort in Wörterliste    
        wenn_ende
    	
        // erstellen eines neuen Teilwortes
        buchstabe = gibBuchstabe(xPos, yPos)
        neuesTeilwort = teilwort + buchstabe
    	
        // durchlaufe alle verfügbaren Richtungen
        MatrixCrawler(neuesTeilwort, wörterliste, xPos - 1, yPos)
        MatrixCrawler(neuesTeilwort, wörterliste, xPos + 1, yPos)
        MatrixCrawler(neuesTeilwort, wörterliste, xPos, yPos - 1)
        MatrixCrawler(neuesTeilwort, wörterliste, xPos, yPos + 1)
    	
      wenn_ende
      
    end
    Dies hab ich nun innerhalb von ein paar Minuten hingeschmiert. Kann sein, dass ich an der Abbruchbedingung was übersehen habe.
    In der Funktion IstTeilEinesWortes() werden alle Wörter im Wörterbuch mit dem Teilwort verglichen. Ein Wort im Wörterbuch muss dann mit dem Teilwort anfangen.
    Wenn dies wahr ist, dann soll noch mal überprüft werden, ob wir uns noch in der Matrix befinden.
    Wenn alle Bedingungen erfüllt sind, wird geschaut, ob das Teilwort ein komplettes Wort im Wörterbuch entspricht. Wenn ja, dann wird das Teilwort in die Wörterliste gespeichert.
    Nun wird die Rekursion gestartet. Es wird ein neues Teilwort gebildet, und durchläuft nun alle Richtungen.

    wörterliste ist ein Referenzparameter, je nach Sprache müsste es ein wenig anders implementiert werden.

    Geändert von Whiz-zarD (29.05.2013 um 08:18 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •