Ошибка с println: класс местоположения, метод println()

Я пытаюсь создать печатную форму на доске командной строки, чтобы создать игру TicTacToe в CMD. Хотя, когда я создаю класс для своей доски и своих ячеек, Java выдает ошибку под моим print и println, говоря мне, что:

symbol: method println()  -or- method print() .etc...

location: class board

error: cannot find symbol

в чем проблема с моим кодом? Вот весь мой файл .java:

я просто хочу, чтобы он компилировался, а не запускался

import acm.program.*;

public class board {

    private static final int ROWS=3;
    private static final int COLS=3;
    private int[][] board1 = new int[ROWS][COLS];


    //constructor
    public  board() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                board1[i][j]=0;
                printBoard();           
            }
        }
    }

    public void printBoard() {
        for(int row =0; row<ROWS; row++) {
            for (int col=0; col<COLS; col++) {
                printCell(board1[row][col]);
                if (col != (COLS-1)) {
                    print("|");   // print vertical partition
                }
            }
            println();
            if (row !=(ROWS-1)) {
                println("-----------");
            }
        }
        println();
    }

    public void printCell(int content) {
         if (content == 0)  {print("   ");}
    }

}

Он компилируется простой заменой print() и println() на system.out. Но это слишком странно. Пакет ACM включает в себя такие методы, как println() и print(), чтобы сделать его проще. но теперь это исправлено. Спасибо.

РЕДАКТИРОВАТЬ 2: для компиляции с помощью print() и println() НЕОБХОДИМО иметь: "доска общедоступных классов расширяет программу", а НЕ просто "доска общедоступных классов"


person HpdsbuΖt    schedule 07.02.2014    source источник
comment
Если вы хотите использовать ACM, вы должны иметь acm.jar файл в пути к классам, а ваш класс board должен иметь extend Program класс, например: class board extends Program{}   -  person Rong Nguyen    schedule 07.02.2014
comment
у меня есть файл acm.jar в моем пути к классам. Но нужно ли мне расширять программу, как расширяет программу, когда я создаю простой класс с конструктором? Публичная доска конструктора загружается в новый файл .java, который также импортирует acm и расширяет программу..   -  person HpdsbuΖt    schedule 07.02.2014
comment
Это не так в Java, поэтому вам нужно убедиться Constructor "public board" is being "loaded" into a new .java .   -  person Rong Nguyen    schedule 07.02.2014


Ответы (3)


Вот исправленный код:

public class board {

    private static final int ROWS=3;
    private static final int COLS=3;
    private int[][] board1 = new int[ROWS][COLS];


    //constructor
    public  board() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                board1[i][j]=0;
                printBoard();           

            }
        }
    }


    public void printBoard(){
       for(int row =0; row<ROWS; row++){
           for (int col=0; col<COLS; col++){
               printCell(board1[row][col]);
               if (col != (COLS-1)) {
                   System.out.print("|");   // print vertical partition
               }
            }
           System.out.println("");
           if (row !=(ROWS-1)) {
               System.out.println("-----------");
           }
        }
    System.out.println();
    }


    public void printCell(int content) {
         if (content == 0)  {System.out.print("   ");}
    }
}

Вы просто пропустили некоторые вызовы «System.out» для операторов печати.

person Alvin Bunk    schedule 07.02.2014
comment
yes.it компилируется! но это слишком странно. Пакет ACM включает в себя такие методы, как println() и print(), чтобы сделать его проще. но сейчас.. - person HpdsbuΖt; 07.02.2014
comment
Привет @HpdsbuΖt. Вам нужен ваш импорт acm.program.*? Я ничего не использовал, и моя программа скомпилировалась. Если это необходимо, можете ли вы рассказать нам некоторую информацию о пакете? - person Alvin Bunk; 07.02.2014
comment
да. Пакет ACM предоставляет вам некоторые команды и инструменты, облегчающие написание кода на Java и особенно создание графических программ, таких как игры. Он предоставляет вам более простые команды из обычного java, такие как: pintln() ---> system.out.println() public void run() --> public static void main(String[] args) мы используем его в первый год и первый семестр в моем университете (cs) - person HpdsbuΖt; 07.02.2014
comment
Итак, @HpdsbuΖt, помогло ли мое решение, за исключением того, что вам не нужно использовать System.out вместо того, чтобы просто печатать и печатать с пакетом ACM JTF? Если да, можете ли вы проголосовать за мой ответ? - person Alvin Bunk; 07.02.2014

Попробуйте заменить println() и print() на

System.out.print();
System.out.println();

Если вы хотите использовать ACM, у вас должен быть файл acm.jar в вашем пути к классам, и вы должны расширить класс Program в своем классе board, например: class board extends Program{}

См. также:

person Rong Nguyen    schedule 07.02.2014

Изменить println() на

System.out.print(); or   
System.out.println();

Дополнительно

person Rakesh KR    schedule 07.02.2014