Ai tempi di macchine a 8 bit esisteva un gioco di parole educativo. Non ho idea di cosa sia stato effettivamente chiamato ma per il gusto di questa domanda (dato che coinvolge piramidi) chiamiamolo Stones of Giza .
Il gioco era semplice. A partire dal livello superiore, una lettera è stata aggiunta a una singola parola e si è formata un'altra parola. Una lettera è stata quindi aggiunta a quella parola e così via, ogni volta facendo una parola. I livelli sono passati da 3 a 7.
Un esempio di livello 3 potrebbe essere.
A
A T
B A T
Letters: AAABTT
Come il gioco degli anni 80 mente> , hai segnato per indovinare una lettera a un livello correttamente ma più per indovinare la posizione correttamente.
Non è difficile vedere che gli unici candidati per la prima pietra sono A, I e O - dal momento che queste sono le uniche parole in un'unica lettera nella lingua inglese.
La mia domanda riguarda gli algoritmi per l'approvvigionamento di schede di gioco. Il mio algoritmo di forza bruta attualmente cerca le parole N di lunghezza con una delle 3 lettere sopra e poi controlla la parola di lunghezza N-1 sul lato sinistro / destro contenente la lettera di pinnacolo (A, I o O ).
Questo mi sembra leggermente inefficiente dal momento che ci saranno molte false ricerche.
Come posso migliorare questo algoritmo non elaborato? Livelli più alti impiegano molto tempo in un dizionario di buone dimensioni.
Naturalmente mi rendo conto che il gioco a 8 bit probabilmente non stava analizzando i dati ogni volta e aveva un certo numero di schede, ma sto solo cercando di ottimizzare la creazione dei dati di origine per curiosità.
EDIT # 1:
Ho già filtrato le parole nel dizionario sorgente che non contengono A, I o O.