# Posted By

greymatters on 09/13/14

# Statistics

Viewed 435 times
Favorited by 0 user(s)

# TestKnight.java

/ Published in: Java

This code demonstrates the KnightsTour class I developed.

See: http://www.snipplr.com/view/77383/knightstourjava/

Copy this code and paste it in your HTML
`package testknight; import java.util.Scanner; /** * * @author piguy */public class TestKnight {     public static void main(String[] args) {        // Create array called "shape"        // Must be rectangular integer array (each row must be same length) to pass to KnightsTourOrig        // 1 denotes square onto which knight can be moved        // 0 denotes square onto which knight cannot be moved        int[][] shape = new int[][]{            { 0, 0, 0, 1, 1, 1, 1 },            { 1, 1, 1, 1, 1, 1, 1 },            { 1, 1, 1, 1, 1, 1, 1 },            { 1, 1, 1, 1, 1, 1, 1 },            { 1, 1, 1, 1, 1, 1, 0 }        };        // Take shape and turn it into custom KnightsTour object called board        KnightsTour board = new KnightsTour(shape);         System.out.println();         board.displayBoard();         System.out.println();         board.displayAdjMatrix();         System.out.println();         // Print a closed Knight's Tour        //board.findAClosedKnightsTour();         // Print all closed Knight's Tours        //board.findAllClosedKnightsTours();         ///*        // Prepare to trap input        Scanner input = new Scanner(System.in);        boolean incorrectInput = true;        int startVertex = -1;        int vertices = board.getNumOfVertices();        System.out.print("At which vertex would you like to start? (0 - " + (vertices - 1) + ")? ");         // Trap processing while input is either not an integer or an integer out of range        while (incorrectInput) {            if (input.hasNextInt()) {                startVertex = input.nextInt();                if ((startVertex < 0) || (startVertex >= vertices)) {                    System.out.println("Oops! Vertex number must be between 0 and " + (vertices - 1) + ".");                    System.out.println();                    System.out.print("At which vertex would you like to start? (0 - " + (vertices - 1) + ")? ");                }                else {                    incorrectInput = false;                }            }            else {                input.next();                System.out.println("Oops! Answer must be a whole number between 0 and " + (vertices - 1) + ".");                System.out.println();                System.out.print("At which vertex would you like to start? (0 - " + (vertices - 1) + ")? ");            }        }         // Print out selected type of Knight's Tours        // given starting vertex        System.out.println();        //board.findAnOpenKnightsTour(startVertex);        //board.findAllOpenKnightsTours(startVertex);        //board.findAClosedKnightsTour(startVertex);        //board.findAllClosedKnightsTours(startVertex);        //board.findAllKnightsTours(startVertex);         // Find tours with matches to their dates        // Inspired by:        // http://forums.xkcd.com/viewtopic.php?f=3&t=62580        board.findAllKnightsToursCalendars(startVertex);         System.out.println();        System.out.println("Highest number of date-to-move matches: " + board.getMostMatches());        //*/    }}`