
Temukan semua kata yang mungkin diberikan papan dan kata -kata boggle (atau tidak sama sekali!), Dengan representasi visual tentang bagaimana algoritma bekerja di web!
Demo Web: Segera Hadir!
Frontend dikembangkan menggunakan TypeScript dan Framework Next.js, dengan Tailwind CSS sebagai kerangka kerja CSS yang dipilih.
Kerangka backend yang dipilih untuk proyek ini adalah Fastapi, kerangka kerja berbasis Python yang berkinerja. Di Fastapi, saya membuat titik akhir API untuk berkomunikasi dengan frontend (klien). Titik akhir ini dirancang untuk menguraikan papan Boggle yang diberikan dari klien dan mengembalikan semua kombinasi yang mungkin, koordinat, dan skor menggunakan Pyggle . Pengguna juga dapat mengirim gambar papan Boggle tempat saya menggunakan OpenCV untuk melakukan preprocess gambar dan menggunakan Easyocr untuk secara akurat mengambil karakter dari papan Boggle.
Kata -kata dan koordinat kemudian dikirim ke klien sebagai muatan JSON untuk render frontend.
PYPI: https://pypi.org/project/pyggle/
pip install pyggleInput adalah case sensitif (untuk papan).
Input akan terdiri dari: papan n x m sebagai string dengan baris yang dipisahkan oleh spasi. Atau, Anda dapat masuk dalam daftar daftar di mana setiap elemen adalah karakter di papan tulis.
Jika kata -kata tidak dilewati sebagai argumen, itu akan memanfaatkan file teks yang terdiri dari 479k kata.
Jika resmi tidak diberikan sebagai argumen boolean, temukan semua kata terlepas dari panjangnya, dan huruf 'q' tidak direpresentasikan sebagai 'qu'. Jika resmi disahkan sebagai argumen boolean, maka algoritma mengikuti aturan resmi Boggle. Pyggle akan menyelesaikan dan:
from pyggle import Boggle
board = "ea st"
boggle = Boggle ( board )
boggle . print_result () Untuk lebih banyak fungsi dari pyggle , periksa:
lib/examples/2x2_example.py untuk fungsi umum dan lebih spesifiklib/examples/qu_example.py untuk contoh di mana huruf 'q' mewakili 'qu'lib/docs/boggle-api.md untuk pemahaman masing-masing metodeSaya tidak tahu bagaimana "ae" atau "aes" atau "ast" adalah kata, tetapi 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)]