Ada banyak cara untuk melakukannya, tergantung pada bagaimana tepatnya Anda menginginkannya. Berikut ini adalah garis besar kasar dari satu cara yang menurut saya sesuai dengan deskripsi Anda:
Pertama-tama buat kanal. Kemudian mulailah menempatkan rumah secara acak, untuk setiap rumah yang Anda tempatkan, letakkan jalan di depannya dan gambar jalan dari potongan itu ke jaringan jalan yang ada, jika salah satu tidak mungkin atau menempatkan jalan di depan menghasilkan blok 2x2 jelek. jalan reposisi rumah. Mendeteksi beberapa titik jalan yang dekat satu sama lain tetapi berjauhan mengikuti jalan yang ada dan mencoba membuat beberapa jalan pintas untuk itu.
Hal-hal semacam ini kebanyakan membutuhkan eksperimen dan pengalaman. Seringkali Anda akan mendapatkan hasil yang baik dari membuat beberapa detail secara acak, menentukan apakah itu memenuhi beberapa kriteria dan membatalkan dan coba lagi jika tidak.
Untuk tugas yang tepat ini Anda tentu juga perlu memahami dasar-dasar pencarian jalan, kecuali jika Anda sudah ahli, bacalah topiknya. Dan ingat, pencarian jalur tidak harus hanya tentang jalur terpendek, untuk bagian terakhir dari uraian saya, Anda mungkin ingin memberi bobot pada jalur penggunaan kembali yang sudah ada.
Ini sama sekali bukan tugas yang mudah, jika Anda macet kembali dan tunjukkan kode Anda dan beberapa contoh output dan jelaskan secara terperinci bagaimana Anda menginginkannya berbeda.