hfreni

Untitled

Mar 2nd, 2015
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.85 KB | None | 0 0
  1. package me.harrisonfreni.homework.Lesson8;
  2.  
  3. import java.util.Scanner;
  4.  
  5. /**
  6.  * Created by hfreni on 3/2/15.
  7.  */
  8. public class Problem19_PatternRecognition
  9. {
  10.     public static void main(String[] args)
  11.     {
  12.         //1. Initialize and Print Values
  13.         Scanner input = new Scanner(System.in);
  14.         System.out.print("Enter the number of rows: ");
  15.         int numberOfRows = input.nextInt();
  16.         System.out.print("Enter the number of columns: ");
  17.         int numberOfColumns = input.nextInt();
  18.         int[][] board = new int[numberOfRows][numberOfColumns];
  19.         System.out.println("Enter the array values: ");
  20.         for (int i = 0; i < board.length; i++) {
  21.             for (int j = 0; j < board[i].length; j++)
  22.                 board[i][j] = input.nextInt();
  23.         }
  24.         System.out.println(isConsecutiveFour(board));
  25.     }
  26.     public static boolean isConsecutiveFour(int[][] values) {
  27.         // 1. Initialize and Check if All
  28.         int numberOfRows = values.length;
  29.         int numberOfColumns = values[0].length;
  30.         for (int i = 0; i < numberOfRows; i++) {
  31.             if (isConsecutiveFour(values[i])) {
  32.                 return true;
  33.             }
  34.         }
  35.         for (int j = 0; j < numberOfColumns; j++) {
  36.             int[] column = new int[numberOfRows];
  37.             for (int i = 0; i < numberOfRows; i++) {
  38.                 column[i] = values[i][j];
  39.             }
  40.             if (isConsecutiveFour(column)) {
  41.                 return true;
  42.             }
  43.         }
  44.         for (int i = 0; i < numberOfRows - 3; i++) {
  45.             int numberOfElementsInDiagonal =
  46.                     Math.min(numberOfRows - i, numberOfColumns);
  47.             int[] diagonal = new int[numberOfElementsInDiagonal];
  48.             for (int k = 0; k < numberOfElementsInDiagonal; k++) {
  49.                 diagonal[k] = values[(k + i)][k];
  50.             }
  51.             if (isConsecutiveFour(diagonal)) {
  52.                 return true;
  53.             }
  54.         }
  55.         for (int j = 1; j < numberOfColumns - 3; j++) {
  56.             int numberOfElementsInDiagonal =
  57.                     Math.min(numberOfColumns - j, numberOfRows);
  58.             int[] diagonal = new int[numberOfElementsInDiagonal];
  59.             for (int k = 0; k < numberOfElementsInDiagonal; k++) {
  60.                 diagonal[k] = values[k][(k + j)];
  61.             }
  62.             if (isConsecutiveFour(diagonal)) {
  63.                 return true;
  64.             }
  65.         }
  66.         for (int j = 3; j < numberOfColumns; j++) {
  67.             int numberOfElementsInDiagonal =
  68.                     Math.min(j + 1, numberOfRows);
  69.             int[] diagonal = new int[numberOfElementsInDiagonal];
  70.             for (int k = 0; k < numberOfElementsInDiagonal; k++) {
  71.                 diagonal[k] = values[k][(j - k)];
  72.             }
  73.             if (isConsecutiveFour(diagonal)) {
  74.                 return true;
  75.             }
  76.         }
  77.         for (int i = 1; i < numberOfRows - 3; i++) {
  78.             int numberOfElementsInDiagonal =
  79.                     Math.min(numberOfRows - i, numberOfColumns);
  80.             int[] diagonal = new int[numberOfElementsInDiagonal];
  81.             for (int k = 0; k < numberOfElementsInDiagonal; k++) {
  82.                 diagonal[k] = values[(k + i)][(numberOfColumns - k - 1)];
  83.             }
  84.             if (isConsecutiveFour(diagonal)) {
  85.                 return true;
  86.             }
  87.         }
  88.         return false;
  89.     }
  90.     public static boolean isConsecutiveFour(int[] values) {
  91.         // 1. Check if Consecutive Through Loop
  92.         for (int i = 0; i < values.length - 3; i++) {
  93.             boolean isEqual = true;
  94.             for (int j = i; j < i + 3; j++) {
  95.                 if (values[j] != values[(j + 1)]) {
  96.                     isEqual = false;
  97.                     break;
  98.                 }
  99.             }
  100.             if (isEqual) return true;
  101.         }
  102.         return false;
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment