java общедоступная статическая и приватная статическая

Ниже приведен код, который я пытаюсь скомпилировать. Кажется, у меня проблемы с использованием метода внутри метода и я не могу закрыть первый метод. Таким образом, не удалось скомпилировать программу. Кроме того, я не уверен, что Stringbuilder, который я применил, правильный или нет, так как я не могу скомпилировать.

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;
    }
}
}
}

Сообщение об ошибке я получаю

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 ответ

Решение

Вам не хватает скобок и / или они неуместны. Проверьте свой код еще раз.

Например, ваш isComplete Метод находится внутри цикла while main метод.

Это помогает, если вы используете правильный отступ, чтобы выяснить, где вам нужно поместить скобки.

Другие вопросы по тегам