Sto creando un gioco simile a Tetris, con due differenze principali: lo schermo inizia già pieno di tessere (come in Puzzle Quest per Nintendo DS e PC) e ogni singola tessera contiene una lettera. L'obiettivo del giocatore è eliminare le tessere formando parole valide con esse. Le parole si formano posizionando le lettere una accanto all'altra, in qualsiasi direzione, tranne in diagonale.
Il giocatore può spostare un'intera fila di tessere a sinistra o a destra o un'intera colonna di tessere su o giù, per tutti gli spazi che desidera (se il movimento di una fila / colonna supera i limiti del tabellone, il la lettera che attraversa il limite "scorrerà", comparendo all'altra estremità della riga / colonna). Dopo l'azione del giocatore, il gioco dovrebbe controllare l'intera scacchiera per cercare parole valide e rimuovere le lettere che formano quelle parole dal tabellone. Le lettere sopra quelle che sono state rimosse cadranno al posto di quelle che sono state rimosse e le nuove lettere scenderanno dalla parte superiore dello schermo fino a riempire nuovamente la scheda.
Ho già scritto un algoritmo lineare che, data una sequenza di caratteri, determina se è una parola inglese valida. Il problema che sto riscontrando è: come posso verificare la presenza di parole valide sulla lavagna? La forza bruta è l'unico modo? Testare tutte le possibili combinazioni dalla scheda per vedere se sono valide è molto lento, anche per una scheda piccola (5x5). Qualsiasi aiuto sarà molto apprezzato, grazie!