Có lẽ đây là cách nó thường được thực hiện. Bạn có danh sách các ô khác nhau đại diện cho các ô đường theo tất cả các hướng có thể có của chúng. Trái sang phải, tất cả bốn góc, từ trên xuống dưới, bất cứ điều gì. Bây giờ bạn sẽ lập chỉ mục tất cả các ô đó với mỗi byte. 8 bit, một bit cho mỗi hướng. Điều này có thể trong một hashmap hoặc theo tên tệp ... tuy nhiên bạn muốn làm điều này.
Vì vậy, bạn có điều này:
Mã byte cho ô trên là 00000000 . Sau đó, ô của bạn đi từ trái sang phải (hoặc phải sang trái) là như thế này:
Mã byte cho ô đó là 10001000 hoặc 136. Như một ví dụ khác, hãy xem xét giao lộ ba chiều:
Mã byte cho ô đó là 10101000 .
Bạn có thể thấy nơi tôi đang đi. Bạn đặt vị trí bit trong byte đại diện cho các kết nối. Điều này tốt hơn nhiều so với việc cố gắng thực hiện một số chuỗi lớn nếu / khác mà tôi đã thấy trước đây. Khi bạn đang tìm cách đặt một ô, kiểm tra các ô xung quanh nó và tạo một byte trên đường đi. Đặt 1 cho các ô có đường (hoặc bất cứ thứ gì bạn muốn kết nối) và 0 cho các ô không có. Khi bạn hoàn thành, bạn sẽ có mã byte cho ô chính xác mà bạn cần.
Lưu ý rằng khi tạo tài sản, bạn có thể sử dụng lại rất nhiều trong số chúng bằng cách xoay và gán mã byte chính xác cho nó.
EDIT : Cập nhật hình ảnh để bớt crappy. Vâng, đó là tốt hơn so với trước đây.