所以我试图用通用类和接口制作一个迷宫,我不太确定我哪里出错了。我的主要问题是如何完成我的构造函数,因为它是第一次将类作为参数。
这是我的第一篇文章,所以如果不好,我道歉。
import java.awt.Color;
public class Labyrinth implements ILabyrinth {
private int height;
private int width;
**********************************************
public Labyrinth(IGrid<LabyrinthTile> tiles){
tiles.copy();
this.height=height;
this.width=width; <---Here?
**********************************************
}
@Override
public LabyrinthTile getCell(int x, int y) {
return getCell(x,y);
}
@Override
public Color getColor(int x, int y) {
return getCell(x,y).getColor();
}
@Override
public int getHeight() {
return height;
}
@Override
public int getPlayerGold() {
return 0;
}
@Override
public int getPlayerHitPoints() {
return 0;
}
@Override
public int getWidth() {
return width;
}
@Override
public boolean isPlaying() {
return true;
}
@Override
public void movePlayer(Direction dir) throws MovePlayerException {
if(dir.equals(Direction.EAST)){
width+=1;
}
if(dir.equals(Direction.NORTH)){
height+=1;
}
if(dir.equals(Direction.SOUTH)){
height-=1;
}
if(dir.equals(Direction.WEST)){
width-=1;
}
}
@Override
public boolean playerCanGo(Direction d) {
if(d.equals(LabyrinthTile.WALL))
return false;
return true;
}
}
答案 0 :(得分:1)
键入以下内容时:
this.height = height;
你说你要设置&#34;身高&#34;您尝试创建一个名为&#34; height的变量的新对象的字段。&#34;但是你的构造函数没有名为&#34; height&#34;的变量。构造函数中的任何位置或作为构造函数的参数之一。您需要以下内容:
// .height() might not be a real method, it's just an example
this.height = tiles.height();
这样可行,因为你有一个名为&#34; tiles&#34;的变量。传递给构造函数。