-8

私はこれで完全に途方に暮れています。これまでの手順とコードは次のとおりです。

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)
    {

    }

}

私が助けを必要としているのは、public AbstractGamePiece(...) セクションの下でコードを完成させることです。

4

1 に答える 1

3

あなたのためにすべてを書かずにあなたを動かそうとしています:

ポイント 1 の目標は、コンストラクターに渡されたパラメーターに従って、(クラスで既に定義されている) 内部変数を初期化することです。

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

次に、「getter」タイプの関数は、次のように現在のオブジェクトで使用可能な値を返します

public int getPlayerType() {
    return myPlayerType;
}

セッターは逆で、渡されたパラメーターに基づいて内部変数を設定します。

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());
}

しかし、これには何千ものバリエーションがあり、同等に適しています。

これで始められるはずです。後で行き詰まった場合は、ためらわずに新しい質問を作成してください。幸運を!

于 2013-01-11T18:06:57.647 に答える