stoyanmkd

FireTheArrows-MATRIX

Feb 7th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.65 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class p03_FireTheArrows {
  4.  
  5.     public static void main(String[] args) {
  6.         Scanner input = new Scanner (System.in);
  7.         int n = Integer.parseInt(input.nextLine());
  8.         char[][] matrix = new char[n][];
  9.         boolean hasMoved;
  10.        
  11.         for (int i = 0; i < n; i++) {
  12.             matrix[i] = input.nextLine().toCharArray();
  13.         }
  14.        
  15.         do {
  16.             hasMoved = false;
  17.             for (int row = 0; row < matrix.length; row++) {
  18.                 for (int col = 0; col < matrix[row].length; col++) {
  19.                     switch (matrix[row][col]) {
  20.                     case '>':
  21.                         if (col + 1 > matrix[row].length - 1){
  22.                             break;
  23.                         }
  24.                         if (matrix[row][col + 1] == 'o'){
  25.                             matrix[row][col + 1] = '>';
  26.                             matrix[row][col] = 'o';
  27.                             hasMoved = true;   
  28.                         }
  29.                         break;
  30.                     case '<':
  31.                         if (col - 1 < 0){
  32.                             break;
  33.                         }
  34.                         if (matrix[row][col - 1] == 'o'){
  35.                             matrix[row][col - 1] = '<';
  36.                             matrix[row][col] = 'o';
  37.                             hasMoved = true;   
  38.                         }
  39.                         break;
  40.                     case '^':
  41.                         if (row - 1 < 0){
  42.                             break;
  43.                         }
  44.                         if (matrix[row - 1][col] == 'o'){
  45.                             matrix[row - 1][col] = '^';
  46.                             matrix[row][col] = 'o';
  47.                             hasMoved = true;   
  48.                         }
  49.                         break;
  50.                     case 'v':
  51.                         if (row + 1 > matrix.length - 1){
  52.                             break;
  53.                         }
  54.                         if (matrix[row + 1][col] == 'o'){
  55.                             matrix[row + 1][col] = 'v';
  56.                             matrix[row][col] = 'o';
  57.                             hasMoved = true;   
  58.                         }
  59.                         break;
  60.                     }
  61.                 }
  62.             }
  63.            
  64.         } while (hasMoved == true);
  65.        
  66.         for (int i = 0; i < matrix.length; i++) {
  67.             for (int j = 0; j < matrix[i].length; j++) {
  68.                 System.out.print(matrix[i][j]);
  69.             }
  70.             System.out.println();
  71.         }
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment