1 import java
.io
.BufferedReader
;
3 import java
.io
.IOException
;
4 import java
.io
.InputStreamReader
;
7 * Startklass för sökalgoritmen.
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, Ad, At eller G vilket motsvarar bredden
12 * först, djupet först, A* med kortaste avstånd, A* med kortaste tid,
13 * respektive Greedy Search.
15 * Parameter fyra och fem anger start och mål för sökningen. Om dessa utelämnas kommer programmet
16 * att fråga efter dem.
18 * Exempel: java SearchInterface MySearcher umea_map.xml B Teg Begbilar
22 public class SearchInterface
{
24 public static void main(String
[] args
) {
25 BufferedReader stdin
= new BufferedReader(new InputStreamReader(System
.in
));
28 if (args
.length
< 3) {
29 System
.err
.println("Sökklass, karta och sökmetod måste anges.");
31 Class c
= Class
.forName(args
[0]); // Importerar sökklassen
32 MapSearcher searcher
= (MapSearcher
)c
.newInstance(); // Instansierar
33 searcher
.setMap(new File(args
[1])); // Anger kartan
37 if (args
.length
> 3) {
40 System
.out
.print("Ange startnod: ");
41 from
= stdin
.readLine();
43 if (args
.length
> 4) {
46 System
.out
.print("Ange målnod: ");
47 to
= stdin
.readLine();
50 System
.out
.print(args
[0]+" ");
51 if (args
[2].equals("B")) {
52 System
.out
.print("söker med bredden först... ");
53 System
.out
.println("klar.\n"+searcher
.breadthFirst(from
,to
));
54 } else if (args
[2].equals("D")) {
55 System
.out
.print("söker med djupet först... ");
56 System
.out
.println("klar.\n"+searcher
.depthFirst(from
,to
));
57 } else if (args
[2].equals("Ad")) {
58 System
.out
.print("söker med A* (kortaste vägen)... ");
59 System
.out
.println("klar.\n"+searcher
.aStar(from
,to
,false));
60 } else if (args
[2].equals("At")) {
61 System
.out
.print("söker med A* (snabbaste vägen)... ");
62 System
.out
.println("klar.\n"+searcher
.aStar(from
,to
,true));
63 } else if (args
[2].equals("G")) {
64 System
.out
.print("söker med Greedy Search... ");
65 System
.out
.println("klar.\n"+searcher
.greedySearch(from
,to
));
70 } catch (ClassNotFoundException e
) {
72 } catch (InstantiationException e
) {
74 } catch (IllegalAccessException e
) {
76 } catch (IOException e
) {