Wörter in einem Array finden.
Übersicht

![]() |
PddBetreff: Wörter in einem Array finden. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo.
Ich habe ein Problem dabei, ein Wort in einem Array zu finden. Mein Array sieht so aus: Code: [AUSKLAPPEN] AChars$(20, 14, 5) d.h. 19 hoch, (ich rechne die 0 nicht mit.), 13 breit. Immer in (x, y, 1) ist ein Buchstabe gespeichert. Das gesamte Feld wird von unten Links angewendet: Code: [AUSKLAPPEN] ^ AChars$(20, 0, 1) | | | ... | 1---------> AChars$(1, 14, 1) Jetzt habe ich dazu eine Liste mit Wörtern. Code: [AUSKLAPPEN] Dim AWords$(10) Nun will ich herausfinden, ob in einer Reihe des AChars$ ein Wort aus AWords$ vorhanden ist. Das ganze sollte später auch RÜCKWÄRTS, DIAGONAL und SENKRECHT sein. Um nun zu überprüfen, ob das Wort enthalten ist, folgender Code: Code: [AUSKLAPPEN] For i = 1 To 20 ; Alle Zeilen durchgehen For g = 1 To (14 - Len(Word$)) wort_neu$ = "" For r = g To (g + Len(Word$)) wort_neu$ = wort_neu$ + AChars$(i, r, 1) Next DebugLog(wort_neu$) Next Next Somit sollte das Game sich beenden, wenn er das Wort in einer Zeile findet, oder nicht? Das blöde is nur, das das game jetzt noch 1FPS hat, wenn nicht sogar weniger :/ Hat jemand ne Idee, wie man das weniger Rechen-INtensiv machen kann? |
||
Lieber Apfel als Birne. |
![]() |
MhhF |
![]() Antworten mit Zitat ![]() |
---|---|---|
Probier mal hiermit
Code: [AUSKLAPPEN] Dim AChars$(20, 14, 5)
Dim AWords$(10) Awords$(1)="blitz" Awords$(2)="super" Awords$(3)="basic" ;Einlesen des Feldes Restore chardata For x=1 To 20 Read aChars(x,1,1),aChars(x,2,1),aChars(x,3,1),aChars(x,4,1),aChars(x,5,1),aChars(x,6,1),aChars(x,7,1),aChars(x,8,1),aChars(x,9,1),aChars(x,10,1),aChars(x,11,1),aChars(x,12,1),aChars(x,13,1),aChars(x,14,1) Next ;Spalten For y=1 To 14 s$="" For x=1 To 20 s$=s+AChars(x,y,1) Next For i=1 To 3 If Instr(s,AWords(i)) Then Print AWords(i)+" in Spalte: "+y+" Zeile: "+Instr(s,Awords(i))+" bis "+(Instr(s,Awords(i))+Len(AWords(i)))+" gefunden!" Next Next ;Zeilen For x=1 To 20 s$="" For y=1 To 14 s$=s+AChars(x,y,1) Next For i=1 To 3 If Instr(s,AWords(i)) Then Print AWords(i)+" in Zeile: "+x+" Spalte: "+Instr(s,Awords(i))+" bis "+(Instr(s,Awords(i))+Len(AWords(i)))+" gefunden!" Next Next ;Diagonal For x=-21 To 20 s$="" For y=1 To 14 If x+y>0 And x+y<21 Then s$=s+AChars(x+y,y,1) Next For i=1 To 3 If Instr(s,AWords(i)) Then Print AWords(i)+" in Z.: "+(x+(Instr(s,Awords(i))))+" S.: "+Instr(s,Awords(i))+" bis Z.: "+(x+Instr(s,Awords(i))+Len(AWords(i)))+"S.: "+(Instr(s,Awords(i))+Len(AWords(i)))+" gefunden!" Next Next .chardata Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","b","l","i","t","z","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","s","h","d","a","s","h","a","z","z" Data "g","e","g","j","a","r","i","d","a","u","h","a","z","z" Data "g","e","g","j","a","r","h","c","a","p","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","e","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","r","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" Data "g","e","g","j","a","r","h","d","a","g","h","a","z","z" |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
zB: Suchwort hat eine bestimmte ql:len. Wurde ein Buchstabe anhand ql:Mid (Suchwort,Position,1) des Suchwortes im Feld gefunden, so wird diese Position=Position+1 gerechnet. Ist Position= ql:len (Suchwort) so wurde das Wort gefunden. Das geht in alle Richtungen. Wird eine neue Zeile/Spalte/Diagonale eingelesen, sollte die Position wieder auf 1 gesetzt werden. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group