hi everyone i have a 9x9 chess board I am given an initial position and final position of knight. can anyone plz help me to find minimum no of moves to reach final position??
    3 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Arslan Ahmad
 am 14 Feb. 2018
  
    
    
    
    
    Kommentiert: Walter Roberson
      
      
 am 19 Feb. 2018
            my problem is regarding how to find shortest path conditioning
2 Kommentare
Akzeptierte Antwort
  Arslan Ahmad
 am 19 Feb. 2018
        
      Bearbeitet: Walter Roberson
      
      
 am 19 Feb. 2018
  
      
      1 Kommentar
  Walter Roberson
      
      
 am 19 Feb. 2018
				This looks to me as if what it constructs is not the details of the path, but rather a count of how many of each kind of move would be used. Which I suppose is a valid interpretation of the question.
Weitere Antworten (1)
  Walter Roberson
      
      
 am 15 Feb. 2018
        
      Bearbeitet: Walter Roberson
      
      
 am 15 Feb. 2018
  
      Given a grid, since you know the valid moves, if you label the nodes, you can automatically construct a table of source nodes and valid destination nodes. There are 8 different moves, so it is enough to construct 8 different sub-lists of sources and targets in parallel. Put all the sources and all the targets together into a pair of S and T lists, and G = digraph(S,T) . Now you can use shortestpath(G, source_node, target_node)
3 Kommentare
  Issy Cassidy
 am 15 Feb. 2018
				
      Bearbeitet: Issy Cassidy
 am 15 Feb. 2018
  
			what do you exactly mean by 'here are 8 different moves, so it is enough to construct 8 different sub-lists of sources and targets in parallel' ??? what exactly is the source list and target list? Additionally what it the significance of the parallel?
  Walter Roberson
      
      
 am 15 Feb. 2018
				locs = reshape(1:81, 9, 9);
%move 1: move 1 right, 2 down: (+1,+2)
S1 = locs(1:end-1,1:end-2);
T1 = locs(2:end, 3:end);
%move 2: move 1 right, 2 up: (+1,-2)
S2 = locs(1:end-1, 3:end);
T2 = locs(2:end, 1:end-2);
Now do the same kind of thing for (+2,-1), (+2,+1), (-1,+2), (-1,-2), (-2, -1), (-2,+1), giving S1 through S8 and T1 through T8, extracting the proper subsets of locs in each case.
S = [S1(:); S2(:), S3(:), S4(:), S5(:), S6(:), S7(:), S8(:)];
T = [T1(:), T2(:), T3(:), T4(:), T5(:), T6(:), T7(:), T8(:)];
and then
G = digraph(S, T);
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




