
¡Encuentre todas las palabras posibles dadas un tablero y palabras de Boggle (¡o ninguna!), Con una representación visual sobre cómo funciona el algoritmo en la web!
Demo web: ¡Próximamente!
El frontend se desarrolla usando TypeScript y el marco Next.js, con CSS de viento de cola como el marco CSS elegido.
El marco de backend elegido para este proyecto es Fastapi, un marco web basado en Python performante. En Fastapi, creo puntos finales de API para comunicarme con el frontend (el cliente). Estos puntos finales están diseñados para descifrar el tablero Boggle dado del cliente y devolver todas las combinaciones posibles, coordenadas y anotar usando Pyggle . El usuario también puede enviar una imagen de un tablero Boggle donde uso OpenCV para preprocesar la imagen y usar EasyOCR para recuperar con precisión los caracteres del tablero Boggle.
Las palabras y las coordenadas se envían al cliente como una carga útil JSON para que el frontend renderice.
Pypi: https://pypi.org/project/pyggle/
pip install pyggleLa entrada es sensible a la caja (para la placa).
La entrada consistiría en: una placa N x m como una cadena con filas separadas por espacios. Alternativamente, puede aprobar una lista de listas donde cada elemento es el carácter en el tablero.
Si las palabras no se pasan como argumento, utilizará un archivo de texto que consta de 479k palabras.
Si el funcionario no se da como un argumento booleano, encuentre todas las palabras independientemente de la longitud, y la letra 'q' no se representa como 'qu'. Si el funcionario se pasa como un argumento booleano, entonces el algoritmo sigue las reglas oficiales de Boggle. Pyggle se resolverá y:
from pyggle import Boggle
board = "ea st"
boggle = Boggle ( board )
boggle . print_result () Para obtener más funciones de pyggle , verifique:
lib/examples/2x2_example.py para funciones generales y más especificidadlib/examples/qu_example.py para un ejemplo en el que la letra 'q' representa 'qu'lib/docs/boggle-api.md para comprender cada métodoNo sé cómo "ae" o "aes" o "ast" es una palabra, pero w/e: p
a: [(0, 1)]
ae: [(0, 1), (0, 0)]
aes: [(0, 1), (0, 0), (1, 0)]
aet: [(0, 1), (0, 0), (1, 1)]
as: [(0, 1), (1, 0)]
ase: [(0, 1), (1, 0), (0, 0)]
ast: [(0, 1), (1, 0), (1, 1)]
at: [(0, 1), (1, 1)]
ate: [(0, 1), (1, 1), (0, 0)]
ates: [(0, 1), (1, 1), (0, 0), (1, 0)]
e: [(0, 0)]
ea: [(0, 0), (0, 1)]
east: [(0, 0), (0, 1), (1, 0), (1, 1)]
eat: [(0, 0), (0, 1), (1, 1)]
eats: [(0, 0), (0, 1), (1, 1), (1, 0)]
es: [(0, 0), (1, 0)]
est: [(0, 0), (1, 0), (1, 1)]
et: [(0, 0), (1, 1)]
eta: [(0, 0), (1, 1), (0, 1)]
etas: [(0, 0), (1, 1), (0, 1), (1, 0)]
s: [(1, 0)]
sa: [(1, 0), (0, 1)]
sae: [(1, 0), (0, 1), (0, 0)]
sat: [(1, 0), (0, 1), (1, 1)]
sate: [(1, 0), (0, 1), (1, 1), (0, 0)]
se: [(1, 0), (0, 0)]
sea: [(1, 0), (0, 0), (0, 1)]
seat: [(1, 0), (0, 0), (0, 1), (1, 1)]
set: [(1, 0), (0, 0), (1, 1)]
seta: [(1, 0), (0, 0), (1, 1), (0, 1)]
st: [(1, 0), (1, 1)]
sta: [(1, 0), (1, 1), (0, 1)]
t: [(1, 1)]
ta: [(1, 1), (0, 1)]
tae: [(1, 1), (0, 1), (0, 0)]
tas: [(1, 1), (0, 1), (1, 0)]
te: [(1, 1), (0, 0)]
tea: [(1, 1), (0, 0), (0, 1)]
teas: [(1, 1), (0, 0), (0, 1), (1, 0)]
ts: [(1, 1), (1, 0)]