ฉันกำลังสร้างเกมที่คล้ายคลึงกับ Tetris โดยมีความแตกต่างที่สำคัญสองประการ: หน้าจอเริ่มเต็มไปด้วยกระเบื้อง (เช่นใน Puzzle Quest สำหรับ Nintendo DS และพีซี) และแต่ละไพ่มีตัวอักษรอยู่ในนั้น เป้าหมายของผู้เล่นคือการกำจัดไพ่โดยสร้างคำที่ถูกต้องกับพวกเขา คำที่เกิดขึ้นโดยการวางตัวอักษรติดกันในทิศทางใด ๆ ยกเว้นแนวทแยงมุม
ผู้เล่นสามารถย้ายทั้งแถวของไพ่ไปทางซ้ายหรือไปทางขวาหรือทั้งคอลัมน์ของไพ่ขึ้นหรือลงสำหรับช่องว่างมากเท่าที่เขาต้องการ (ถ้าการเคลื่อนไหวของแถว / คอลัมน์เกินขีด จำกัด ของคณะกรรมการ ตัวอักษรที่ข้ามขีด จำกัด จะเป็น "รอบ" ซึ่งปรากฏที่ปลายอีกด้านของแถว / คอลัมน์) หลังจากการกระทำของผู้เล่นเกมควรตรวจสอบกระดานทั้งหมดเพื่อค้นหาคำที่ถูกต้องและลบตัวอักษรที่สร้างคำเหล่านั้นออกจากกระดาน ตัวอักษรด้านบนที่ถูกลบออกจะล้มลงในตำแหน่งของตัวอักษรที่ถูกลบออกและตัวอักษรใหม่จะลดลงจากด้านบนของหน้าจอจนกว่าบอร์ดจะเต็มไปอีกครั้ง
ฉันได้เขียนอัลกอริธึมเชิงเส้นที่กำหนดลำดับของอักขระแล้วพิจารณาว่าเป็นคำภาษาอังกฤษที่ถูกต้องหรือไม่ ปัญหาที่ฉันมีคือ: ฉันจะตรวจสอบคำที่ถูกต้องบนกระดานได้อย่างไร กำลังดุร้ายทางเดียวหรือไม่ ทดสอบชุดค่าผสมที่เป็นไปได้ทั้งหมดจากบอร์ดเพื่อดูว่าชุดค่านั้นใช้ได้ช้ามากหรือแม้แต่ขนาดเล็ก (5x5) ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมากขอบคุณ!