2014-03-13 141 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包或者你想要的任何其他子包中,但是不要忘记正确地导入所有东西。