java public static and private static, stringbuilder

818 views Asked by At

Below is the code i am trying to compile, it seems that i have problem with using a method within a method and unable to close the first method. Thus, unable to compile the program. Furthermore, im not sure if the Stringbuilder i've applied is correct or not as i cannot compile.

import javax.swing.JOptionPane;

public class tryingtoedit{

public static void main( String[] args ){
int block[][] = new int[gridsize][gridsize];
int row = 0;   // The variable assigned for counting rows
int column = 0; // The variable assigned for counting columns
int blockRow,blockColumn;
int score = 0;
final int gridsize = 3;
String inputRow, inputColumn;

//random a set of number
int randomSet[] = new int[100];
for(int i=0;i<randomSet.length;i++){
    randomSet[i] = (int) (Math.random() * gridsize * gridsize) + 1;
}


int round = 0 ;//for counting the round of the game
while( true ){
    ++round;

    //print out the title and score
    System.out.println( "-------------------------" );
    System.out.println( "Divided by 10 - Mini Game" );
    System.out.printf( "----  Score:%8d  ----\n\n", score );

    //show game board
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < gridsize; i++) {
        sb.append(String.format("%4d", i));
}

    //display the coming value
    System.out.printf( "Coming value : %d > %d > %d \n\n", randomSet[round], randomSet[(round + 1)], randomSet[(round + 2)] );



    //check over checking
    private static final boolean isComplete(int[][] grid) {
        for (int row = 0; row < grid.length; row++) {
            for (int col = 0; col < grid[row].length; col++) {
                if (grid[row][col] == 0) {
                    return false;
                }
            }
        }
        return true; // all celss have values.
}
                System.out.println( "------  Game Over  ------" );
                //continue check
                if(isComplete(block)){
                int ContinueCheck = JOptionPane.showConfirmDialog(null, "Do you want to    continue ?", "Continue?", JOptionPane.YES_NO_OPTION);
                if( ContinueCheck == JOptionPane.YES_OPTION){
                    //initialize the game board
                    for(row=0;row<block.length;row++)
                        for(column=0;column<block.length;column++)
                            block[row][column]=0;
                    continue;
                }else{if(ContinueCheck == JOptionPane.NO_OPTION){
                    System.out.println( "-------------------------" );
                    System.out.println("Good Bye !");
                    break;}
                }
            }


    //input value
    while(true){
        inputRow = JOptionPane.showInputDialog( "The number of row you want to put the number" );
        blockRow = Integer.parseInt(inputRow);
        inputColumn = JOptionPane.showInputDialog( "The number of column you want to put the number" );
        blockColumn = Integer.parseInt(inputColumn);
        if(blockRow>=block.length || blockRow<0 || blockColumn>=block.length || blockColumn<0){
            JOptionPane.showMessageDialog(null , "The block you want to enter the number does not exist." , "Error" , JOptionPane.ERROR_MESSAGE );
            continue;
        }else{
            if(block[blockRow][blockColumn]!=0){
                JOptionPane.showMessageDialog(null , "The block you want to enter the number has been entered an number." , "Error" , JOptionPane.ERROR_MESSAGE );
                continue;
            }else{
                block[blockRow][blockColumn] = randomSet[round];
                break;
            }
        }
    }


    //score got check
    int modSumBlock[] = new int[gridsize + gridsize + 2]; // rows, columns, and diagonals
    for (int row = 0; row < gridsize; row++) {
        modSumBlock[       0 + row] = getRowScore(block, row);
    }
    for (int col = 0; col < gridsize; col++) {
        modSumBlock[gridsize + col] = getColumnScore(block, col);
    }
    modSumBlock[gridsize + gridsize]     = getSlashDiagonalScore(block);
    modSumBlock[gridsize + gridsize + 1] = getBackslashDiagonalScore(block);
    //all 'if' is used for checking if all block in the same row/column/diagonal are filled in number

    //counting how many score got and where should be cleared by 8bit (in decimal)
    int scoreCount = 0;
    for(int n=0;n<8;n++){
        if(modSumBlock[n]==0){
            score += 10;
            scoreCount += (int) Math.pow(2,n);
        }else{
            continue;
        }
    }

    //start clear game board
    if(scoreCount>=128){
        block[0][2] = 0;
        block[1][1] = 0;
        block[2][0] = 0;
        scoreCount -= 128;
    }
    if(scoreCount>=64){
        block[0][0] = 0;
        block[1][1] = 0;
        block[2][2] = 0;
        scoreCount -= 64;
    }
    if(scoreCount>=32){
        block[0][2] = 0;
        block[1][2] = 0;
        block[2][2] = 0;
        scoreCount -= 32;
    }
    if(scoreCount>=16){
        block[0][1] = 0;
        block[1][1] = 0;
        block[2][1] = 0;
        scoreCount -= 16;
    }
    if(scoreCount>=8){
        block[0][0] = 0;
        block[1][0] = 0;
        block[2][0] = 0;
        scoreCount -= 8;
    }
    if(scoreCount>=4){
        block[2][0] = 0;
        block[2][1] = 0;
        block[2][2] = 0;
        scoreCount -= 4;
    }
    if(scoreCount>=2){
        block[1][0] = 0;
        block[1][1] = 0;
        block[1][2] = 0;
        scoreCount -= 2;
    }
    if(scoreCount>=1){
        block[0][0] = 0;
        block[0][1] = 0;
        block[0][2] = 0;
        scoreCount -= 1;
    }
}
}
}

The error message im getting

tryingtoedit.java:42: error: illegal start of expression
    private static final boolean isComplete(int[][] grid) {
    ^
tryingtoedit.java:42: error: illegal start of expression
    private static final boolean isComplete(int[][] grid) {
            ^
tryingtoedit.java:42: error: ';' expected
    private static final boolean isComplete(int[][] grid) {
                  ^
tryingtoedit.java:42: error: ';' expected
    private static final boolean isComplete(int[][] grid) {
                                           ^
tryingtoedit.java:42: error: ';' expected
    private static final boolean isComplete(int[][] grid) {
                                                        ^
5 errors

Tool completed with exit code 1
1

There are 1 answers

4
Blub On BEST ANSWER

You are missing brackets and/or have misplaced them. Check your code again.

For example your isComplete method is inside a while loop of the main method.

It helps if you use correct indentation to figure out where you need the brackets placed.