- #1
apiwowar
- 96
- 0
I'm writing a method that checks a given coordinates neighbors to see if they are part of the path. the problem I am having with is the conditions that ihave to make sure i don't go outside of the grid. it doesn't seem that the two conditions for col are being checked. i put print statements inside each check to see if they get printed and the two for col dont. is there any obvious mistake that i made?
Thank you
Thank you
Code:
public static void neighbors(Coordinate current, int[][] grid, Queue q)
{
int row = current.getRow();
int col = current.getCol();
if((row - 1) >= 0)
{
System.out.println("Checking north");
if(grid[row-1][col] == 1)
{
if(grid[row][col] == -1)
{
grid[row-1][col] = grid[row][col] + 2;
}
else
{
grid[row-1][col] = grid[row][col] + 1;
}
Coordinate x = new Coordinate(row-1,col);
System.out.println("first if in neighbor");
System.out.println("enqueue");
q.enqueue(x);
System.out.println("test count " + q.getCount());
}
}
else if((row + 1) <= grid.length)
{
System.out.println("checking south");
if(grid[row+1][col] == 1)
{
if(grid[row][col] == -1)
{
grid[row+1][col] = grid[row][col] + 2;
}
else
{
grid[row+1][col] = grid[row][col] + 1;
}
Coordinate x = new Coordinate(row+1,col);
System.out.println("second if in neighbor");
System.out.println("enqueue");
q.enqueue(x);
System.out.println("test count " + q.getCount());
}
}
else if((col - 1) >= 0)
{
System.out.println("Checking east");
if(grid[row][col-1] == 1)
{
if(grid[row][col] == -1)
{
grid[row][col-1] = grid[row][col] + 2;
}
else
{
grid[row][col-1] = grid[row][col] + 1;
}
Coordinate x = new Coordinate(row, col - 1);
System.out.println("third if in neighbor");
System.out.println("enqueue");
q.enqueue(x);
System.out.println("test count " + q.getCount());
}
}
else if((col + 1) <= grid[0].length)
{
System.out.println("checking west");
if(grid[row][col+1] == 1)
{
if(grid[row][col+1] == -1)
{
grid[row][col+1] = grid[row][col] + 1;
}
else
{
grid[row][col+1] = grid[row][col] + 1;
}
Coordinate x = new Coordinate(row, col + 1);
System.out.println("fourth if in neighbor");
System.out.println("enqueue");
q.enqueue(x);
System.out.println("test count " + q.getCount());
}
}
else
{
}
System.out.println("dequeue in neighbor");
q.dequeue();
}