Didart

Find The Real Queen

Jan 3rd, 2023
1,001
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.24 KB | None | 0 0
  1. package MultidimensionalArrays;
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class FindTheRealQueen {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int rows = 8;
  10.         int cols = 8;
  11.  
  12.         char[][] chessTable = readMatrix(rows, cols, scanner);
  13.  
  14.         for (int row = 0; row < chessTable.length; row++) {
  15.             for (int col = 0; col < chessTable[row].length; col++) {
  16.                 char currentElement = chessTable[row][col];
  17.                 if (currentElement == 'q') {
  18.                     if (check(chessTable, row, col)) {
  19.                         System.out.print(row + " ");
  20.                         System.out.print(col);
  21.                     }
  22.                 }
  23.             }
  24.         }
  25.     }
  26.  
  27.     private static char[][] readMatrix(int rows, int cols, Scanner scan) {
  28.         char[][] matrix = new char[rows][cols];
  29.         for (int row = 0; row < rows; row++) {
  30.             String[] line = scan.nextLine().split("\\s+");
  31.             for (int col = 0; col < matrix[row].length; col++) {
  32.                 char currentChar = line[col].charAt(0);
  33.                 matrix[row][col] = currentChar;
  34.             }
  35.         }
  36.         return matrix;
  37.     }
  38.  
  39.     private static boolean check(char[][] chessTable, int row, int token) {
  40.         for (int i = token + 1; i < chessTable[row].length; i++) {
  41.             char charToCheck = chessTable[row][i];
  42.             if (charToCheck == 'q') {
  43.                 return false;
  44.             }
  45.         }
  46.         for (int i = token - 1; i >= 0; i--) {
  47.             char charToCheck = chessTable[row][i];
  48.             if (charToCheck == 'q') {
  49.                 return false;
  50.             }
  51.         }
  52.         for (int i = row + 1; i < chessTable.length; i++) {
  53.             char charToCheck = chessTable[i][token];
  54.             if (charToCheck == 'q') {
  55.                 return false;
  56.             }
  57.         }
  58.         for (int i = row - 1; i >= 0; i--) {
  59.             char charToCheck = chessTable[i][token];
  60.  
  61.             if (charToCheck == 'q') {
  62.                 return false;
  63.             }
  64.         }
  65.         int uldElement = token - 1;
  66.         for (int i = row - 1; i >= 0 && uldElement >= 0; i--, uldElement--) {
  67.             char charToCheck = chessTable[i][uldElement];
  68.             if (charToCheck == 'q') {
  69.                 return false;
  70.             }
  71.         }
  72.         int urdElement = token + 1;
  73.         for (int i = row - 1; i >= 0 && urdElement < chessTable[i].length; i--, urdElement++) {
  74.             char charToCheck = chessTable[i][urdElement];
  75.             if (charToCheck == 'q') {
  76.                 return false;
  77.             }
  78.         }
  79.         int element = token - 1;
  80.         for (int i = row + 1; i < chessTable.length && element >= 0; i++, element--) {
  81.             char charToCheck = chessTable[i][element];
  82.             if (charToCheck == 'q') {
  83.                 return false;
  84.             }
  85.         }
  86.         int element1 = token + 1;
  87.         for (int i = row + 1; i < chessTable.length && element1 < chessTable[row].length; i++, element1++) {
  88.             char charToCheck = chessTable[i][element1];
  89.             if (charToCheck == 'q') {
  90.                 return false;
  91.             }
  92.         }
  93.         return true;
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment