
ค้นหาคำที่เป็นไปได้ทั้งหมดที่ได้รับบอร์ดและคำพูด (หรือไม่มีเลย!) ด้วยการแสดงภาพว่าอัลกอริทึมทำงานบนเว็บอย่างไร!
การสาธิตเว็บ: เร็ว ๆ นี้!
ส่วนหน้าได้รับการพัฒนาโดยใช้ TypeScript และ Next.js Framework พร้อม Tailwind CSS เป็นเฟรมเวิร์ก CSS ที่เลือก
เฟรมเวิร์กแบ็กเอนด์ที่เลือกสำหรับโครงการนี้คือ Fastapi ซึ่งเป็นเฟรมเวิร์ Python เว็บที่มีประสิทธิภาพ ใน Fastapi ฉันสร้างจุดสิ้นสุด API เพื่อสื่อสารกับส่วนหน้า (ไคลเอนต์) จุดสิ้นสุดเหล่านี้ได้รับการออกแบบมาเพื่อถอดรหัสบอร์ด Boggle ที่กำหนดจากลูกค้าและส่งคืนชุดค่าผสมที่เป็นไปได้ทั้งหมดพิกัดและคะแนนโดยใช้ Pyggle ผู้ใช้ยังสามารถส่งรูปภาพของบอร์ด Boggle ที่ฉันใช้ OpenCV เพื่อประมวลผลภาพล่วงหน้าและใช้ EasyOct เพื่อดึงอักขระจากบอร์ด Boggle ได้อย่างแม่นยำ
จากนั้นคำและพิกัดจะถูกส่งไปยังลูกค้าเป็นน้ำหนักบรรทุก JSON สำหรับการแสดงผลส่วนหน้า
pypi: https://pypi.org/project/pyggle/
pip install pyggleอินพุตเป็นตัวพิมพ์เล็ก (สำหรับบอร์ด)
อินพุตจะประกอบด้วย: บอร์ด N X M เป็นสตริงที่มีแถวคั่นด้วยช่องว่าง หรือคุณสามารถส่งผ่านรายการของรายการที่แต่ละองค์ประกอบเป็นอักขระบนกระดาน
หากคำไม่ผ่านเป็นอาร์กิวเมนต์มันจะใช้ไฟล์ข้อความที่ประกอบด้วยคำ 479K
หากอย่างเป็นทางการไม่ได้รับเป็นอาร์กิวเมนต์บูลีนให้ค้นหาคำทั้งหมดโดยไม่คำนึงถึงความยาวและตัวอักษร 'Q' จะไม่แสดงเป็น 'qu' หากเจ้าหน้าที่ถูกส่งผ่านเป็นอาร์กิวเมนต์บูลีนอัลกอริทึมจะปฏิบัติตามกฎอย่างเป็นทางการของ Boggle Pyggle จะแก้ปัญหาและ:
from pyggle import Boggle
board = "ea st"
boggle = Boggle ( board )
boggle . print_result () สำหรับฟังก์ชั่นเพิ่มเติมจาก pyggle ให้ตรวจสอบ:
lib/examples/2x2_example.py สำหรับฟังก์ชั่นทั่วไปและความจำเพาะมากขึ้นlib/examples/qu_example.py สำหรับตัวอย่างที่ตัวอักษร 'Q' แทน 'qu'lib/docs/boggle-api.md เพื่อทำความเข้าใจกับแต่ละวิธีฉันไม่รู้ว่า "AE" หรือ "AES" หรือ "AST" เป็นคำพูด แต่ 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)]