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, 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
20 public class SearchInterface
{
22 public static void main(String
[] args
) {
23 BufferedReader stdin
= new BufferedReader(new InputStreamReader(System
.in
));
26 if (args
.length
< 3) {
27 System
.err
.println("Sökklass, karta och sökmetod måste anges.");
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
35 if (args
.length
> 3) {
38 System
.out
.print("Ange startnod: ");
39 from
= stdin
.readLine();
41 if (args
.length
> 4) {
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
) {
69 } catch (InstantiationException e
) {
71 } catch (IllegalAccessException e
) {
73 } catch (IOException e
) {