- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我尝试用 Java 编写一个国际象棋程序,但是我的 getColor() 方法遇到了一些问题。我依赖于 Gridworld 的一些代码。我为每件作品创建了一个类。我希望这件作品像 Gridworld 中的小动物一样工作,因为我有一个方法可以创建一个 ArrayList,其中包含移动时可供选择的可能位置。这就是我遇到问题的地方。我尝试创建 getColor() 方法,但由于某种原因它不起作用。我向老师寻求帮助,但他和我一样困惑。我尝试调试它,但我没有发现它有任何问题。我得到的确切错误是这样的:
“找不到符号 - 方法 getColor()”
这是我的所有代码,我使用 BlueJ 作为记录:
import java.util.ArrayList;
import java.awt.Color;
public interface Piece
{
public enum PieceType {pawn, rook, knight, bishop, queen, king}
}
接下来是 ChessPiece 抽象类。不过,我还没有研究过 selectMoveLocation 方法:
import java.util.ArrayList;
import java.awt.Color;
import info.gridworld.grid.Location;
import info.gridworld.grid.BoundedGrid;
public abstract class ChessPiece implements Piece
{
Color colorOfPiece;
PieceType typeOfPiece;
public BoundedGrid<Object> board;
public Location location;
public ArrayList moveLocations;
public ChessPiece( Color whiteOrBlack, PieceType selectedType)
{
if (whiteOrBlack == Color.BLACK || whiteOrBlack == Color.WHITE)
{
if ((selectedType == PieceType.pawn || selectedType == PieceType.rook || selectedType == PieceType.knight || selectedType == PieceType.bishop ||selectedType == PieceType.queen || selectedType == PieceType.king))
{
colorOfPiece = whiteOrBlack;
typeOfPiece = selectedType;
location = null;
}
}
}
public Color getColor()
{
return colorOfPiece;
}
public void makeMove(Location newLocation)
{
if (board == null)
throw new IllegalStateException("This actor is not in a board.");
if (board.get(location) != this)
throw new IllegalStateException(
"The board contains a different actor at location "
+ location + ".");
if (!board.isValid(newLocation))
throw new IllegalArgumentException("Location " + newLocation
+ " is not valid.");
if (newLocation.equals(location))
return;
board.remove(location);
location = newLocation;
board.put(location, this);
}
public Location getLocation()
{
return location;
}
public BoundedGrid<Object> getBoard()
{
return board;
}
public Location selectMoveLocation(ArrayList<Location> moveLocations)
{
Location selection;
selection = null;
//mouse stuff
return selection;
}
}
最后,给出编译器错误的代码。这只是我的 King 作品的代码,尽管它给了我尝试实现它的每一个作品的错误:
import java.awt.Color;
import java.util.ArrayList;
import info.gridworld.grid.Location;
import info.gridworld.grid.BoundedGrid;
//must fix problem with getColor()
public class King extends ChessPiece
{
ArrayList<Location> moveLocations;
// private Color colorOfPiece;
public King( Color whiteOrBlack )
{
super(whiteOrBlack, PieceType.king);
//colorOfPiece = whiteOrBlack;
}
public void getMoveLocations()
{
moveLocations.clear();
for (int i = 0; i < 360; i += 45)
{
if ((getBoard().isValid(getLocation().getAdjacentLocation(i))) && (((getBoard().get(getLocation().getAdjacentLocation(i))) == null) || (((getBoard().get(getLocation().getAdjacentLocation(i)))).getColor() == colorOfPiece)))
{
moveLocations.add(getLocation().getAdjacentLocation(i));
}
}
}
}
最佳答案
getBoard().get(..) 根据我在网上找到的文档返回模板类型 E,在您的情况下,E 是类型对象(因为 ChessPiece 中的棋盘数据成员是对象的集合。)对象没有 getColor() 方法。您需要将 (((getBoard().get(getLocation().getAdjacentLocation(i)))) 转换为具有 getColor 方法的类。(或者将您的棋盘更改为国际象棋棋子的集合)
关于java - 找不到 getColor() 方法?国际象棋游戏帮助 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975156/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!