Wenn ich richtig verstanden habe, eine Zeichenfolge gegeben, möchten Sie einen Weg durch die Würfel markieren, die der Zeichenfolge entspricht. Manchmal gibt es mehrere mögliche Auswahlmöglichkeiten, daher kann das Hinzufügen eines Buchstabens das markierte Element komplett ändern. Es kann ein guter Ansatz sein, die Ergebnisse der vorherigen Teilzeichenfolge beizubehalten, sodass wir nicht von vorne beginnen müssen. Dann wäre es vernünftig, alle möglichen Pfade zu berechnen.
Die Antwort für eine gegebene Zeichenfolge s wäre eine Liste von Pfaden, wobei ein Pfad eine Liste von Gitterkoordinaten ist. Jeder Pfad ist etwas, das du angemessen hervorheben kannst, also markiere einfach den ersten. Wenn Sie der Zeichenfolge einen Buchstaben hinzufügen, finden Sie Pfade, die Sie erweitern können, und solche, die Sie nicht erweitern können.
Ich fürchte, ich weiß nicht, wie man Vb-Code schreibt. Da du nach Pseudocode gefragt hast, hier ist ein rauer Python-ähnlicher Pseudocode. Ich kodiere das boggle-Raster als eine Liste von 16 Elementen. Die Funktion "Nachbarn (x)" gibt eine Liste der benachbarten Positionen zurück (außer bei Randfällen, die [x-1, x + 1, x-4, x + 4] sein werden).
def firstLetter(typed):
answer = []
for pos in range(16): if grid[pos]==typed: answer += [pos]
return answer
def addletter(partialanswer, typed):
answer2 = []
for partial in partialanswer:
for neighbor in neighbors(partial[-1]):
if grid[neighbor]==typed:
# partial+[neighbor] is a list. answer2 is a list of such lists.
answer2 += partial + [neighbor]
return answer2
Wenn die Spielertypen „gehen“, zum Beispiel, dann (a) Spielertypen „g“, Code rufen first („g“) und bekommt eine Liste „Antwort“ der Positionen im Netz die ein "g" in ihnen haben. Markieren Sie, sagen wir, die erste. (b) player Typen "o", code Anrufe addletter (Antwort, "o") und erhält eine Liste der Pfade im Grid, die "go" sagen. Markieren Sie die erste noch einmal.
Danke! Es funktioniert :-) – jmasterx
@ user146780 froh, ich könnte helfen! – redtuna