ai-22 / src / am / aua / npuzzle / AStarTSH2_Demo.java
AStarTSH2_Demo.java
Raw
package am.aua.npuzzle;

import am.aua.search.*;

public class AStarTSH2_Demo {
    public static void main(String[] args) {
        Tiles initialConfiguration = new Tiles(new int[][] {
                { 7, 4, 2 },
                { 8, 1, 3 },
                { 5, 0, 6 }
        });

        GoalTest goalTest = new TilesGoalTest();
        BestFirstFrontier frontier = new BestFirstFrontier(new AStarFunction(new ManhattanDistanceHeuristic(goalTest))) {
            @Override
            public String toString() {
                return "A* Tree Search with h2 manhattan distance";
            }
        };
        TreeSearch search = new TreeSearch(frontier);
        Node solution = search.search(initialConfiguration, goalTest);

        if (args.length == 0) {
            System.out.println("This is a demonstration of A* Tree Search on 8-puzzle with h2 manhattan distance");
            System.out.println();
            new NPuzzlePrinting().printSolution(solution);
        } else if (args[0].equals("-s")) {
            new NPuzzlePrinting().printStatistics(search);
        }
    }
}