Advertisement
JKattackk

Grid.java

Jan 31st, 2020
410
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.HashMap;
  4.  
  5. import static java.lang.Integer.MAX_VALUE;
  6.  
  7. public class Grid {
  8.     private boolean[][] grid;
  9.     private int x;
  10.     private int y;
  11.     public Grid()
  12.     {
  13.         grid = new boolean[20001][20001];
  14.         x = 5000;
  15.         y = 5000;
  16.     }
  17.     public void move(char direction, int magnitude)
  18.     {
  19.         for(int i = 0; i < magnitude; i++)
  20.         {
  21.             if(direction == "U".charAt(0))
  22.             {
  23.                 y++;
  24.                 grid[x][y] = true;
  25.             }else if(direction == "D".charAt(0))
  26.             {
  27.                 y--;
  28.                 grid[x][y] = true;
  29.             }else if(direction == "R".charAt(0))
  30.             {
  31.                 x++;
  32.                 grid[x][y] = true;
  33.             }else if(direction == "L".charAt(0))
  34.             {
  35.                 x--;
  36.                 grid[x][y] = true;
  37.             }
  38.         }
  39.     }
  40.     public int findMin(Grid grid2)
  41.     {
  42.         int distance = MAX_VALUE;
  43.         for(int i = 0; i < grid.length; i++)
  44.         {
  45.             for(int z = 0; z < grid[i].length; z++)
  46.             {
  47.                 if(grid[i][z] && grid2.value(i, z))
  48.                 {
  49.                     if(findDistance(i, z) < distance)
  50.                     {
  51.                         distance = findDistance(i, z);
  52.                     }
  53.                 }
  54.             }
  55.         }
  56.         return distance;
  57.     }
  58.     private boolean value(int i, int z)
  59.     {
  60.         return grid[i][z];
  61.     }
  62.     private int findDistance(int x, int y)
  63.     {
  64.         return Math.abs(x - 5000) + Math.abs(y - 5000);
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement