Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Spiel {
  4.     private List<Spieler> spieler = new ArrayList<Spieler>();
  5.     private List<Karte> stapel = new Stack<Karte>();
  6.  
  7.     public Spiel(int spielerAnzahl) {
  8.         if (spielerAnzahl < 2 || spielerAnzahl > 5) {
  9.             System.out.println("Falsche Spieleranzahl");
  10.             System.exit(-1);
  11.         }
  12.         for (Farbe farbe : Farbe.values()) {
  13.             for (int zahl = 1; zahl <= 8; zahl++) {
  14.                 Karte karte = new Karte(farbe, zahl);
  15.                 stapel.add(karte);
  16.             }
  17.         }
  18.         for (int nrspieler = 1; nrspieler <= spielerAnzahl; nrspieler++) {
  19.             Spieler newSpieler = new Spieler(("Spieler " + nrspieler));
  20.             for (int i = 0; i < 5; i++) {
  21.                 newSpieler.addKarte(zieheKarte());
  22.             }
  23.             spieler.add(newSpieler);
  24.         }
  25.         spiele();
  26.     }
  27.  
  28.     public void spiele() {
  29.         Karte anfang = zieheKarte();
  30.         System.out.println("Karten wurden ausgeteilt, als Startkarte liegt: " + anfang.toString());
  31.         outerloop:
  32.         while (true) {
  33.             for (Spieler spieler : spieler) {
  34.                 Karte playKarte = spieler.spiele(anfang);
  35.                 if (playKarte != null) {
  36.                     System.out.println(spieler.toString() + " legt " + playKarte.toString());
  37.                     stapel.add(anfang);
  38.                     anfang = playKarte;
  39.                 } else {
  40.                     System.out.println(spieler.toString() + " hat keine passende Karte und muss eine zufällige Karte aus dem Stapel ziehen");
  41.                     spieler.addKarte(zieheKarte());
  42.                 }
  43.                 if (spieler.leereHand()) {
  44.                     System.out.println(spieler.toString() + " gewinnt das Spiel!");
  45.                     break outerloop;
  46.                 }
  47.             }
  48.         }
  49.     }
  50.  
  51.     public Karte zieheKarte() {
  52.         if (stapel.isEmpty()) {
  53.             return null;
  54.         }
  55.         Collections.shuffle(stapel);
  56.         Karte karte = stapel.remove(0);
  57.         return karte;
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement