**How I was checking adjacency before:** <pre><code> (obj_Handle_Links.Last_Link.Matrix_Location_y = (Matrix_Location_y-1) || obj_Handle_Links.Last_Link.Matrix_Location_y = (Matrix_Location_y+1) || obj_Handle_Links.Last_Link.Matrix_Location_x = (Matrix_Location_x-1) || obj_Handle_Links.Last_Link.Matrix_Location_x = (Matrix_Location_x+1)) </code></pre> **The Problem with that:** This only checks if the object's matrix location is within an adjacent row or column, not simply if it's directly adjacent to the object. Thus, it doesn't need to actually be adjacent to the `last_link`. That's a problem. **The Long solution:** I could individually check for each and every individual square adjacent to the object clicked on. However, this is rather inefficient (taking a minimum of 2 checks, and up to 8, if I don't include diagonals), at least if I use `matrix location x/y`. And if I include diagonals, that doubles the number of checks again, and makes the if statement really long. **The Question:** How do I efficiently and with as little code as possible, and make is as easily understandable as possible? Comments are obvious inclusions for that last bit, but aside from that.