Comparing Elements in an Array

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • nickels
    New Member
    • Sep 2008
    • 20

    Comparing Elements in an Array

    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.
  • Dököll
    Recognized Expert Top Contributor
    • Nov 2006
    • 2379

    #2
    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
    Last edited by Dököll; Dec 8 '08, 04:25 AM. Reason: idea for ideai :-)

    Comment

    • hsn
      New Member
      • Sep 2007
      • 237

      #3
      can you at least post you code please or your algorithm. so we could help you

      Comment

      • nickels
        New Member
        • Sep 2008
        • 20

        #4
        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

        • JosAH
          Recognized Expert MVP
          • Mar 2007
          • 11453

          #5
          For any point at index (x,y) jot down the index values in terms of x and y of all of its neighbours. Do you notice any regularity?

          kind regards,

          Jos

          Comment

          Working...