Advertisement
Guest User

Untitled

a guest
May 27th, 2020
955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class TheRealQueen {
  4.     public static void main(String[] args) {
  5.         Scanner scan = new Scanner(System.in);
  6.  
  7.         int rows = 8;
  8.         int cols = 8;
  9.  
  10.         char[][] chessTable = readMatrix(rows, cols, scan);
  11.  
  12.         for (int row = 0; row < chessTable.length; row++) {
  13.             for (int elem = 0; elem < chessTable[row].length; elem++) {
  14.                 char currentElement = chessTable[row][elem];
  15.  
  16.                 if (currentElement == 'q') {
  17.                     if (check(chessTable, row, elem)) {
  18.                         System.out.print(row + " ");
  19.                         System.out.print(elem);
  20.  
  21.                     }
  22.  
  23.                 }
  24.             }
  25.         }
  26.  
  27.  
  28.     }
  29.  
  30.     private static char[][] readMatrix(int rows, int cols, Scanner scan) {
  31.         char[][] matrix = new char[rows][cols];
  32.  
  33.         for (int row = 0; row < rows; row++) {
  34.  
  35.             String[] line = scan.nextLine().split("\\s+");
  36.             for (int col = 0; col < matrix[row].length; col++) {
  37.                 char currentChar = line[col].charAt(0);
  38.                 matrix[row][col] = currentChar;
  39.             }
  40.  
  41.         }
  42.  
  43.  
  44.         return matrix;
  45.     }
  46.  
  47.     private static boolean check(char[][] chessTable, int row, int elem) {
  48.  
  49.         for (int i = elem + 1; i < chessTable[row].length; i++) { //RightHorizontal yes
  50.             char charToCheck = chessTable[row][i];
  51.  
  52.             if (charToCheck == 'q') {
  53.                 return false;
  54.             }
  55.         }
  56.  
  57.         for (int i = elem - 1; i >= 0; i--) { //LeftHorizontal yes
  58.             char charToCheck = chessTable[row][i];
  59.  
  60.             if (charToCheck == 'q') {
  61.                 return false;
  62.             }
  63.         }
  64.  
  65.  
  66.         for (int i = row + 1; i < chessTable.length; i++) { //DownVertical yes
  67.             char charToCheck = chessTable[i][elem];
  68.  
  69.             if (charToCheck == 'q') {
  70.                 return false;
  71.             }
  72.         }
  73.  
  74.         for (int i = row - 1; i >= 0; i--) { // UpVertical yes
  75.             char charToCheck = chessTable[i][elem];
  76.  
  77.             if (charToCheck == 'q') {
  78.                 return false;
  79.             }
  80.         }
  81.  
  82.         int uldElement = elem - 1;
  83.  
  84.         for (int i = row - 1; i >= 0 && uldElement >= 0; i--, uldElement--) { // UpLeftDiagonal yes
  85.             char charToCheck = chessTable[i][uldElement];
  86.  
  87.             if (charToCheck == 'q') {
  88.                 return false;
  89.             }
  90.         }
  91.  
  92.  
  93.         int urdElement = elem + 1;
  94.  
  95.         for (int i = row - 1; i >= 0 && urdElement < chessTable[i].length; i--, urdElement++) { // UpRightDiagonal yes
  96.             char charToCheck = chessTable[i][urdElement];
  97.  
  98.             if (charToCheck == 'q') {
  99.                 return false;
  100.             }
  101.         }
  102.  
  103.  
  104.         int element = elem - 1;
  105.  
  106.         for (int i = row + 1; i < chessTable.length && element >= 0; i++, element--) { // DownLeftDiagonal
  107.             char charToCheck = chessTable[i][element];
  108.  
  109.             if (charToCheck == 'q') {
  110.                 return false;
  111.             }
  112.         }
  113.  
  114.         int element1 = elem + 1;
  115.  
  116.         for (int i = row + 1; i < chessTable.length && element1 < chessTable[row].length; i++, element1++) { // DownRightDiagonal
  117.             char charToCheck = chessTable[i][element1];
  118.  
  119.             if (charToCheck == 'q') {
  120.                 return false;
  121.             }
  122.         }
  123.  
  124.         return true;
  125.     }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement