Playing browser Tetris with Jev making the placement decisions
A Thai developer feeds the browser Tetris board state and candidate placements as structured data to Jev to pick a plan, then the code presses keys and re-reads the screen to verify the result.

Jev ก็เล่น Tetris ได้เหมือนกันครับ 🤖 จากที่ลองเอามาช่วยโปรแกรมตัดสินใจ รอบนี้ให้มันเลือกแผนวางบล็อกในเกมที่เปิดบน Browser บ้าง เว็บที่ใช้เล่นก็คือ https://play.tetris.com/ เนาะ เนื่องจาก Jev เองไม่สามารถอ่านรูปภาพได้เราเลยต้องช่วยมันนิดหน่อย 👓 เบื้องหลังคือเราแบ่งงานกันแบบนี้ครับ 1. รับภาพจาก Browser แล้ว crop เฉพาะพื้นที่เกม 2. ให้ Python อ่านสีพิกเซลตามช่องกระดาน 10×20 เพื่อแยกว่าตรงไหนเป็นกองบล็อก ตรงไหนเป็นชิ้นที่กำลังตก พร้อมอ่านชิ้นถัดไปในช่อง NEXT อีก 3 ชิ้น 3. โค้ดจำลองตำแหน่งที่วางได้และแผนล่วงหน้า แล้วแปลงเป็นข้อความ/JSON ส่งให้ Jev มีทั้งสภาพกระดาน ลักษณะของกระดาน ความสูง และผลที่จะเกิดจากแต่ละตัวเลือก เช่น เคลียร์ได้กี่แถว หรือวางแล้วหน้าตากระดานจะเป็นยังไงต่อ 4. Jev เลือก label ของแผนที่ต้องการ จากนั้นโค้ดแปลงแผนนั้นเป็นการกดปุ่มหมุน เลื่อน และวางบล็อก แล้วอ่านภาพอีกครั้งเพื่อตรวจว่าผลตรงกับที่คาดไว้ ก่อนทำต่อ ภาพเกมจึงถูกแปลงเป็นข้อมูลก่อนถึง Jev ส่วนที่ Jev รับหน้าที่คือเลือกจากแผนที่โค้ดเตรียมไว้ให้ครับ มีการทำ OCR ใช้เฉพาะอ่านคะแนน ด่าน จำนวนแถว และข้อความเมนูอย่าง Game Over/Paused การอ่านกระดานใช้สีพิกเซลตามช่อง อันนี้ไม่เกี่ยวกับ Jev เป็นเทคนิคธรรมดา ๆ พอมองแบบนี้ เกมก็เป็นอีกโจทย์ของการเอา "สถานะปัจจุบัน + ตัวเลือก + ผลที่คาดว่าจะเกิด" มาให้โมเดลช่วยตัดสินใจ แล้วให้โปรแกรมลงมือทำต่อ 😆😆 มีเคสอื่นด้วยแต่ไม่กล้าลงให้ไปลองกันเองดีกว่า 🤣🤣 ตัว Code ทั้งหมดนี้สร้างโดย Codex ครับ 😅😅 เดี๋ยวมาเปิด Source ตอนเย็นๆนะครับ พอดี ต้องเอาน้องไปทำงานก่อน วันจันทร์แล้ว 😭 #codex #jev