Theo nhận xét của bạn trong các câu trả lời khác, vấn đề của bạn không phải là thuật toán phát triển creep, mà là thuật toán chọn sử dụng gạch creep nào.
Sử dụng gạch nào phụ thuộc vào việc:
- gạch trên có bị nhiễm hay không
- gạch phải bị nhiễm hay không
- gạch dưới có bị nhiễm hay không
- gạch trái có bị nhiễm hay không
Điều đó có nghĩa là bạn sẽ cần tổng cộng 16 gạch. Bạn có thể dễ dàng giải quyết chúng với một bitfield. Dưới đây là một số mã giả sẽ chọn một ô khác nhau cho mọi chòm sao leo có thể:
index = 0;
if left tile is creeped then index += 1
if lower tile is creeped then index += 2
if right tile is creeped then index += 4
if upper tile is creeped then index += 8
creep_tile = creep_tiles[index]
Lưu ý rằng bất cứ khi nào bạn thay đổi trạng thái lây nhiễm của ô, tất cả các ô liền kề bị nhiễm cần phải được đánh giá lại, vì vùng lân cận của chúng đã thay đổi.
Làm thế nào để thiết kế đồ họa 16 gạch sao cho chúng khớp với nhau một cách độc đáo là một câu hỏi (mới) cho một nhà thiết kế đồ họa.