Das Beispiel dieses Artikels beschreibt Java, um Word -Suche Maze -Spiele zu erreichen. Teilen Sie es für alle für Ihre Referenz. Die spezifische Analyse ist wie folgt:
In Zeitschriften sehen wir oft Mini -Spiele, die nach Wörtern suchen. Dieser Computer ist sehr bequem zu verarbeiten, aber die Qualität des Algorithmus ist wichtig, denn wenn er mit einem Brute -Force -Algorithmus implementiert ist, ist die Zeit, die er benötigt, unvorstellbar.
Dies ist die Realisierung der Datenstruktur und Probleme, die die Realisierung der Realisierung der Beschreibung der Java -Sprache lösen.
Der vollständige Code ist wie folgt, der Kommentar ist sehr klar
Java.io.buffReader; ** * Wortsuche Maze * * * * */public class WordSearch {/** * Im Konstruktor konstruieren Sie zwei Eingabestreams, Eingabestellen von Wörtern und Eingabeströme von Tabellen * * */public wotSearch () löscht IOException {puzzzlestrea aus {puzzzzlestrea aus m = openFile ("Formatisspfad eingeben:"); } /*** @Return -Übereinstimmungen Es gibt wie viele Wörter in der Gesamtübereinstimmung* Suche aus acht Richtungen in jeder Position* RD, um die inkrementelle Ausbeute anzugeben, z. B. Rd = -1, was angibt ZB in der Spalte zB: CD = -1. Zeigt einen Schritt nach links an* SO RD = 1, CD = 0 bedeutet Süd* rd = -1, cd = 0 bedeutet nörd Matches = 0; ) für (int cd = -1; CD <= 1; CD ++) if (rd! = 0 || cd! *** In den angegebenen Koordinaten geben nach der Suche nach einer bestimmten Richtung die Anzahl der übereinstimmenden Wörter zurück. "; int nummatches = 0; int SearchResult; charsequence + = theboard [Baserow] [Basecol]; for (int i = baserow + rowdelta, j = Basecol + Coldlta; i> = 0 && j> = 0 & & & j < Clumns; -Border gefährlich, und wenn das letzte Wort das Präfix entspricht, gibt der Index -1 * * / if (SearchResult == Thewords.length) zurück; SearchResult] .Startswith (charsequence) break; Basecol + "Spalte" + i + " + j);} Rückgabe nummatches;} /*** Erklären Sie zuerst Arrays.BinarySearch (Objekt [], Objekt)* Verwenden Sie einen binären Suchalgorithmus, um nach dem angegebenen Array zu suchen, um das angegebene zu erhalten Objekt. Vor diesem Anruf muss * nach dem Array nach der natürlichen Reihenfolge der Array -Elemente sortiert werden (über die obige Sorte (Objekt [] Methode). * Wenn keine Sortierung des Arrays vorliegt, ist das Ergebnis unklar. Elemente, die nicht können miteinander verglichen werden (zum Beispiel String und Ganzzahl), *das Array nicht nach der natürlichen Reihenfolge der Array -Elemente sortieren, daher ist das Ergebnis nicht klar) *保证找到的是哪一个。 */ private statische Int -Präfixsearch (String [] A, String x) {int idx = arrays.BinarySearch (a, x); Holen Sie sich den Eingangsstream* / private BufferedReader OpenFile (String -Nachricht) {String Dateiname = "" "" "" "" "" "" "System.out.println (Message +": "); try {Filename = in.readline (); FileIn == null); Puzzlestream.readline ()) == null) neue IOException ("keine Linien in Puzzle -Datei"); = Null) {if (oneline.length () !! stem.err. Println ("Puzzle ist nicht rechteckig; überspringen Zeile überspringen"); sonst puzzlelines.add (eins);} rows = puzzzlelines.size (); Theboard = New Char [Zeilen] [Spalten] ;; () Löscht ioException {list <string> Words = new ArrayList <string> () ;; String thisword; 0) {System.err.println ("nicht in der Reihenfolge des Wörterbuchs sortiert, diesmal"); Words.size ()]; .ou T.println ("IO -Fehler:"); [] Thewords;Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.