Hey
ich habe das Problem bei meinem Projekt das die jeweiligen Runden im Spiel nicht auf der Console angezeigt werden. Wie kann ich das am besten lösen?
package poker;
import javax.swing.*;
import java.util.*;
class Spieler {
private String name;
private ArrayList<Karte> spielerKarten;
public Spieler(Deck eingabeDeck){
spielerKarten = new ArrayList<Karte>();
for (int i=0;i<2;i++) {
Karte karte = eingabeDeck.getKarteFromDeck(eingabeDeck.getSizeOf()-1);
spielerKarten.add(karte);
eingabeDeck.removeKarteFromDeck(eingabeDeck.getSizeOf()-1);
}
}
public void setName(String eingabeName) {
this.name = eingabeName;
}
public String getName() {
return this.name;
}
public void setSpielerKarten(Karte eingabeKarte) {
spielerKarten.add(eingabeKarte);
}
public ArrayList<Karte> getSpielerKarten() {
return this.spielerKarten;
}
}
class Spielfeld {
ArrayList<Spieler> spielerAufSpielfeld;
private ArrayList<Karte> kartenAufSpielfeld;
private Deck meinDeck;
private int runde;
public Spielfeld(){
spielerAufSpielfeld = new ArrayList<Spieler>();
kartenAufSpielfeld = new ArrayList<Karte>();
meinDeck = new Deck();
}
public void createSpieler(int x) {
for (int i=0;i<x;i++) {
Spieler spieler = new Spieler(meinDeck);
}
}
}
class Karte {
private String farbe;
private String wert;
public Karte(String f,String w){
this.farbe = f;
this.wert = w;
}
public String getFarbe(){
return this.farbe;
}
public String getWert() {
return this.wert;
}
public String toString() {
return "[" + this.wert + " : " + this.farbe + "]";
}
}
class Deck {
private ArrayList<Karte> kartenDeck;
private String[] farben ={"Kreuz","Pik","Herz","Karo"};
private String[] werte ={"Ass","Koenig","Dame","Bube","10","9","8","7","6","5","4","3","2"};
public Deck() {
kartenDeck = new ArrayList<Karte>();
for(int i=0;i<farben.length;i++) {
for(int j=0;j<werte.length;j++) {
kartenDeck.add(new Karte(werte[j],farben));
}
}
}
public void removeKarteFromDeck(int i) {
kartenDeck.remove(i);
}
public void zeigeKartenDeck() {
for(int i=0;i<kartenDeck.size();i++) {
System.out.println(kartenDeck.get(i));
}
}
public Karte getKarteFromDeck(int i) {
return kartenDeck.get(i);
}
public void mischen() {
Collections.shuffle(kartenDeck);
}
public int getSizeOf() { return kartenDeck.size(); }
}
public class main {
public static void main(String[] args) {
Deck meinDeck = new Deck();
meinDeck.mischen();
meinDeck.zeigeKartenDeck();
System.out.println("Anzahl der Karten im Deck: " + meinDeck.getSizeOf());
// Spieleranzahl vom Benutzer eingeben lassen
Scanner scanner = new Scanner(System.in);
System.out.print("Geben Sie die Anzahl der Spieler ein (zwischen 2 und 10): ");
int spielerAnzahl = scanner.nextInt();
scanner.nextLine(); // Um den Zeilenumbruch nach der Zahl zu verbrauchen
if (spielerAnzahl < 2 || spielerAnzahl > 10) {
System.out.println("Ungültige Spieleranzahl. Das Spiel erfordert zwischen 2 und 10 Spieler.");
return;
}
Spielfeld spielfeld = new Spielfeld();
spielfeld.createSpieler(spielerAnzahl);
// Austeilrunden durchlaufen
for (int runde = 1; runde <= 4; runde++) {
System.out.println("Austeilrunde " + runde + ":");
// Jeder Spieler bekommt eine Karte in dieser Runde
for (Spieler spieler : spielfeld.spielerAufSpielfeld) {
Karte karte = meinDeck.getKarteFromDeck(meinDeck.getSizeOf() - 1);
spieler.setSpielerKarten(karte);
meinDeck.removeKarteFromDeck(meinDeck.getSizeOf() - 1);
System.out.println(spieler.getName() + " erhält eine Karte: " + karte);
}
}
Spieler meinSpieler = new Spieler(meinDeck);
meinSpieler.setName(JOptionPane.showInputDialog("Name: "));
meinSpieler.setSpielerKarten(meinDeck.getKarteFromDeck(1));
meinSpieler.setSpielerKarten(meinDeck.getKarteFromDeck(2));
System.out.println(meinSpieler.getName() + " : " + meinSpieler.getSpielerKarten());
}
}
ich habe das Problem bei meinem Projekt das die jeweiligen Runden im Spiel nicht auf der Console angezeigt werden. Wie kann ich das am besten lösen?
package poker;
import javax.swing.*;
import java.util.*;
class Spieler {
private String name;
private ArrayList<Karte> spielerKarten;
public Spieler(Deck eingabeDeck){
spielerKarten = new ArrayList<Karte>();
for (int i=0;i<2;i++) {
Karte karte = eingabeDeck.getKarteFromDeck(eingabeDeck.getSizeOf()-1);
spielerKarten.add(karte);
eingabeDeck.removeKarteFromDeck(eingabeDeck.getSizeOf()-1);
}
}
public void setName(String eingabeName) {
this.name = eingabeName;
}
public String getName() {
return this.name;
}
public void setSpielerKarten(Karte eingabeKarte) {
spielerKarten.add(eingabeKarte);
}
public ArrayList<Karte> getSpielerKarten() {
return this.spielerKarten;
}
}
class Spielfeld {
ArrayList<Spieler> spielerAufSpielfeld;
private ArrayList<Karte> kartenAufSpielfeld;
private Deck meinDeck;
private int runde;
public Spielfeld(){
spielerAufSpielfeld = new ArrayList<Spieler>();
kartenAufSpielfeld = new ArrayList<Karte>();
meinDeck = new Deck();
}
public void createSpieler(int x) {
for (int i=0;i<x;i++) {
Spieler spieler = new Spieler(meinDeck);
}
}
}
class Karte {
private String farbe;
private String wert;
public Karte(String f,String w){
this.farbe = f;
this.wert = w;
}
public String getFarbe(){
return this.farbe;
}
public String getWert() {
return this.wert;
}
public String toString() {
return "[" + this.wert + " : " + this.farbe + "]";
}
}
class Deck {
private ArrayList<Karte> kartenDeck;
private String[] farben ={"Kreuz","Pik","Herz","Karo"};
private String[] werte ={"Ass","Koenig","Dame","Bube","10","9","8","7","6","5","4","3","2"};
public Deck() {
kartenDeck = new ArrayList<Karte>();
for(int i=0;i<farben.length;i++) {
for(int j=0;j<werte.length;j++) {
kartenDeck.add(new Karte(werte[j],farben));
}
}
}
public void removeKarteFromDeck(int i) {
kartenDeck.remove(i);
}
public void zeigeKartenDeck() {
for(int i=0;i<kartenDeck.size();i++) {
System.out.println(kartenDeck.get(i));
}
}
public Karte getKarteFromDeck(int i) {
return kartenDeck.get(i);
}
public void mischen() {
Collections.shuffle(kartenDeck);
}
public int getSizeOf() { return kartenDeck.size(); }
}
public class main {
public static void main(String[] args) {
Deck meinDeck = new Deck();
meinDeck.mischen();
meinDeck.zeigeKartenDeck();
System.out.println("Anzahl der Karten im Deck: " + meinDeck.getSizeOf());
// Spieleranzahl vom Benutzer eingeben lassen
Scanner scanner = new Scanner(System.in);
System.out.print("Geben Sie die Anzahl der Spieler ein (zwischen 2 und 10): ");
int spielerAnzahl = scanner.nextInt();
scanner.nextLine(); // Um den Zeilenumbruch nach der Zahl zu verbrauchen
if (spielerAnzahl < 2 || spielerAnzahl > 10) {
System.out.println("Ungültige Spieleranzahl. Das Spiel erfordert zwischen 2 und 10 Spieler.");
return;
}
Spielfeld spielfeld = new Spielfeld();
spielfeld.createSpieler(spielerAnzahl);
// Austeilrunden durchlaufen
for (int runde = 1; runde <= 4; runde++) {
System.out.println("Austeilrunde " + runde + ":");
// Jeder Spieler bekommt eine Karte in dieser Runde
for (Spieler spieler : spielfeld.spielerAufSpielfeld) {
Karte karte = meinDeck.getKarteFromDeck(meinDeck.getSizeOf() - 1);
spieler.setSpielerKarten(karte);
meinDeck.removeKarteFromDeck(meinDeck.getSizeOf() - 1);
System.out.println(spieler.getName() + " erhält eine Karte: " + karte);
}
}
Spieler meinSpieler = new Spieler(meinDeck);
meinSpieler.setName(JOptionPane.showInputDialog("Name: "));
meinSpieler.setSpielerKarten(meinDeck.getKarteFromDeck(1));
meinSpieler.setSpielerKarten(meinDeck.getKarteFromDeck(2));
System.out.println(meinSpieler.getName() + " : " + meinSpieler.getSpielerKarten());
}
}