2016-09-18 20 views
0

OthelloのゲームボードをJavaで初期化しようとしています。これは、光の部分に2人のプレーヤーの名前、暗い部分に設定プレイヤー1、プレイヤー2のためにユーザーに求める必要があるが、私は次のエラーを取得するコンパイルしようとすると:OthelloゲームボードのJavaでの初期化

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous sym type: core.Disc.setColor 

at core.Board.initObjects(Board.java:44) "board[3][3].setColor(Constants.LIGHT);" 

at core.Board.<init>(Board.java:24) "initObjects();" 

at core.Game.initObjects(Game.java:30) "board = new Board();" 

at core.Game.<init>(Game.java:25) "initObjects();" 

at othello.Othello.main(Othello.java:17) "Game game = new Game();" 

誰が何のいくつかの洞察を提供することができます何をする?何が間違っているのか分かりません

これはフォーマットが悪いと申し訳ありません。複数のJavaクラスをフォーマットする方法がわかりませんでした。

Board.java

package core; 

// board class 
public class Board { 

    // member variable board (always make access modifier 'private'   
    // Disc = data type (class) 
    private Disc[][] board; 

    // constructor (same name as class) 
    public Board(){ 

     // method call for initObjects 
     initObjects(); 
    } 

    private void initObjects(){ 

     // declaring size of array // new is used to allocate memory 
     board = new Disc[Constants.ROWS][Constants.COLUMNS]; 

     // looping and initializing board 
     for(int row = 0; row < Constants.ROWS; row++){ 

      for (int col = 0; col < Constants.COLUMNS; col++){ 

       // calling no argument constructor 
       // for class Disc 
       board[row][col] = new Disc(); 
      } 
     } 

     // setColor is part of class Disc 
     board[3][3].setColor(Constants.LIGHT); 
     board[3][4].setColor(Constants.DARK); 
     board[4][3].setColor(Constants.DARK); 
     board[4][4].setColor(Constants.LIGHT); 
    } 



    /** 
    * @return the board 
    */ 
    public Disc[][] getBoard() { 
     return board; 
    } 

    /** 
    * @param board the board to set 
    */ 
    public void setBoard(Disc[][] board) { 
     this.board = board; 
    } 

} 

Constants.java

package core; 

import java.awt.Color; 

public class Constants { 

    public static Color DARK = Color.BLACK; 
    public static Color LIGHT = Color.WHITE; 
    public static int PLAYER_ONE = 0; 
    public static int PLAYER_TWO = 1; 
    public static int ROWS = 8; 
    public static int COLUMNS = 8; 
    public static int MAX_PLAYERS = 2; 

} 

Disc.java

package core; 

import java.awt.Color; 


public class Disc { 

    // member variable 
    private Color discColor; 

    /** 
    * @return the discColor 
    */ 
    public Color getDiscColor() { 
     return discColor; 
    } 

    /** 
    * @param discColor the discColor to set 
    */ 
    public void setDiscColor(Color discColor) { 
     this.discColor = discColor; 
    } 

} 

Game.java

package core; 

import java.util.ArrayList; 
import javax.swing.JOptionPane; 


public class Game { 


    // member variables 
    private ArrayList<Player> players; 
    private Board board; 

    public Game(){ 

     // initObjects method call 
     initObjects(); 
    } 

    private void initObjects(){ 

     board = new Board(); 
     createPlayers(); 
     printPlayers(); 
    } 

    private void createPlayers(){ 

     players = new ArrayList<Player>(); 

     for(int i=0; i < 2; i++){ 

      String name = JOptionPane.showInputDialog(null, "Enter player's name"); 
      Player player = new Player(); 
      player.setName(name); 

      if(i == Constants.PLAYER_ONE) 
       player.setDiscColor(Constants.DARK); 
      else if(i == Constants.PLAYER_TWO) 
       player.setDiscColor(Constants.LIGHT); 

     Player.add(players); 

    } 
} 

    private void printPlayers() 
{ 
    System.out.println("The game has the following players:"); 


    for(Player name : getPlayers()) 
    { 
     System.out.println("Player " + name.getName() + " is playing disc color " + name.getDiscColor()); 
    } 
} 

    /** 
    * @return the players 
    */ 
    public ArrayList<Player> getPlayers() { 
     return players; 
    } 

    /** 
    * @param players the players to set 
    */ 
    public void setPlayers(ArrayList<Player> players) { 
     this.players = players; 
    } 

    /** 
    * @return the board 
    */ 
    public Board getBoard() { 
     return board; 
    } 

    /** 
    * @param board the board to set 
    */ 
    public void setBoard(Board board) { 
     this.board = board; 
    } 

} 

Player.java

package core; 

import java.awt.Color; 


public class Player { 

    private String name; 

    private Color discColor; 

    /** 
    * @return the name 
    */ 
    public String getName() { 
     return name; 
    } 

    /** 
    * @param name the name to set 
    */ 
    public void setName(String name) { 
     this.name = name; 
    } 

    /** 
    * @return the discColor 
    */ 
    public Color getDiscColor() { 
     return discColor; 
    } 

    /** 
    * @param discColor the discColor to set 
    */ 
    public void setDiscColor(Color discColor) { 
     this.discColor = discColor; 
    } 

} 

Othello.java

public class Othello { 

public static void main(String[] args) { 
    Game game = new Game(); 
} 
} 

答えて

0

変数boardDiscの2次元アレイです。

Discは方法setColor()

を持っていません正しいメソッド名はsetDiscColor()

です