Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package f02_Matrices.Lab;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class P07_FindTheRealQueen {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- char[][] matrix = readMatrixFromConsole(reader);
- String position = "";
- for (int i = 0; i < matrix.length; i++) {
- for (int j = 0; j < matrix[0].length; j++) {
- char current = matrix[i][j];
- if (current == 'q') {
- if (!left(matrix, i, j) || !right(matrix, i, j) || !up(matrix, i, j) || !down(matrix, i, j)
- || !leftUp(matrix, i, j) || !leftDown(matrix, i, j) || !rightUp(matrix, i, j) || !rightDown(matrix, i, j)) {
- continue;
- }
- position = i + " " + j;
- }
- }
- }
- System.out.println(position);
- }
- private static char[][] readMatrixFromConsole(BufferedReader reader) throws IOException {
- int row = 8;
- int col = 8;
- char[][] matrix = new char[row][col];
- for (int i = 0; i < row; i++) {
- String[] line = reader.readLine().split(" ");
- for (int j = 0; j < col; j++) {
- matrix[i][j] = (line[j].charAt(0));
- }
- }
- return matrix;
- }
- private static boolean left(char[][] matrix, int row, int col) {
- while (true) {
- col--;
- if (col <= 0) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean right(char[][] matrix, int row, int col) {
- while (true) {
- col++;
- if (col > matrix[0].length - 1) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean up(char[][] matrix, int row, int col) {
- while (true) {
- row--;
- if (row < 0) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean down(char[][] matrix, int row, int col) {
- while (true) {
- row++;
- if (row > matrix.length - 1) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean leftUp(char[][] matrix, int row, int col) {
- while (true) {
- row--;
- col--;
- if (row < 0 || col < 0) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean leftDown(char[][] matrix, int row, int col) {
- while (true) {
- row++;
- col--;
- if (row > matrix.length - 1 || col < 0) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean rightUp(char[][] matrix, int row, int col) {
- while (true) {
- row--;
- col++;
- if (row < 0 || col > matrix[0].length - 1) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- private static boolean rightDown(char[][] matrix, int row, int col) {
- while (true) {
- row++;
- col++;
- if (row > matrix.length - 1 || col > matrix[0].length - 1) {
- break;
- }
- char current = matrix[row][col];
- if (current == 'q') {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement