Knight movement logic (Preparing later for refactoring EVERYTHING for smaller and cleaner functions and loops, very redundant