
Finden Sie alle möglichen Wörter, die ein Boggle -Board und Wörter (oder keine!) Mit einer visuellen Darstellung darüber, wie der Algorithmus im Internet funktioniert, erhalten!
Web -Demo: bald kommen!
Das Frontend wird unter Verwendung TypeScript und im nächsten.js -Framework entwickelt, wobei der Rückenwind -CSS als ausgewähltes CSS -Framework ist.
Das für dieses Projekt ausgewählte Backend -Framework ist Fastapi, ein Performanten -Web -Framework in Python . In Fastapi erstelle ich API -Endpunkte, um mit dem Frontend (dem Kunden) zu kommunizieren. Diese Endpunkte sind so konzipiert, dass sie das angegebene Boggle -Board vom Client entschlüsseln und alle möglichen Kombinationen, Koordinaten und Punktzahl mit Pyggle zurückgeben. Der Benutzer kann auch ein Bild einer Boggle -Karte senden, auf der ich OpenCV verwende, um das Bild vorzubereiten, und Easyocrend verwenden, um die Zeichen genau aus der Boggle -Karte abzurufen.
Die Wörter und Koordinaten werden dann als JSON -Nutzlast an den Kunden gesendet, damit das Frontend zu Rendern ist.
Pypi: https://pypi.org/project/pyggle/
pip install pyggleDie Eingabe ist Fallempfindlichkeit (für die Karte).
Der Eingang würde bestehen aus: einer n x m -Platine als Zeichenfolge mit Zeilen, die durch Leerzeichen getrennt sind. Alternativ können Sie eine Liste von Listen übergeben, in denen jedes Element das Zeichen auf der Tafel ist.
Wenn Wörter nicht als Argument übergeben werden, wird eine Textdatei verwendet, die aus 479K -Wörtern besteht.
Wenn der Beamte nicht als boolescher Argument angegeben wird, finden Sie alle Wörter unabhängig von der Länge, und der Buchstabe 'q' ist nicht als "Qu" dargestellt. Wenn der Beamte als boolescher Argument verabschiedet wird, folgt der Algorithmus den offiziellen Regeln von Boggle. Pyggle wird lösen und:
from pyggle import Boggle
board = "ea st"
boggle = Boggle ( board )
boggle . print_result () Weitere Funktionen von pyggle finden Sie unter:
lib/examples/2x2_example.py für allgemeine Funktionen und mehr Spezifitätlib/examples/qu_example.py Für ein Beispiel, bei dem der Buchstabe 'q' 'Qu' darstelltlib/docs/boggle-api.md für ein Verständnis jeder MethodeIch weiß nicht, wie "ae" oder "aes" oder "ast" ein Wort ist, aber mit: 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)]