Advertisement
Guest User

Untitled

a guest
May 27th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.63 KB | None | 0 0
  1. public class ChessBoard {
  2.     protected boolean[][] board;
  3.    
  4.     public ChessBoard(int size){
  5.         board = new boolean[size][size];
  6.     }  
  7.     public ChessBoard(boolean[][] board){
  8.         this.board = board;
  9.     }
  10.    
  11.     public boolean[][] getBoard() {
  12.         return board;
  13.     }
  14.     public void setBoard(boolean[][] board) {
  15.         this.board = board;
  16.     }
  17.    
  18.     protected void positionQueen(int line, int column) {
  19.         board[line][column] = true;
  20.     }
  21.     protected void deleteQueen(int line, int column) {
  22.         board[line][column] = false;
  23.     }
  24.    
  25.     protected boolean checkPosition(boolean[][] board, int line, int column){
  26.        
  27.         if(line >= board.length || line < 0 || column >= board.length || column < 0)
  28.             return false;
  29.        
  30.         for(int i = 0; i < board.length; i++){  //checks horizontally and vertically for capturing queens
  31.             if(board[line][i] || board[i][column]){
  32.                 return false;
  33.             }
  34.         }
  35.         for(int i = 0; i <= line; i++){ //checks up left diagonal for capturing queens
  36.             if(board[line - i][column - i]){
  37.                 return false;
  38.             }
  39.         }
  40.         for(int i = 0; i <= line; i++){ //checks up right diagonal for capturing queens
  41.             if((column + 1) >= board.length)
  42.                 break;
  43.             if(board[line - i][column + i]){
  44.                 return false;
  45.             }
  46.         }
  47.         for(int i = 0; i <= line; i++){ //checks down right diagonal for capturing queens
  48.             if((column + 1) >= board.length || (line + 1) >= board.length)
  49.                 break;
  50.             if(board[line + i][column + i]){
  51.                 return false;
  52.             }
  53.         }
  54.         for(int i = 0; i <= line; i++){ //checks down left diagonal for capturing queens
  55.             if((line + 1) >= board.length)
  56.                 break;
  57.             if(board[line + i][column - i]){
  58.                 return false;
  59.             }
  60.         }
  61.         return true;
  62.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement