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
You are missing brackets and/or have misplaced them. Check your code again.
For example your
isComplete
method is inside a while loop of themain
method.It helps if you use correct indentation to figure out where you need the brackets placed.