Jest to technika kodowania wszystkich kierunków jako tablice - każda para di[i],dj[i]
jest innym kierunkiem.
Jeśli wyobrażamy sobie, że mamy element w miejscu x, y, i chcemy dodać na jego x i jego wartość y, aby przenieść go do pobliskiego miejsca, 1,0 jest wschodem, -1,0 jest na zachód 0,1 oznacza południe, 0, -1 to północ i tak dalej.
(Tu już mówiłem jest lewy górny i dolny prawy 0,0 4,4 i jest pokazane co ruch każdy indeks tablic uczyni z centralnego punktu, X, na 2,2).
.....
.536.
.1X0.
.724.
.....
Sposób, w jaki jest ustawiony, jeśli wykonasz ^1
(^
bitowo XOR) na indeksie otrzymasz przeciwny kierunek - 0 i 1 są przeciwieństwami, 2 i 3 są przeciwieństwami i tak dalej. (Innym sposobem, aby ustawić go w górę, aby przejść do ruchu wskazówek zegara zaczynając od północy. - wtedy ^4
dostaje odwrotny kierunek)
Teraz można przetestować wszystkie kierunki z danego punktu przez zapętlenie nad swoimi di
i dj
tablic, zamiast konieczności wypisać każdym kierunku na własnej linii (do ośmiu w sumie!) (Tylko nie zapomnij zrobić sprawdzając granice :))
diK
i djK
formę wszystkich knights directions zamiast wszystkich sąsiednich kierunkach. Tutaj ^1
obróci się wzdłuż jednej osi, ^4
da przeciwny skok rycerza.
.7.6.
0...5
..K..
1...4
.2.3.
często używania 'D = {0,1,0, -1,0}' w tym: pozycja pary dla 'D [i], D [i + 1]' daje mi czterech głównych kierunków. – dasblinkenlight
To jest zaskakująco dobre pytanie. ... Czy można coś zrobić z tytułem? –
Zrobiłem co nieco o tytule/podpisie, ale to pomogłoby bardziej, gdyby było jakaś nazwa dla tej grupy tablic. Czy jest tam? –