gpt4 book ai didi

java - 与多个类(class)一起工作

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

我是java新手,使用udacity.com在家学习java,他们最喜欢给出一个问题,我被困住了,无法让它工作。

项目只是检查国际象棋游戏中棋手的走法是否出界,然后查看皇后的走法是否有效。我们必须看到这三件事应该起作用。

  1. 在 Queen 类中,覆盖 isValidMove方法
  2. 首先调用家长的isValidMove检查边界。
  3. 添加更多代码来检查皇后特定举动的有效性。

我有主类、游戏类、位置类、棋子类(父类)皇后类(子类)。我让 1 和 3 工作,但不明白如何让第二个工作,如果我尝试调用 Piece.isValidMove ,它会给我错误在main之前Queen.isValidMove .

我的代码如下

Main.java

public class Main {
public static void main(String[] args) {
Piece piece = new Piece();
Queen queen = new Queen();
Position testPosition = new Position(3,7);
if(queen.isValidMove(testPosition)){
System.out.println("Yes, I can move there.");
}
else {
System.out.println("Nope, can't do!");
}
}
}

Game.java

public class Game {
Piece [][] board;
// Constructor creates an empty board
Game(){
board = new Piece[8][8];
}
}

Position.java

public class Position {
int row;
int column;
// Constructor using row and column values
Position(int r, int c){
this.row = r;
this.column = c;
}
}

Piece.java

public class Piece {
Position position;

boolean isValidMove(Position newPosition){
if(position.row>0 && position.column>0
&& position.row<8 && position.column<8){
return true;
}
else{
return false;
}
}
}

Queen.java

public class Queen extends Piece {
int row;
int column;
boolean isValidMove(Position newPosition){
if(newPosition.column == this.column || newPosition.row == this.row|| Math.abs(newPosition.column - this.column) == Math.abs(newPosition.row - this.row)){
return true;
}
else{
return false;
}
}
}

谢谢。

最佳答案

but can't understand how to get 2nd working it gives me error if i try calling Piece.isValidMove in main before Queen.isValidMove

该任务表示您需要在 Queen.isValidMove 中调用父级的 isValidMove,而不是在 Main 中。您需要的语法是super.isValidMove。所以在Queen.java中,执行

boolean isValidMove(Position newPosition){
// combine super.isValidMove(newPosition) and your current code
}

您不需要更改Main

关于java - 与多个类(class)一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388660/

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