2014-03-13 139 views
1

通過上下查看我的代碼後,我無法理解爲什麼javac提出「無法找到符號」。我已經通過Stackoverflow中的一些問題了解到,我知道這與範圍有關,但作爲血腥的初學者,我仍然無法解決這個問題。找不到符號

請幫忙。謝謝

package final1.classes; 
import final1.classes.GameManager; 

public final class ConnectFour { 

    private ConnectFour() { 

    } 

    private static int playerCount = 0; 


/** 
* The main method where the number of players is extracted from the 
* arguments array 
* 
* @param args 
*   String: Here used as the number of players 
*/ 
    public static void main(String[] args) { 

     if (args.length == 0) { 

      System.out.println("Please insert a number of players as argument"); 
      System.exit(0); 

     } 
     try { 
      setPlayerCount(Integer.parseInt(args[0])); 

     } catch (IllegalArgumentException ilae) { 

      System.out.println("Wrong input! The right input is a digit between 0 and 2"); 
      System.exit(0); 
     } 

     if (getPlayerCount() < 0 || getPlayerCount() > 2) { 

      System.out.println("Wrong number of players! You have to put in a digit between 0 and 2"); 

      System.exit(0); 

     } else {  

      final1.classes.GameManager game = new final1.classes.GameManager(getPlayerCount()); 
      game.update(); 
     } 

    } 
/** 
* Returns the playerCount 
* @return the playerCount 
*/ 
    public static int getPlayerCount() { 
     return playerCount; 
    } 

/** 
* Sets playerCount to the parameter playerCount 
* @param playerCount the playerCount to set 
*/ 
    public static void setPlayerCount(int playerCount) { 
     ConnectFour.playerCount = playerCount; 
    } 


} 

堆棧跟蹤:

C:\Users\Dennis\Dropbox\workspaceNero\Abschlussaufgabe1\src\final1\classes>javac 
ConnectFour.java 
ConnectFour.java:2: error: cannot find symbol 
import final1.classes.GameManager; 
        ^
    symbol: class GameManager 
    location: package final1.classes 
ConnectFour.java:53: error: cannot find symbol 
      final1.classes.GameManager game = new final1.classes.GameManager(get 
PlayerCount()); 
         ^
    symbol: class GameManager 
    location: package final1.classes 
ConnectFour.java:53: error: cannot find symbol 
      final1.classes.GameManager game = new final1.classes.GameManager(get 
PlayerCount()); 
                   ^
    symbol: class GameManager 
    location: package final1.classes 
3 errors 

遊戲管理的堆棧跟蹤:

C:\Users\Dennis\Dropbox\workspaceNero\Abschlussaufgabe1\src\final1\classes>javac 
GameManager.java 
GameManager.java:5: error: package final1.algorithm does not exist 
import final1.algorithm.AlphaBetaAlgorithm; 
        ^
GameManager.java:6: error: package final1.algorithm does not exist 
import final1.algorithm.Game; 
        ^
GameManager.java:7: error: package final1.algorithm does not exist 
import final1.algorithm.GameState; 
        ^
GameManager.java:8: error: package final1.algorithm does not exist 
import final1.algorithm.Move; 
        ^
GameManager.java:9: error: package final1.algorithm does not exist 
import final1.algorithm.Terminal; 
        ^
