บางทีนี่อาจเป็นวิธีปกติ คุณมีรายการไพ่ที่แตกต่างกันซึ่งเป็นตัวแทนของกระเบื้องถนนในทิศทางที่เป็นไปได้ทั้งหมด จากซ้ายไปขวามุมทั้งสี่จากบนลงล่างไม่ว่าอะไรก็ตาม ตอนนี้คุณจะสร้างดัชนีไพ่เหล่านั้นด้วยไบต์ละ 8 บิตหนึ่งสำหรับแต่ละทิศทาง นี่อาจเป็น hashmap หรือโดยชื่อไฟล์ ... อย่างไรก็ตามคุณต้องการทำเช่นนี้
ดังนั้นคุณมีสิ่งนี้:
รหัสไบต์สำหรับกระเบื้องดังกล่าวเป็น00000000 ไทล์ของคุณที่เรียงจากซ้ายไปขวา (หรือจากขวาไปซ้าย) จะเป็นดังนี้:
โค้ดไบต์สำหรับไทล์นั้นคือ1,0001000หรือ 136 อีกตัวอย่างลองดูที่จุดตัดสามทาง:
รหัสไบต์สำหรับกระเบื้องที่เป็น10101000
คุณอาจเห็นว่าฉันกำลังจะไปไหน คุณตั้งค่าตำแหน่งบิตในไบต์แทนการเชื่อมต่อ นี่ดีกว่าการพยายามที่จะทำอะไรที่ยิ่งใหญ่ถ้า / เชนอื่น ๆ ที่ฉันเคยเห็นมาก่อน เมื่อคุณต้องการวางแผ่นกระเบื้องให้ตรวจดูแผ่นกระเบื้องรอบ ๆ และสร้างไบต์ไปพร้อมกัน ตั้งค่า 1 สำหรับกระเบื้องที่มีถนน (หรือสิ่งที่คุณต้องการเชื่อมต่อ) และ 0 สำหรับกระเบื้องที่ไม่มี เมื่อเสร็จแล้วคุณจะมีรหัสไบต์สำหรับไทล์ที่แน่นอนที่คุณต้องการ
โปรดทราบว่าเมื่อสร้างสินทรัพย์คุณสามารถนำมาใช้ใหม่ได้จำนวนมากเพียงแค่หมุนและกำหนดรหัสไบต์ที่ถูกต้องให้กับมัน
แก้ไข : อัปเดตรูปภาพให้มีความเส็งเคร็งน้อยลง ใช่เหล่านั้นดีกว่าก่อน