Fixed typo.
[ailab2.git] / src / SearchInterface.java
blob08d21aa8a186fc3bfe510240a261de621827b922
1 import java.io.BufferedReader;
2 import java.io.File;
3 import java.io.IOException;
4 import java.io.InputStreamReader;
6 /**
7 * Startklass för sökalgoritmen.
8 *
9 * SearchInterface kan anropas med tre eller fem parametrar.
10 * De två första parametrarna anger namnet på er sökklass respektive kartan som ska sökas.
11 * Parameter tre anger sökmetod, B, D, A eller G vilket motsvarar bredden först, djupet först, A* respektive Greedy Search.
13 * Parameter fyra och fem anger start och mål för sökningen. Om dessa utelämnas kommer programmet
14 * att fråga efter dem.
16 * Exempel: java SearchInterface MySearcher umea_map.xml B Teg Begbilar
18 * @author billing
20 public class SearchInterface {
22 public static void main(String[] args) {
23 BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
25 try {
26 if (args.length < 3) {
27 System.err.println("Sökklass, karta och sökmetod måste anges.");
28 } else {
29 Class c = Class.forName(args[0]); // Importerar sökklassen
30 MapSearcher searcher = (MapSearcher)c.newInstance(); // Instansierar
31 searcher.setMap(new File(args[1])); // Anger kartan
33 String from;
34 String to;
35 if (args.length > 3) {
36 from=args[3];
37 } else {
38 System.out.print("Ange startnod: ");
39 from = stdin.readLine();
41 if (args.length > 4) {
42 to=args[4];
43 } else {
44 System.out.print("Ange målnod: ");
45 to = stdin.readLine();
48 System.out.print(args[0]+" ");
49 if (args[2].equals("B")) {
50 System.out.print("söker med bredden först... ");
51 System.out.println("klar.\n"+searcher.breadthFirst(from,to));
52 } else if (args[2].equals("D")) {
53 System.out.print("söker med djupet först... ");
54 System.out.println("klar.\n"+searcher.depthFirst(from,to));
55 } else if (args[2].equals("A")) {
56 System.out.print("söker med A* (kortaste vägen)... ");
57 System.out.println("klar.\n"+searcher.aStar(from,to,false));
58 System.out.print("söker med A* (snabbaste vägen)... ");
59 System.out.println("klar.\n"+searcher.aStar(from,to,true));
60 } else if (args[2].equals("G")) {
61 System.out.print("söker med Greedy Search... ");
62 System.out.println("klar.\n"+searcher.greedySearch(from,to));
67 } catch (ClassNotFoundException e) {
68 e.printStackTrace();
69 } catch (InstantiationException e) {
70 e.printStackTrace();
71 } catch (IllegalAccessException e) {
72 e.printStackTrace();
73 } catch (IOException e) {
74 e.printStackTrace();