2017-12-07 9 views
1

私はJavaテキストゲームを作成していますが、最後の2つのメソッドを実装する方法を理解しようとしています。私は部屋の中のアイテムと部屋の中のnpcの名前(Look関数の一種)をプリントアウトしたい。私はそれについてどうやって進んでいくのか分からない。どんな援助も訴えられるでしょう。 enter image description hereJavaゲーム - ピックアップアイテムとルックアラウンド関数

Room[] place = new Room[]{station, UC, Ollies, lounge, palace, AT301}; 
Sword sword = new Sword(); 
Thing heal = new HealthPotion(); 
Thing armour = new Armour(); 
Thing trap = new Trap(); 

とNPC(マイク、ジェイク、悪、カール)

public abstract class Player{ 

//abstract attributes 
private String name; 
private int currentHealth; 
private int maxHealth; 
private int damage; 
private Room currentRoom; 
private int stack; 
private int effect; 


//Constructor for player 
public Player(String name, int currentHealth, int maxHealth, int damage, int effect, int stack){ 
    this.name = name; 
    this.currentHealth = currentHealth; 
    this.maxHealth = maxHealth; 
    this.damage = damage; 
    this.effect = effect; 
    this.stack = stack; 
} 

//getters 
public String getName(){ return name;} 
public int getCurrentHealth(){ return currentHealth;} 
public int getMaxHealth(){ return maxHealth;} 
public int getDamage(){ return damage;} 
public Room getCurrentRoom(){ return currentRoom;} 
public int getEffect(){ return effect;} 
public int getStack(){ return stack;} 


//setters 
public void setCurrentHealth(int currentHealth){this.currentHealth = currentHealth;} 
public void setMaxHealth(int maxHealth){this.maxHealth = maxHealth;} 
public void setDamage(int damage){ this.damage = damage;} 
public void setCurrentRoom(Room room){this.currentRoom = room;} 
public void setEffect(int effect){ this.effect = effect;} 
public void setStack(int stack){ this.stack = stack;} 
public void enter(Room room){ this.currentRoom = room;} 

//abstract method because each player has a different attack; 


public void takeDamage(int damage){ setCurrentHealth(this.currentHealth-damage);} 

public boolean isDead(){ 
    if(this.currentHealth<=0){ return true;} 
    return false; 
} 

}

のために私はプレーヤーのためのルック機能以外のすべてを機能させることができました。私はそれについてどうやって進むのか分かりません。

+0

部屋は自分のデータを印刷して保存する必要がありますので、そのクラスでその機能を行い、npcも部屋に保存する必要があります – dave

+0

こんにちは@dave、ルームクラスはありますが、投稿するには時間がかかりすぎるので、ここに投稿してください。しかし、落ち着き、コメントを飾る。 –

+0

イメージをどのように表示することができますか? –

答えて

1

部屋はアイテムのベクトルですか?そうであれば、プレイヤークラスで関数を呼び出すと、あなたが入っている部屋のベクトルに移動し、ベクトルにあるアイテムを単に出力することができます:

String lookAround(){ 
    ArrayList temp = (ArrayList)getCurrentRoom(); //returns the array containing the items in the current room 
    for(Thing i : temp){ 
     i.getDescription(); //Method present in all classes that come from Thing that prints out the name of the item and/or its caracheteristics 
    } 
} 

あなたが部屋であなたは誰もが存在プリントアウトすることができるように、自分自身を含め客室内にすべての選手の名前を含めるようにしてください部屋の配列

希望、これは

0

を助け、私は最初のあなたをお勧めしますすべてnameという属性のクラスNpcを作成して部屋に追加します。

+0

shureがあなたの質問を理解できるようにするには、プレイヤーが同じ部屋にいるときにnpcとアイテム名を表示しますか? –

+0

ちょうどあなたの 'Item'が' Thing' –