
Encontre todas as palavras possíveis, dada uma tábua de Boggle e palavras (ou nenhuma!), Com uma representação visual sobre como o algoritmo funciona na web!
Demonstração da Web: em breve!
O front -end é desenvolvido usando TypeScript e a estrutura seguinte.js, com CSS do Tailwind CSS como a estrutura CSS escolhida.
A estrutura de back -end escolhida para este projeto é o FASTAPI, uma estrutura da web com base em Python . No FASTAPI, crio os terminais da API para se comunicar com o front -end (o cliente). Esses pontos de extremidade são projetados para decifrar a placa Boggle dada do cliente e retornar todas as combinações, coordenadas e pontuações possíveis usando pyggle . O usuário também pode enviar uma imagem de uma placa Boggle, onde eu uso o OpenCV para pré -processar a imagem e usar o Easyocr para recuperar com precisão os caracteres da placa Boggle.
As palavras e coordenadas são enviadas ao cliente como uma carga útil JSON para que o front -end renderize.
Pypi: https://pypi.org/project/pyggle/
pip install pyggleA entrada é sensível ao caso (para a placa).
A entrada consistiria em: uma placa N x m como uma string com linhas separadas por espaços. Como alternativa, você pode passar em uma lista de listas em que cada elemento é o caractere na placa.
Se as palavras não forem passadas como um argumento, ele utilizará um arquivo de texto que consiste em 479 mil palavras.
Se o funcionário não for dado como um argumento booleano, encontre todas as palavras, independentemente do comprimento, e a letra 'q' não é representada como 'qu'. Se o funcionário é aprovado como um argumento booleano, o algoritmo segue as regras oficiais de Boggle. Pyggle vai resolver e:
from pyggle import Boggle
board = "ea st"
boggle = Boggle ( board )
boggle . print_result () Para mais funções da pyggle , verifique:
lib/examples/2x2_example.py para funções gerais e mais especificidadelib/examples/qu_example.py para um exemplo em que a letra 'q' representa 'qu'lib/docs/boggle-api.md para uma compreensão de cada métodoNão sei como "AE" ou "Aes" ou "Ast" é uma palavra, mas com: P: 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)]