Advertisement
simeonvarbanov

Untitled

Nov 21st, 2012
483
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. public class KnightTour {
  2.     private int board[][];
  3.     private int notvisted = 0;
  4.     private int count = 1;
  5.     private int x1;// start position
  6.     private int y1;// start position
  7.     private static int boardX;
  8.     private static int boardY;
  9.  
  10.     public KnightTour(int boardX, int boardY, int x1, int y1) {
  11.         this.x1 = x1;
  12.         this.y1 = y1;
  13.         this.boardX = boardX;
  14.         this.boardY = boardY;
  15.         board = new int[boardX][boardY];
  16.         reset(board, boardX, boardY);
  17.     }
  18.  
  19.     public void tour(int x, int y) {
  20.        
  21.         if ((y - 2 > 0 && x + 1 < boardX) && (board[x][y] == notvisted)) {
  22.             board[x][y] = count;
  23.             count++;
  24.         }
  25.         if ((y - 2 > 0 && x - 1 > 0) && (board[x][y] == notvisted)) {
  26.             board[x][y] = count;
  27.             count++;
  28.         }
  29.         if ((y - 1 > 0 && x - 2 > 0) && (board[x][y] == notvisted)) {
  30.             board[x][y] = count;
  31.             count++;
  32.         }
  33.         if ((y + 1 < boardY && x - 2 > 0) && (board[x][y] == notvisted)) {
  34.             board[x][y] = count;
  35.             count++;
  36.         }
  37.         if ((y + 2 < boardY && x - 1 > 0) && (board[x][y] == notvisted)) {
  38.             board[x][y] = count;
  39.             count++;
  40.         }
  41.         if ((y + 2 < boardY && x + 1 < boardX) && (board[x][y] == notvisted)) {
  42.             board[x][y] = count;
  43.             count++;
  44.         }
  45.         if ((y - 1 > 0 && x - 2 > 0) && (board[x][y] == notvisted)) {
  46.             board[x][y] = count;
  47.             count++;
  48.         }
  49.         if ((y + 1 < boardY && x - 2 > 0) && (board[x][y] == notvisted)) {
  50.             board[x][y] = count;
  51.             count++;
  52.         }
  53.  
  54.     }
  55.  
  56.     public boolean reset(int board[][], int boardX, int boardY) {// setting all
  57.                                                                     // the
  58.                                                                     // fields
  59.                                                                     // with
  60.                                                                     // zeros
  61.         for (int i = 0; i < boardY; i++) {
  62.             for (int j = 0; j < boardX; j++) {
  63.                 board[i][j] = 0;
  64.             }
  65.         }
  66.         return true;
  67.     }
  68.  
  69.     public void print() {
  70.         for (int row = 0; row < boardX; row++) {
  71.             for (int col = 0; col < boardY; col++) {
  72.                 System.out.print("|");
  73.                 System.out.print("" + board[row][col]);
  74.             }
  75.             System.out.println("|");
  76.         }
  77.     }
  78.  
  79.     public static void main(String[] args) {
  80.         KnightTour KnightTour = new KnightTour(8, 8, 0, 0);
  81.         KnightTour.print();
  82.         System.out.println();
  83.         KnightTour.tour(0, 0);
  84.         KnightTour.print();
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement