Istnieje wiele sposobów, w zależności od tego, jak chcesz. Oto ogólny zarys jednego ze sposobów, który moim zdaniem pasuje do twojego opisu:
Najpierw wygeneruj kanały. Następnie zacznij losowo ustawiać domy, dla każdego domu, który stawiasz, umieść przed nim drogę i narysuj drogę z tego kawałka do istniejącej sieci dróg, jeśli albo nie jest to możliwe, albo umieszczenie drogi z przodu powoduje brzydki blok 2x2 zmiana położenia domu. Wykryj niektóre punkty drogi, które są blisko siebie, ale daleko od siebie, wzdłuż istniejących dróg i spróbuj dla nich zrobić skróty.
Tego rodzaju rzeczy wymagają przede wszystkim eksperymentów i doświadczenia. Często uzyskujesz dobre wyniki losowego tworzenia szczegółów, określania, czy spełnia on określone kryteria, i cofania i ponawiania, jeśli nie.
Do tego dokładnego zadania z pewnością będziesz potrzebować dobrego zrozumienia podstawowych ścieżek, chyba że jesteś już ekspertem, przeczytaj ten temat. I pamiętaj, że szukanie ścieżek nie musi być tylko najkrótszą ścieżką, w ostatniej części mojego opisu możesz chcieć przywrócić trochę uwagi ścieżkom, które już tam są.
Nie jest to wcale łatwe zadanie, jeśli utkniesz, wróć i pokaż nam swój kod oraz kilka przykładowych danych wyjściowych oraz wyjaśnij szczegółowo, jak chcesz, aby było inaczej.