GameManager.java:17: error: cannot find symbol 
public class GameManager implements Game<Move> { 
            ^
    symbol: class Game 
GameManager.java:17: error: cannot find symbol 
public class GameManager implements Game<Move> { 
             ^
    symbol: class Move 
GameManager.java:21: error: cannot find symbol 
    private static GameState gameState; 
       ^
    symbol: class GameState 
    location: class GameManager 
GameManager.java:39: error: cannot find symbol 
    private GameField gf; 
      ^
    symbol: class GameField 
    location: class GameManager 
GameManager.java:155: error: cannot find symbol 
    public List<Move> getValidMoves() { 
       ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:177: error: cannot find symbol 
    public void perform(Move move) { 
         ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:210: error: cannot find symbol 
    public Move nextTurn() { 
     ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:221: error: cannot find symbol 
    public GameState getState() { 
     ^
    symbol: class GameState 
    location: class GameManager 
GameManager.java:230: error: cannot find symbol 
    public static GameState getGameState() { 
       ^
    symbol: class GameState 
    location: class GameManager 
GameManager.java:240: error: cannot find symbol 
    public static void setGameState(GameState gameState) { 
            ^
    symbol: class GameState 
    location: class GameManager 
GameManager.java:50: error: cannot find symbol 
     this.gameState = GameState.PLAYING; 
         ^
    symbol: variable GameState 
    location: class GameManager 
GameManager.java:51: error: cannot find symbol 
     gf = new GameField(6, 7); 
       ^
    symbol: class GameField 
    location: class GameManager 
GameManager.java:62: error: cannot find symbol 
     while (gameState == GameState.PLAYING) { 
          ^
    symbol: variable GameState 
    location: class GameManager 
GameManager.java:65: error: cannot find symbol 
      Terminal.prompt("Player " + String.valueOf(player) + ":"); 
      ^
    symbol: variable Terminal 
    location: class GameManager 
GameManager.java:75: error: cannot find symbol 
        int column = Integer.parseInt(Terminal.readln()); 
               ^
    symbol: variable Terminal 
    location: class GameManager 
GameManager.java:78: error: cannot find symbol 
         Terminal.println("Please insert a number between 0 and 6 
"); 
         ^
    symbol: variable Terminal 
    location: class GameManager 
GameManager.java:81: error: cannot find symbol 
         this.perform(new ConnectFourMove(column, player)); 
             ^
    symbol: class ConnectFourMove 
    location: class GameManager 
GameManager.java:86: error: cannot find symbol 
          Terminal.println("Column" + column 
          ^
    symbol: variable Terminal 
    location: class GameManager 
GameManager.java:94: error: cannot find symbol 
        Terminal.println("Please insert a number between 0 and 6"); 
        ^
    symbol: variable Terminal 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(
       ^
    symbol: class AlphaBetaAlgorithm 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(
           ^
    symbol: class Game 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(
             ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(
              ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(
                   ^
    symbol: class AlphaBetaAlgorithm 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(

    ^
    symbol: class Game 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(

     ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:99: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> alpha = new AlphaBetaAlgori 
thm<Game<Move>, Move>(

       ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(
       ^
    symbol: class AlphaBetaAlgorithm 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(
           ^
    symbol: class Game 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(
             ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(
              ^
    symbol: class Move 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(
                   ^
    symbol: class AlphaBetaAlgorithm 
    location: class GameManager 
GameManager.java:101: error: cannot find symbol 
       AlphaBetaAlgorithm<Game<Move>, Move> beta = new AlphaBetaAlgorit 
hm<Game<Move>, Move>(

S.O.

+1

發佈堆棧跟蹤。 –

+0

爲什麼你有一個構造函數,當你的類中的所有東西都是靜態的? – blueygh2

+0

您不需要導入同一包中的類。 –

回答

0
$ javac ConnectFour.java 
ConnectFour.java:2: error: cannot find symbol 
import final1.classes.GameManager; 
        ^
    symbol: class GameManager 
    location: package final1.classes 
ConnectFour.java:49: error: cannot find symbol 
     final1.classes.GameManager game = new final1.classes.GameManager(getPlayerCount()); 
        ^
    symbol: class GameManager 
    location: package final1.classes 
ConnectFour.java:49: error: cannot find symbol 
     final1.classes.GameManager game = new final1.classes.GameManager(getPlayerCount()); 
                  ^
    symbol: class GameManager 
    location: package final1.classes 

您是否擁有所有需要的*.java文件? 。似乎有缺失的類。請記住,GameManager也是需要的。

+0

我想是這樣......他們在不同的包裝中,但這不應該是問題,對吧? – user3417347

+0

你在開始時聲明它們在同一個包中。 – Tomas

+0

GameManager.java與ConnectFour.java在同一個包中。其他一些類在另一個包 – user3417347

0

這些類是泛型類,它們必須保留在包「final1.algorithm」中,並且終端類應該位於final1包中。 因爲當你上傳你的程序到網站時,你將不能更改它們中的任何內容,因爲它們會自動添加這些類,以防止對它們進行任何更改,當然還因爲它們有更多隱藏的測試在那裏實施。

你可以把你自己寫的類放在final1包或者你想要的任何其他子包中,但是不要忘記正確地導入所有東西。