2013-01-11 91 views
-7

我對這個完全不知所措。這裏的說明,到目前爲止,代碼:設置Java遊戲塊

import java.util.*; 

abstract public class AbstractGamePiece 
{ 

    // These two constants define the Outlaws and Posse teams 
    static public final int PLAYER_OUTLAWS = 0; 
    static public final int PLAYER_POSSE = 1; 

    // These variables hold the piece's column and row index 
    protected int myCol; 
    protected int myRow; 

    // This variable indicates which team the piece belongs to 
    protected int myPlayerType; 

    // These two strings contain the piece's full name and first letter abbreviation 
    private String myAbbreviation; 
    private String myName; 

    // All derived classes will need to implement this method 
    abstract public boolean hasEscaped(); 

    // Initialize the member variables with the provided data. 
    public AbstractGamePiece(String name, String abbreviation, int playerType) 
    { 

    } 

} 

我需要與公衆AbstractGamePiece(...)部分下完成的代碼幫助。

+3

這是什麼問題? –

+0

請將文本牆重新格式化爲更容易理解的內容,並清楚地表明您的問題。 –

+1

如果對於不清楚的指示有某些具體的內容,我相信你會發現周圍的人很樂意幫忙。如果問題是「我該做什麼」,可能很難在不違背任務要點的情況下幫助你。 –

回答

2

試圖讓你去,而無需編寫你整個事情:

對於點1,目標是初始化根據傳遞給構造函數的參數,內部變量(即在類中已經定義):

public AbstractGamePiece(String name, String abbreviation, int playerType) { 
    myName = name; 
    // and so on 
} 

然後,「吸氣劑」類型的函數返回當前對象中可用的值,這樣

public int getPlayerType() { 
    return myPlayerType; 
} 

塞特斯是INVERS e,他們根據傳遞的參數設置內部變量:

public void setPosition(int col, int row) { 
    myRow = row; 
    myCol = col; 
} 

依此類推。

然後,根據該指令,你將不得不使用這個抽象類爲基準,爲幾個具體類:

public class Henchman extends AbstractGamePiece { 

    // the constructor - not sure what exactly should be passed in here 
    // but you get the idea - this constructor doesn't have to have the 
    // same "signature" as super's 
    public Henchman(String name) { 
     super(name, "hm", PLAYER_OUTLAWS); 
    } 

    // an an implementation of abstract method hasEscaped 
    @Override 
    public boolean hasEscaped() { 
     return false; // as per the instructions 
    } 

} 

甲toString方法返回當前對象的具體描述作爲(人可讀的)字符串,並且它可以用來打印一個可讀的當前作品列表,以便在開始開發遊戲引擎時幫助分析/調試遊戲。正如說明所述,它的作用取決於你,讓它返回所有有趣的信息和識別信息。爲了讓你開始,對於亨希曼來說:

public toString() { 
    String.format("Henchman name=%s team=%d escaped=%",myName,myTeam,hasEscaped()); 
} 

但是,有1000個變化,這將是同樣適用。

這應該讓你開始,不要猶豫,如果你後來卡住了,就不要猶豫了。祝你好運!

+0

該部分應該怎麼做:該方法應該根據作品的類型,名稱和當前位置(列和行)形成一個描述性字符串。字符串的確切格式取決於您! public String toString()我認爲應該有一個if else語句並返回一些內容,但我不確定。 –

+0

@教授我會編輯我的答案 – fvu

+0

非常感謝。 –