KartenDeck.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package cards;
  2. import java.util.ArrayList;
  3. public class KartenDeck {
  4. private static final int MIN_DECK_SIZE = 0;
  5. private static final int MAX_DECK_SIZE = 52;
  6. private ArrayList<Karte> kartenListe = new ArrayList<Karte>();
  7. public KartenDeck() {
  8. }
  9. public ArrayList<Karte> getDeck() {
  10. return kartenListe;
  11. }
  12. public void setDeck(ArrayList<Karte> kartenListe) {
  13. this.kartenListe = kartenListe;
  14. }
  15. public int getDeckSize() {
  16. return this.kartenListe.size();
  17. }
  18. public void generateFullDeck() {
  19. ArrayList<Karte> kartenListe = new ArrayList<Karte>();
  20. for (Karte.Farbe farbe : Karte.Farbe.values()) {
  21. for (int wert = 2; wert < 15; wert++) {
  22. kartenListe.add(new Karte(farbe, wert));
  23. }
  24. }
  25. this.kartenListe = kartenListe;
  26. }
  27. public void print() {
  28. Karte karte;
  29. for (int index = 0; index < this.kartenListe.size(); index++) {
  30. karte = kartenListe.get(index);
  31. System.out.println("cards.Karte #" + (index + 1) + "\n" +
  32. "Farbe = " + karte.getFarbe() + "\n" +
  33. "Wert = " + karte.getWert());
  34. }
  35. }
  36. /* return value '-1' means karte not found */
  37. public int getListIndexByKarte(Karte karte) {
  38. int found_index = -1;
  39. for (int index = 0; index < this.kartenListe.size(); index++) {
  40. if (karte.getWert() == this.kartenListe.get(index).getWert() &&
  41. karte.getFarbe() == this.kartenListe.get(index).getFarbe()) {
  42. found_index = index;
  43. break;
  44. }
  45. }
  46. return found_index;
  47. }
  48. public void removeKarte(Karte karte) {
  49. int list_index = getListIndexByKarte(karte);
  50. if (!(list_index == -1))
  51. this.kartenListe.remove(list_index);
  52. else
  53. throw new RuntimeException(String.format("Fehler: Die zu " +
  54. "ersetzende Karte '%s' wurde nicht gefunden.",
  55. karte.getFarbe().toString() + " " + karte.getWert()));
  56. }
  57. public void appendKarte(Karte karte) {
  58. this.kartenListe.add(karte);
  59. }
  60. public static void main(String[] args) {
  61. KartenDeck kartenDeck = new KartenDeck();
  62. kartenDeck.generateFullDeck();
  63. kartenDeck.print();
  64. System.out.println(kartenDeck.getDeckSize());
  65. kartenDeck.removeKarte(new Karte(Karte.Farbe.PIK, 10));
  66. kartenDeck.removeKarte(new Karte(Karte.Farbe.PIK, 10));
  67. System.out.println(kartenDeck.getDeckSize());
  68. // kartenDeck.removeKarte(karo7);
  69. // System.out.println(kartenDeck.getDeckSize());
  70. for (Karte.Farbe farbe : Karte.Farbe.values()) {
  71. System.out.println(farbe);
  72. }
  73. }
  74. }