Advertisement
Guest User

Untitled

a guest
May 21st, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.22 KB | None | 0 0
  1. package astar;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. import java.io.StreamTokenizer;
  9. import java.nio.file.Files;
  10. import java.nio.file.Paths;
  11. import java.util.List;
  12. import java.util.StringTokenizer;
  13.  
  14. public class AStarTest {
  15.  
  16.     private static String         logFile   = "wyjscie.txt";
  17.     private static BufferedWriter   logFileWriter;
  18.    
  19.     private static void initLog() {
  20.             File logFileObj = new File(logFile);
  21.         try {
  22.             FileWriter fileWriter = new FileWriter(logFileObj);
  23.             logFileWriter = new BufferedWriter(fileWriter);
  24.         } catch (IOException e) {
  25.             e.printStackTrace();
  26.         }
  27.     }
  28.     public static void main(String[] args) throws IOException {
  29.        
  30.         String rozmiar = Files.readAllLines(Paths.get("wejscie.txt")).get(0);
  31.         String[] parts = rozmiar.split("\\D+");
  32.         int rows = Integer.parseInt((parts[parts.length-2]));
  33.         int cols = Integer.parseInt((parts[parts.length-1]));
  34.        
  35.         String poczatkowy = Files.readAllLines(Paths.get("wejscie.txt")).get(1);
  36.         String[] parts2 = poczatkowy.split("\\D+");
  37.         int poczatkowyx = Integer.parseInt((parts2[parts2.length-2]));
  38.         int poczatkowyy = Integer.parseInt((parts2[parts2.length-1]));
  39.      
  40.         String koncowy = Files.readAllLines(Paths.get("wejscie.txt")).get(2);
  41.         String[] parts3 = koncowy.split("\\D+");
  42.         int koncowyx = Integer.parseInt((parts3[parts3.length-2]));
  43.         int koncowyy = Integer.parseInt((parts3[parts3.length-1]));
  44.        
  45.  
  46.         Node initialNode = new Node(poczatkowyx, poczatkowyy);
  47.         Node finalNode = new Node(koncowyx, koncowyy);
  48.        
  49.         AStar aStar = new AStar(rows, cols, initialNode, finalNode);
  50.         String kamienie = Files.readAllLines(Paths.get("wejscie.txt")).get(3);
  51.        
  52.    
  53.         int[][] blocksArray = new int [kamienie.length()/2][2];
  54.         int t =0;
  55.         while(t<kamienie.length())
  56.         {
  57.              for(int i = 0; i< kamienie.length()/2; i++)
  58.         {
  59.              for(int j = 0; j<2;j=j+2)
  60.              {
  61.                  
  62.                  blocksArray[i][j] = Character.getNumericValue(kamienie.charAt(t));
  63.                  
  64.                  blocksArray[i][j+1] = Character.getNumericValue(kamienie.charAt(t+1));
  65.                 // System.out.println(blocksArray[i][j] + " " + blocksArray[i][j+1]);
  66.                  t=t+2;
  67.              }
  68.         }
  69.         }
  70.        
  71.         //int[][] blocksArray = new int[][] { { 1, 3 }, {2,3}, {3 ,3} };
  72.         int[][] sand = new int[][] { { 0, 3 }, {4,4}, {6,4}, {2,8}};
  73.         aStar.setSand(sand);
  74.         aStar.setBlocks(blocksArray);
  75.        
  76.         List<Node> path = aStar.findPath();
  77.         int [][]nodes = new int[path.size()][2];
  78.         int i=0;
  79.         int k = 0;
  80.         for (Node node : path) {
  81.             //System.out.println(node);
  82.              nodes[i][k] = node.getRow();
  83.              nodes[i][k+1] = node.getCol();
  84.                  
  85.             // System.out.println(nodes[i][k] + " " + nodes[i][k+1]);
  86.              i = i+1;
  87.              
  88.            
  89.            
  90.         }
  91.         String s = "";
  92.         for(int j = 0; j<nodes.length-1;j++)
  93.         {
  94.            for(int z = 0; z<2; z=z+2)
  95.            {
  96.                if(nodes[j][z]==nodes[j+1][z] && nodes[j][z+1]<nodes[j+1][z+1]) {s = s + "2";}
  97.                if(nodes[j][z]==nodes[j+1][z] && nodes[j][z+1]>nodes[j+1][z+1]) { s = s + "4";}
  98.                if(nodes[j][z]>nodes[j+1][z] && nodes[j][z+1]==nodes[j+1][z+1]) { s = s + "1";}
  99.                if(nodes[j][z]<nodes[j+1][z] && nodes[j][z+1]==nodes[j+1][z+1]) { s = s + "3";}
  100.            }
  101.            
  102.            
  103.         }
  104.         System.out.println(s);
  105.         /*
  106.         PrintWriter zapis = new PrintWriter("wyjscie.txt");
  107.       zapis.println(s);
  108.       zapis.close();
  109. */
  110.         initLog();
  111.         try {
  112.             if (logFileWriter != null) {
  113.                 logFileWriter.write(s);
  114.                 logFileWriter.flush();
  115.             }
  116.            // Runtime.getRuntime().exec("echo " + s);
  117.         } catch (IOException e1) {
  118.             e1.printStackTrace();
  119.     }
  120.     }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement