gpt4 book ai didi

java - 用Java初始化Othello Game Board

转载 作者:行者123 更新时间:2023-12-02 11:01:14 25 4
gpt4 key购买 nike

我正在尝试用Java初始化Othello的游戏板。它应该提示用户输入两个播放器名称,将播放器1设置为暗色,将播放器2设置为亮色,但是当我尝试编译时,出现以下错误:

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();
}
}

最佳答案

变量boardDisc的2D数组。
Disc没有方法setColor()
正确的方法名称是setDiscColor()

关于java - 用Java初始化Othello Game Board,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39553909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com