I have a 2 dimensional boolean array and i need to compare some elements. I need to compare the neighbors of all the elements. One element has 8 neighbors, top and bottom, right and left, and then the diagonals would make 8. I also need a counter to count how many trues there are and then return the value some how. Im completely lost on how to do this so any help would be nice.
Comparing Elements in an Array
Collapse
X
-
Greetings, nickels!
Do you have anything working thus far? I think there's a lot here you can use including of mine, but you'd need to search bit.
Post what you have, see what we can help you with. Thi might also give us a clear idea what you're hoping to achieve.
I'm just passing through, others may see your post if you dd here...
In a bit!
Dököll -
ok i have to put where im counting the neighbors in the countNeighbors method. The genNextGrid is where i have to create a temporary two dimensional array and use the countNeighbors method. Depending on how many true and falses are around an element will change it to true or false or keep it where its at. Heres my code...
Code:import java.util.Scanner; import java.util.Random; public class test { // the size of the grid (GRIDSIZE x GRIDSIZE) final private static int GRIDSIZE = 18; /********************************************************************************/ public static void main ( String args[] ) { boolean[][] board = new boolean[GRIDSIZE][GRIDSIZE]; char choice; int x = 1; Scanner sc = new Scanner ( System.in ); do { System.out.print ( "Start with a (r)andom board, the (q)ueen bee shuttle or the (g)lider pattern? "); choice = sc.next().charAt(0); } while ( choice != 'r' && choice != 'q' && choice != 'g' ); clearGrid (board); setup(board,choice); do { System.out.printf ("Viewing generation #%d:\n\n", x++); displayGrid(board); genNextGrid(board); System.out.print ("\n(q)uit or any other key + ENTER to continue: "); choice = sc.next().charAt(0); } while ( choice != 'q' ); } /********************************************************************************/ public static void setup (boolean[][] board, char which ) { Random randomNumbers = new Random(); clearGrid(board); if ( which == 'q' ) { // Set up the Queen Bee Shuttle pattern board[5][1] = true;board[5][2] = true;board[6][3] = true;board[7][4] = true; board[8][4] = true;board[9][4] = true;board[10][3] = true;board[11][2] = true; board[11][1] = true; } else if ( which == 'g' ) { // Set up a Glider board [17][0] = true; board[16][1] = true; board[15][1] = true; board[16][2] = true; board [17][2] = true; } else { // set up random for (int row = 0; row < board.length; row++ ) { for (int col = 0; col < board[row].length; col++ ) { if ( randomNumbers.nextInt() % 2 == 0 ) board[row][col] = true; } } } } /********************************************************************************/ public static void displayGrid (boolean[][] grid) { // Start printing the top row of numbers System.out.print (" "); for (int x = 1; x <= grid.length; x++) { if ((x / 10) != 0) System.out.printf ( "%d", x / 10 ); else System.out.print ( " " ); } System.out.println(); System.out.print( " " ); for (int x = 1; x <= grid.length; x++) { System.out.printf ( "%d", x % 10 ); } System.out.println(); for (int r = 0; r < grid.length; r++) { System.out.printf ( "%d", r+1 ); if (r + 1 < 10) System.out.print ( " " ); else System.out.print ( " " ); for (int c = 0; c < grid.length; c++) { if (grid[r][c] == true) System.out.print ( "*" ); else System.out.print ( " " ); } System.out.println(); } } /*******************************************************************************/ public static void clearGrid ( boolean[][] board ) { for (int i = 0; i < boolean.length; i++) { for( j = 0; j < boolean.length; j++) { boolean[i][j] = false; } } } public static void genNextGrid ( boolean[][] board ) { } public static int countNeighbors ( final boolean[][] board, final int row, final int col ) { } }
Comment
Comment