Domanda

Sto costruendo un gioco Boggle in VB .NET. In questo momento, i miei dadi sono come una matrice 2D (0,0 0,1) ecc ...

Quello che voglio fare è, come sto scrivendo la parola, che mette in evidenza sulla scheda utilizzando il sub button(x,y).doclick che evidenzia. In questo momento la mia implementazione trova la prima lettera, poi continua a cercare ogni lettera fino a che non soddisfa la condizione 8 angolo (cioè è neighbored per l'ultimo), ma questo non sempre funziona. Se ci sono 2 dire "G" s 'sulla scheda e voglio quella inferiore, questo non funziona. Qualcuno mi può dare un esempio di psuedocodarlo di ciò che deve accadere. Sono stato perplesso per quasi 6 ore cercando di capire questo. Grazie

È stato utile?

Soluzione

Se ho capito bene, data una stringa che si desidera evidenziare un percorso attraverso i dadi che corrisponde alla stringa. A volte ci sono diverse scelte possibili, quindi l'aggiunta di una lettera possono cambiare completamente ciò che viene evidenziato. Può essere un buon approccio qui per mantenere i risultati dalla stringa precedente, in modo da non dover ricominciare da capo. Poi una cosa ragionevole da fare sarebbe quella di calcolare tutti i percorsi possibili.

La risposta per una determinata stringa s sarebbe un elenco di percorsi, dove un percorso è un elenco di coordinate reticolo. Ogni percorso è qualcosa che si poteva ragionevolmente evidenziare, quindi basta evidenziare il primo. Quando si aggiunge una lettera alla stringa, a trovare i percorsi è possibile espandere e rimuovere quelli che non è possibile espandere.

Ho paura non so come scrivere il codice vb. Poiché hai chiesto pseudocodice, ecco qualche pitone come pseudocodice di massima, invece. Sto codifica la griglia Boggle come una lista di 16 articoli. La funzione di vicini di casa (x) restituisce una lista delle posizioni vicine (fatta eccezione per i casi limite che sarà [x-1, x + 1, x-4, x + 4]).

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

Se i tipi di giocatore "go", per esempio, allora (A) i tipi di giocatori "g", codice chiama firstLetter ( "g") e ottiene una lista di "risposta" delle posizioni nella griglia che hanno una "g" in loro. Evidenziare, dicono, il primo. (B) i tipi di giocatori "o", codice chiama addletter (risposta, "O") e ottiene un elenco di percorsi nella griglia che dicono "go". Anche in questo caso, evidenziare il primo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top