對於學校項目,我必須製作一個紙牌遊戲。牌可以有不同的類型(小丑,PuntenKaart,KleurKaart)。每個玩家都擁有一張牌(顯然)有多種不同組合。按字母順序排列使用Java中不同屬性的多個不同對象的列表
我有一個抽象類Kaart(卡),有3個子類:Joker,KleurKaart(ColourCard),PuntenKaart(PointsCard)。所有的子類都有一個屬性「type」(Joker,KleurKaart,PuntenKaart),但是KleurKaart有第二個屬性叫做kleur(color)。
下面是一個問題:如何在這種情況下按字母順序排列玩家的手?小丑和PuntenKaart很容易,只是比較類型,但與KleurKaart,我首先必須檢查給定的Kaart是否是KleurKaart的一個實例,然後將其他牌的類型與kleur進行比較?我不明白。
類該地圖
package domein;
public abstract class Kaart implements Comparable<Kaart>{
private String type;
public Kaart(String type){
this.type = type;
}
public String getType(){
return type;
}
@Override
public int compareTo(Kaart vergelijkingsKaart) {
return type.compareTo(vergelijkingsKaart.type);
}
@Override
public String toString(){
return this.type;
}
}
類小丑
package domein.kaarten;
import domein.Kaart;
public class Joker extends Kaart {
public Joker() {
super("JokerKaart");
}
}
類PuntenKaart
package domein.kaarten;
import domein.Kaart;
public class PuntenKaart extends Kaart {
public PuntenKaart() {
super("PuntenKaart");
}
}
類KleurKaart
package domein.kaarten;
import domein.Kaart;
public class KleurKaart extends Kaart {
private String kleur;
public KleurKaart(String kleur) {
super("KleurKaart");
this.kleur = kleur;
}
public String getKleur(){
return this.kleur;
}
@Override
public String toString(){
return this.kleur;
}
}
謝謝!我用這個答案的代碼,因爲,對我的新手來說,它似乎是最簡單的。它完美地完成了這項工作! 感謝所有人的幫助。我沒有使用你的答案,但它幫助我更多地理解編程,所以我不會說這一切都是徒勞的。 – user3649731