我用我新從家裏的Java學習Java udacity.com和他們最喜歡給我我被卡住,不能得到它的工作問題的工作。有多個類
項目只是檢查球員的舉動是不是出在棋局綁定,然後看是否女王此舉是否有效。我們必須看到這3件事情應該工作。
- 在女王級,覆蓋
isValidMove
方法 - 首先調用父類的
isValidMove
檢查界限。 - 添加更多的代碼來檢查女王的具體舉措的有效性。
我有主類,遊戲類,位置類,塊類(父類)女王類(子類)。 我得到了1和3的工作,但不能瞭解如何獲得第二次工作它給我的錯誤,如果我嘗試打電話Piece.isValidMove
主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;
}
}
}
謝謝。
什麼是你得到確切的錯誤? –
我認爲它的'super.isValidMove()'。 –
歡迎來到Stack Overflow!尋求調試幫助的問題(「爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現**的最短代碼(最好10行或更少)** 。沒有明確問題陳述的問題對其他讀者無益。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 –