Recentemente ho visto una domanda su SO riguardo la risoluzione del gioco scramble / boggle, in cui le lettere sono in una griglia 4x4 e devi trovare più parole possibili. Ho esaminato alcune soluzioni, l'ho provato personalmente e ora mi piacerebbe passare a risolvere un gioco a scrabble.
Il codice per risolvere i boggle è piuttosto semplice; memorizza lo stato della scheda in una matrice e itera su ogni mossa da ogni posizione e controlla se le parole esistono con la catena di lettere corrente.
Con scrabble, l'idea è simile, ma sto ancora avendo problemi a capirlo. Attualmente sto pensando:
- Memorizzazione della scheda in serie bidimensionale.
- Iterating su ogni posizione e salta se la posizione è vuota.
- Creazione di una sorta di modello regex per le lettere sul rack e la lettera nella posizione ...
Sono ancora molto incerto sul da farsi al punto 3 perché so che la tessera nella posizione potrebbe essere la fine iniziale o un punto nel mezzo di una parola. E poi c'è il problema di fare in modo che, se una parola fa in modo che faccia anche le parole con le altre tessere che tocca ...
Non sto chiedendo campioni di codice, solo il processo di pensiero da parte di programmatori più esperti.
Per chiarire, il mio obiettivo è:
Given the current state of a board and a person's tiles, calculate the legal moves and the points for that move.
Per chi segue questo e in attesa di una risposta, ho trovato questo: link
Potrei dare un'occhiata a ciò che ha scritto, ma prima voglio provare a capirlo.