Knight Shortest Path Puzzle | Guptapraveen's Blog



Knight Shortest Path Puzzle | Guptapraveen's Blog

This is the KNIGHT short path problem. Knight should move from any place (x,y) to the bottom right corner of the Chess Board and Chess Board can be of any size ( N x M ). Where N & M  can't be less then 3.

Move the chess piece "KNIGHT" from any location on a
"3 x 3″ Chess Board and make it go to the far right
hand bottom corner^. Chess Board in the problem is
not the usual Chess Board of 8 x 8.

KNIGHT starting position may be any position on board
Program should exit when knight moves to 3 x 3 corner.

Here is how my Chess board looks.
1      2      3
————————-
|      |      |      |
1 |      |      |      |
|      |      |      |
————————-
|      |      |      |
2 |      |      |      |
|      |      |      |
————————-
|      |      |      |
3 |      |      |  X  | <<<<——- KNIGHT should reach
|      |      |      |            this square.
————————-

Here are the steps for the algorithm design.

This application usages searching algorithm based on the weight of next move. Once it opt for a path next move is decided based on the highest weighted legal move. Here are the steps:

  1. Start with the initial position. ( You can have maximum 8 move for the knight for NxM)
  2. If the next legal move is destination then add that in the Visited List and quit the game.
  3. If next legal move is just closer to destination then move and finally move to destination and quit the Game.
  4. Move knight to next highest weighted position. Weight is calculated by adding the X,Y position of the next legal move.
  5. Again check the step 2 and 3.
  6. Do it in a recursive function till you reach the destination.

Hope this will help to solve the puzzle.


Read full article from Knight Shortest Path Puzzle | Guptapraveen's Blog


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts