Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MultidimensionalArrays;
- import java.util.Scanner;
- public class FindTheRealQueen {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int rows = 8;
- int cols = 8;
- char[][] chessTable = readMatrix(rows, cols, scanner);
- for (int row = 0; row < chessTable.length; row++) {
- for (int col = 0; col < chessTable[row].length; col++) {
- char currentElement = chessTable[row][col];
- if (currentElement == 'q') {
- if (check(chessTable, row, col)) {
- System.out.print(row + " ");
- System.out.print(col);
- }
- }
- }
- }
- }
- private static char[][] readMatrix(int rows, int cols, Scanner scan) {
- char[][] matrix = new char[rows][cols];
- for (int row = 0; row < rows; row++) {
- String[] line = scan.nextLine().split("\\s+");
- for (int col = 0; col < matrix[row].length; col++) {
- char currentChar = line[col].charAt(0);
- matrix[row][col] = currentChar;
- }
- }
- return matrix;
- }
- private static boolean check(char[][] chessTable, int row, int token) {
- for (int i = token + 1; i < chessTable[row].length; i++) {
- char charToCheck = chessTable[row][i];
- if (charToCheck == 'q') {
- return false;
- }
- }
- for (int i = token - 1; i >= 0; i--) {
- char charToCheck = chessTable[row][i];
- if (charToCheck == 'q') {
- return false;
- }
- }
- for (int i = row + 1; i < chessTable.length; i++) {
- char charToCheck = chessTable[i][token];
- if (charToCheck == 'q') {
- return false;
- }
- }
- for (int i = row - 1; i >= 0; i--) {
- char charToCheck = chessTable[i][token];
- if (charToCheck == 'q') {
- return false;
- }
- }
- int uldElement = token - 1;
- for (int i = row - 1; i >= 0 && uldElement >= 0; i--, uldElement--) {
- char charToCheck = chessTable[i][uldElement];
- if (charToCheck == 'q') {
- return false;
- }
- }
- int urdElement = token + 1;
- for (int i = row - 1; i >= 0 && urdElement < chessTable[i].length; i--, urdElement++) {
- char charToCheck = chessTable[i][urdElement];
- if (charToCheck == 'q') {
- return false;
- }
- }
- int element = token - 1;
- for (int i = row + 1; i < chessTable.length && element >= 0; i++, element--) {
- char charToCheck = chessTable[i][element];
- if (charToCheck == 'q') {
- return false;
- }
- }
- int element1 = token + 1;
- for (int i = row + 1; i < chessTable.length && element1 < chessTable[row].length; i++, element1++) {
- char charToCheck = chessTable[i][element1];
- if (charToCheck == 'q') {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment