Hey! Is there any way to make the code smaller for things like this? :
if((x > 0 && x < mapWidth - 1) && (y > 0 && y < mapHeight - 1)) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[x - 1][y + 1] != map[x][y]) { dl = true; dlID = map[x - 1][y + 1]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][y - 1] != map[x][y]) { ul = true; ulID = map[x - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[x + 1][y - 1] != map[x][y]) { ur = true; urID = map[x + 1][y - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][y + 1] != map[x][y]) { dr = true; drID = map[x + 1][y + 1]; }
} else {
if(x == 0 && y == 0) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[mapWidth - 1][y + 1] != map[x][y]) { dl = true; dlID = map[mapWidth - 1][y + 1]; }
if(map[mapWidth - 1][y] != map[x][y]) { ll = true; llID = map[mapWidth - 1][y]; }
if(map[mapWidth - 1][mapHeight - 1] != map[x][y]) { ul = true; ulID = map[mapWidth - 1][mapHeight - 1]; }
if(map[x][mapHeight - 1] != map[x][y]) { uu = true; uuID = map[x][mapHeight - 1]; }
if(map[x + 1][mapHeight - 1] != map[x][y]) { ur = true; urID = map[x + 1][mapHeight - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][y + 1] != map[x][y]) { dr = true; drID = map[x + 1][y + 1]; }
} else if(x == mapWidth - 1 && y == 0) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[x - 1][y + 1] != map[x][y]) { dl = true; dlID = map[x - 1][y + 1]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][mapHeight - 1] != map[x][y]) { ul = true; ulID = map[x - 1][mapHeight - 1]; }
if(map[x][mapHeight - 1] != map[x][y]) { uu = true; uuID = map[x][mapHeight - 1]; }
if(map[0][mapHeight - 1] != map[x][y]) { ur = true; urID = map[0][mapHeight - 1]; }
if(map[0][y] != map[x][y]) { rr = true; rrID = map[0][y]; }
if(map[0][y + 1] != map[x][y]) { dr = true; drID = map[0][y + 1]; }
} else if(x == mapWidth - 1 && y == mapHeight - 1) {
if(map[x][0] != map[x][y]) { dd = true; ddID = map[x][0]; }
if(map[x - 1][0] != map[x][y]) { dl = true; dlID = map[x - 1][0]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][y - 1] != map[x][y]) { ul = true; ulID = map[x - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[0][y - 1] != map[x][y]) { ur = true; urID = map[0][y - 1]; }
if(map[0][y] != map[x][y]) { rr = true; rrID = map[0][y]; }
if(map[0][0] != map[x][y]) { dr = true; drID = map[0][0]; }
} else if(x == 0 && y == mapHeight - 1) {
if(map[x][0] != map[x][y]) { dd = true; ddID = map[x][0]; }
if(map[mapWidth - 1][0] != map[x][y]) { dl = true; dlID = map[mapWidth - 1][0]; }
if(map[mapWidth - 1][y] != map[x][y]) { ll = true; llID = map[mapWidth - 1][y]; }
if(map[mapWidth - 1][y - 1] != map[x][y]) { ul = true; ulID = map[mapWidth - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[x + 1][y - 1] != map[x][y]) { ur = true; urID = map[x + 1][y - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][0] != map[x][y]) { dr = true; drID = map[x + 1][0]; }
} else if(x == 0) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[mapWidth - 1][y + 1] != map[x][y]) { dl = true; dlID = map[mapWidth - 1][y + 1]; }
if(map[mapWidth - 1][y] != map[x][y]) { ll = true; llID = map[mapWidth - 1][y]; }
if(map[mapWidth - 1][y - 1] != map[x][y]) { ul = true; ulID = map[mapWidth - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[x + 1][y - 1] != map[x][y]) { ur = true; urID = map[x + 1][y - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][y + 1] != map[x][y]) { dr = true; drID = map[x + 1][y + 1]; }
} else if(x == mapWidth - 1) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[x - 1][y + 1] != map[x][y]) { dl = true; dlID = map[x - 1][y + 1]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][y - 1] != map[x][y]) { ul = true; ulID = map[x - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[0][y - 1] != map[x][y]) { ur = true; urID = map[0][y - 1]; }
if(map[0][y] != map[x][y]) { rr = true; rrID = map[0][y]; }
if(map[0][y + 1] != map[x][y]) { dr = true; drID = map[0][y + 1]; }
} else if(y == 0) {
if(map[x][y + 1] != map[x][y]) { dd = true; ddID = map[x][y + 1]; }
if(map[x - 1][y + 1] != map[x][y]) { dl = true; dlID = map[x - 1][y + 1]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][mapHeight - 1] != map[x][y]) { ul = true; ulID = map[x - 1][mapHeight - 1]; }
if(map[x][mapHeight - 1] != map[x][y]) { uu = true; uuID = map[x][mapHeight - 1]; }
if(map[x + 1][mapHeight - 1] != map[x][y]) { ur = true; urID = map[x + 1][mapHeight - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][y + 1] != map[x][y]) { dr = true; drID = map[x + 1][y + 1]; }
} else if(y == mapHeight - 1) {
if(map[x][0] != map[x][y]) { dd = true; ddID = map[x][0]; }
if(map[x - 1][0] != map[x][y]) { dl = true; dlID = map[x - 1][0]; }
if(map[x - 1][y] != map[x][y]) { ll = true; llID = map[x - 1][y]; }
if(map[x - 1][y - 1] != map[x][y]) { ul = true; ulID = map[x - 1][y - 1]; }
if(map[x][y - 1] != map[x][y]) { uu = true; uuID = map[x][y - 1]; }
if(map[x + 1][y - 1] != map[x][y]) { ur = true; urID = map[x + 1][y - 1]; }
if(map[x + 1][y] != map[x][y]) { rr = true; rrID = map[x + 1][y]; }
if(map[x + 1][0] != map[x][y]) { dr = true; drID = map[x + 1][0]; }
}
}
[tl;dr]
I am trying to see for every tile on the map who are it’s neighbours. I use this later to update every tile’s image.
Is there any way to make this code smaller?