Frage

Ich baue ein boggle Spiel in vb .net. Gerade jetzt, meine Würfel sind als 2D-Array (0,0 0,1) etc ...

Was ich will, es zu tun ist, wie ich das Wort tippen bin, dass sie es auf dem Board unterstreicht die button(x,y).doclick Unter verwendet, die es hervorhebt. Gerade jetzt meine Implementierung findet die ersten Buchstaben, dann hält jeden Buchstaben versuchen, bis er die 8 Ecke Bedingung erfüllt (dh es wird neighbored bis zum letzten), aber das funktioniert nicht immer. Wenn es sagen ist 2 „G“ 's auf dem Brett, und ich will den Boden ein, wird dies nicht funktionieren. Kann mir jemand ein Beispiel psuedocode von dem, was geschehen muss. Ich habe seit fast 6 Stunden stapft versucht, dies herauszufinden. Dank

War es hilfreich?

Lösung

Wenn ich richtig verstehe, eine Zeichenfolge, die Sie einen Weg durch den Würfel hervorheben mögen gegeben, die die Zeichenfolge übereinstimmt. Manchmal gibt es mehrere Wahlmöglichkeiten, so einen Brief Hinzufügen kann vollständig ändern, was markiert ist. Es kann ein guter Ansatz sein, der hier ergibt sich aus der vorherigen Teilkette zu halten, so müssen wir über nicht starten. Dann wird eine vernünftige Sache zu tun wäre, um alle möglichen Pfade zu berechnen.

Die Antwort für eine bestimmte Zeichenfolge würde s eine Liste von Pfaden, wo ein Pfad eine Liste von Gitterkoordinaten. Jeder Weg ist etwas, das man vernünftigerweise markieren könnte, so dass Sie nur das erste Highlight. Wenn Sie einen Brief an die Zeichenfolge hinzufügen, finden Sie Wege, die Sie erweitern können, und entfernen Sie die, die Sie nicht erweitern können.

Ich fürchte, ich weiß nicht, wie vb Code zu schreiben. Da Sie für Pseudo-Code gefragt, hier ist einiger grober Python-wie Pseudo-Code statt. Ich bin Codierung der boggle Gitter als eine Liste von 16 Artikeln. Die Nachbarn (x) Funktion eine Liste der benachbarten Positionen zurück (außer für Grenzfälle, 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 ruft first ( „g“) und bekommt eine Liste „Antwort“ der Positionen in dem Gitter, das ein „g“ in ihnen. Markieren Sie sagen, der Erste. (B) Spielertypen „o“, Code ruft addletter (Antwort, „o“) und bekommt eine Liste der Pfade im Netz, die „go“ sagen. Auch die erste Highlight.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top