Advertisement
Guest User

Multidimensional Arrays - Lab - 07. Find The Real Queen

a guest
Jun 15th, 2019
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.54 KB | None | 0 0
  1. package MultiDimensionalArrays;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Scanner;
  6.  
  7. public class FindTheRealQueen {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.  
  11.         List<Integer> positionsOfQueens = new ArrayList<>();
  12.         List<Integer> realQueens = new ArrayList<>();
  13.  
  14.         String[][] board = new String[8][8];
  15.         for (int r = 0; r < 8; r++) {
  16.             String[] line = scanner.nextLine().split("\\s+");
  17.             for (int c = 0; c < 8; c++) {
  18.                 board[r][c] = line[c];
  19.                 if (board[r][c].charAt(0) == 'q') {
  20.                     positionsOfQueens.add(r);
  21.                     positionsOfQueens.add(c);
  22.                 }
  23.             }
  24.         }
  25.  
  26.         while (!positionsOfQueens.isEmpty()) {
  27.             int row = positionsOfQueens.get(0);
  28.             int col = positionsOfQueens.get(1);
  29.  
  30.             boolean isFake = false;
  31.  
  32.             for (int i = 2; i < positionsOfQueens.size(); i++) {
  33.                 if (positionsOfQueens.get(i) == row || positionsOfQueens.get(i) == col) {
  34.                     isFake = true;
  35.                     break;
  36.                 }
  37.             }
  38.  
  39.             if (!isFake) { //DOWN & RIGHT
  40.                 int r1 = row;
  41.                 int c1 = col;
  42.  
  43.                 for (int i = 1; i < 8; i++) {
  44.                     r1 += 1;
  45.                     c1 += 1;
  46.                     if (r1 >= 8 || c1 >= 8) {
  47.                         break;
  48.                     }
  49.                     if (board[r1][c1].charAt(0) == 'q') {
  50.                         isFake = true;
  51.                         break;
  52.                     }
  53.                 }
  54.  
  55.             }
  56.  
  57.             if (!isFake) { // UP & LEFT
  58.                 int r2 = row;
  59.                 int c2 = col;
  60.  
  61.                 for (int i = 0; i < 8; i++) {
  62.                     r2 -= 1;
  63.                     c2 -= 1;
  64.                     if (r2 <= 0 || c2 <= 0) {
  65.                         break;
  66.                     }
  67.                     if (board[r2][c2].charAt(0) == 'q') {
  68.                         isFake = true;
  69.                         break;
  70.                     }
  71.                 }
  72.  
  73.             }
  74.  
  75.             if (!isFake) {  //DOWN & LEFT
  76.                 int r3 = row;
  77.                 int c3 = col;
  78.  
  79.                 for (int i = 1; i < 8; i++) {
  80.                     r3 += 1;
  81.                     c3 -= 1;
  82.                     if (r3 >= 8 || c3 <= 0) {
  83.                         break;
  84.                     }
  85.                     if (board[r3][c3].charAt(0) == 'q') {
  86.                         isFake = true;
  87.                         break;
  88.                     }
  89.                 }
  90.  
  91.             }
  92.  
  93.             if (!isFake) { //UP & RIGHT
  94.                 int r4 = row;
  95.                 int c4 = col;
  96.  
  97.                 for (int i = 1; i < 8; i++) {
  98.                     r4 -= 1;
  99.                     c4 += 1;
  100.                     if (r4 <= 0 || c4 >= 8) {
  101.                         break;
  102.                     }
  103.                     if (board[r4][c4].charAt(0) == 'q') {
  104.                         isFake = true;
  105.                         break;
  106.                     }
  107.                 }
  108.  
  109.             }
  110.  
  111.             if (!isFake) {
  112.                 realQueens.add(row);
  113.                 realQueens.add(col);
  114.             }
  115.  
  116.             positionsOfQueens.remove(0);
  117.             positionsOfQueens.remove(0);
  118.         }
  119.  
  120.         if (!realQueens.isEmpty()) {
  121.             System.out.println(realQueens.get(0) + " " + realQueens.get(1));
  122.         }
  123.  
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement