Ich möchte ein Uno Ähnliches Spiel programmieren und möchte dafür meinen Objekten in der ArrayList Bilder zuweisen. Dafür habe ich mehrere Klassen vorbereitet und auch schon den Kartenstapel mit allen Karten erstellt. Jetzt möchte ich diesen Karten noch die richtigen Bilder zuweisen, um diese dann in einem Label auszugeben. Ich wollte dazu eine Methode erstellen, die die Karte in meiner ArrayList (Kartendeck) darauf prüft, welche Farbe und welches Symbol abgebildet ist. Ich weiss jedoch nicht, wie ich das angehen sollte :/
Dafür habe ich folgendes vorbereitet:
Hauptprogramm:
Und jetzt hätte ich gerne noch eine Methode, die den Karten im Hauptprogramm die jeweiligen Bilder zuweist. Weiß zufällig jemand, wie er mir weiter helfen könnte?
Dafür habe ich folgendes vorbereitet:
Java:
class Bilder {
public String logo = "Uno Bilder/UNO_Logo.png";
public String karten_rot[] = {"Uno Bilder/rot 0.png", "Uno Bilder/rot 1.png", "Uno Bilder/rot 2.png","Uno Bilder/rot 3.png", "Uno Bilder/rot 4.png", "Uno Bilder/rot 5.png", "Uno Bilder/rot 6.png", "Uno Bilder/rot 7.png", "Uno Bilder/rot 8.png", "Uno Bilder/rot 9.png", "Uno Bilder/rot aussetzen.png", "Uno Bilder/rot retoure.png", "Uno Bilder/rot +2.png"};
public String karten_blau[] = {"Uno Bilder/blau 0.png", "Uno Bilder/blau 1.png", "Uno Bilder/blau 2.png", "Uno Bilder/blau 3.png", "Uno Bilder/blau 4.png", "Uno Bilder/blau 5.png", "Uno Bilder/blau 6.png", "Uno Bilder/blau 7.png", "Uno Bilder/blau 8.png", "Uno Bilder/blau 9.png", "Uno Bilder/blau aussetzen.png", "Uno Bilder/blau retoure.png", "Uno Bilder/blau +2.png"};
public String karten_gruen[] = {"Uno Bilder/gruen 0.png", "Uno Bilder/gruen 1.png", "Uno Bilder/gruen 2.png", "Uno Bilder/gruen 3.png", "Uno Bilder/gruen 4.png", "Uno Bilder/gruen 5.png", "Uno Bilder/gruen 6.png", "Uno Bilder/gruen 7.png", "Uno Bilder/gruen 8.png", "Uno Bilder/gruen 9.png", "Uno Bilder/gruen aussetzen.png", "Uno Bilder/gruen retoure.png", "Uno Bilder/gruen +2.png",};
public String karten_gelb[] = {"Uno Bilder/gelb 0.png", "Uno Bilder/gelb 1.png", "Uno Bilder/gelb 2.png", "Uno Bilder/gelb 3.png", "Uno Bilder/gelb 4.png", "Uno Bilder/gelb 5.png", "Uno Bilder/gelb 6.png", "Uno Bilder/gelb 7.png", "Uno Bilder/gelb 8.png", "Uno Bilder/gelb 9.png", "Uno Bilder/gelb aussetzen.png", "Uno Bilder/gelb retoure.png", "Uno Bilder/gelb +2.png",};
public String wunschkarten[] = {"Uno Bilder/wunsch.png", "Uno Bilder/wunsch +4.png",};
}
Java:
class Karte{
public String farbe;
public Karte(String farbe) {
this.farbe=farbe;
}
public String ausgabe() {
return "" + farbe;
}
}
Java:
class Zahlkarte extends Karte {
public int zahl;
public Zahlkarte(String farbe, int zahl){
super(farbe);
this.zahl=zahl;
}
public String ausgabe() {
return super.ausgabe() + ", " + zahl;
}
}
Java:
class Aktionskarte extends Karte {
public String aktion;
public Aktionskarte(String farbe, String aktion){
super(farbe);
this.aktion=aktion;
}
public String ausgabe() {
if (aktion == "Farbenwahl" || aktion == "Farbenwahl-Zieh-Vier") {
return aktion + "";
}
else {
return super.ausgabe()+ ", " + aktion;
} // end of if-else
}
}
Hauptprogramm:
Java:
public int zahlen[] = {0,1,2,3,4,5,6,7,8,9};
public String farben[] = {"blau", "rot", "gruen", "gelb"};
public String aktionen[] = {"Zieh-Zwei", "Retoure", "Aussetzen", "Farbenwahl", "Farbenwahl-Zieh-Vier"};
ArrayList<Karte> kartenstapel = new ArrayList<Karte>();
int stapelanzahl = 0;
public void stapel_erstellen() {
//Zahlkarte
for (int i=0;i<farben.length;i++) {
for (int j=0;j<zahlen.length;j++ ) {
Zahlkarte zkarte = new Zahlkarte(farben[i], zahlen[j]);
kartenstapel.add(zkarte);
stapelanzahl++;
}
} // end of for
for (int i = 0;i<farben.length ;i++ ) {
for (int j=0;j<aktionen.length ; j++) {
if (aktionen[i].equals("Farbenwahl") || aktionen[i].equals("Farbenwahl-Zieh-Vier")) {
Aktionskarte akarte = new Aktionskarte("", aktionen[j]);
kartenstapel.add(akarte);
stapelanzahl++;
}
else if (aktionen[i].equals("Zieh-Zwei") || aktionen[i].equals("Retoure") || aktionen[i].equals("Aussetzen")){
Aktionskarte akarte = new Aktionskarte(farben[i], aktionen[j]);
kartenstapel.add(akarte);
stapelanzahl++;
} // end of if-else
} // end of for
}
Collections.shuffle(kartenstapel);
}
Und jetzt hätte ich gerne noch eine Methode, die den Karten im Hauptprogramm die jeweiligen Bilder zuweist. Weiß zufällig jemand, wie er mir weiter helfen könnte?