Może tak zazwyczaj się to robi. Masz listę różnych kafelków, które reprezentują kafelki drogowe we wszystkich możliwych orientacjach. Od lewej do prawej, wszystkie cztery rogi, od góry do dołu, cokolwiek. Teraz zindeksujesz wszystkie kafelki bajtami. 8 bitów, po jednym dla każdego kierunku. Może to być mapa skrótowa lub nazwa pliku ... jednak chcesz to zrobić.
Więc masz to:
Kod bajtu dla powyższego kafelka to 00000000 . W takim razie kafelek biegnący od lewej do prawej (lub od prawej do lewej) wygląda następująco:
Kod bajtu dla tego kafelka to 10001000 lub 136. Jako kolejny przykład przyjrzyjmy się trójstronnemu skrzyżowaniu:
Kod bajtu dla tego kafelka to 10101000 .
Prawdopodobnie widzisz, dokąd idę. Pozycje bitów ustawia się w bajcie reprezentującym połączenia. Jest to o wiele lepsze niż próba wykonania dużego łańcucha if / else, który widziałem wcześniej. Kiedy chcesz umieścić kafelek, sprawdź płytki wokół niego i utwórz bajt po drodze. Ustaw 1 dla kafelków, które mają drogi (lub cokolwiek, co chcesz połączyć) i 0 dla kafelków, które nie mają. Kiedy skończysz, będziesz mieć bajtowy kod dokładnie tego, czego potrzebujesz.
Zauważ, że podczas tworzenia zasobów możesz ponownie wykorzystać wiele z nich, po prostu obracając i przypisując do niego poprawny kod bajtowy.
EDYCJA : Zaktualizowano obrazy, aby były mniej gburowate. Tak, są lepsze niż wcześniej.