Question: Can i get help fixing my Java Code listed below for the following question Consider an NX N grid in which some squares are occupied.

Can i get help fixing my Java Code listed below for the following question

Consider an NX N grid in which some squares are occupied. Two squares belong to the same group if they share a common edge. In Figure 7.30 there is one group of four occupied squares, three groups of two occupied squares, and two individual occupied squares. Assume that the grid is represented by a two-dimensional array. Write a program that

a. Computes the size of a group when a square in the group is given

b. Computes the number of different groups

c. Lists all groups

Can i get help fixing my Java Code listed below for the

/imported needed packages import javax.swing.text.Position; import java.util.Set; import java.util.Scanner; import java.util.HashSet; //Class public class NxNGrid { private boolean[][]nxngrid = null; public NxNGrid(boolean[][]inputgrid) { nxngrid = inputgrid; } public static void main(String[] args) { int index1, index2 = 0; Scanner sc = new Scanner(System.in); System.out.print("Enter the square position in the group: "); index1 = sc.nextInt(); index2 = sc.nextInt(); boolean[][]nxnGridData = { {false,false,false,false,false,false,false,false,false,true}, {false,false,false,true,true,false,false,false,false,true}, {false,false,false,false,false,false,false,false,false,false}, {false,false,false,false,true,false,false,true,false,false}, {false,false,false,true,false,false,false,true,false,false}, {false,false,false,false,false,false,false,true,true,false}, {false,false,false,false,true,true,false,false,false,false}, {false,false,false,false,false,false,false,false,false,false}, {false,false,false,false,false,false,false,false,false,false}, {false,false,false,false,false,false,false,false,false,false,} }; NxNGrid grid = new NxNGrid(nxnGridData); int size = grid.groupSize(index1,index2); System.out.println(" Group size: " + size + " "); System.out.println("Totla number of Groups:" + grid.numOfGroupsAndListGroups()); sc.close(); } public int groupSize(int index1, int index2){ if(index1 =nxngrid.length || index2 >= nxngrid.length){ throw new IndexOutOfBoundsException("Invalid indices!"); } Set record = new HashSet(); recompute(record,index1,index2); //Return return record.size(); } //Method Recompute() public void recompute(Set pos, int index1, int index2){ if(index1 = nxngrid.length || index2 >= nxngrid.length){ return; } if(nxngrid[index1][index2]){ Position a = new Position(index1,index2); if(!pos.contains(a)){ pos.add(a); recompute(pos,index1-1,index2); recompute(pos,index1+1,index2); recompute(pos, index1,index2-1); recompute(pos,index1,index2+1); } } } public int numOfGroupsAndListGroups(){ Set> total = new HashSet>(); int index1,index2; for(index1=0; index1 { for(index2=0;index2 { Set a = new HashSet(); recompute(a,index1,index2); if(!a.isEmpty()) total.add(a); } } index1 =1; for(Set b: total){ System.out.println("Group " + index1+":"); for(Object c: b){ System.out.println(c.toString()); } index1++; System.out.println(); } //Return return total.size(); } private static class Position{ int index1, index2; public Position(int index1, int index2){ this.index1 = index1; this.index2 = index2; } public boolean equals(Object o){ if(o == null) return false; Position other = (Position)o; return (other.index1 == index1)&&(other.index2 == index2); } public int hashCode(){ return index1 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!