Karten austeilen in Java

xEpix3

Mitglied
Liebe Community,
ich hänge seit Tagen am austeilen der Karten im Spiel Blackjack. Ich habe jetzt eine Methode geschrieben, in der das Kartendeck erzeugt und gemischt wird. Nun ist die Frage, wie ich nun zwei Karten pro Spieler zu Anfang austeilen kann und wie die Spieler daraufhin Karten nachziehen können. Des Weiteren habe ich die Frage, ob das Programm automatisch weiß, welche Karte welchen Wert hat, bzw wie ich das am Besten für König, Bube, Dame etc. deklariere.
Java:
public class Blackjack{

    //Instanzvariablen
    //Punktestand des Spielers
    int gesamtpunktzahl;
    int hoechstpunktzahl = 21;
    
    //Methoden

    //Kartendeck
    int[] kartendeck = new int[52];
    String[] kartenfarben = {"Herz", "Karo", "Pik", "Kreuz"};
    String [] kartenwerte = {"Ass","2","3","4","5","6","7","8","9","10","Bube","Dame","K\u00f6nig"};
    
    
    public void kartendeck(){
        //Karten erstellen
        for(int i=0; i<kartendeck.length;i++){
            kartendeck[i] = i;
        }
        
        //Karten mischen
        for(int i=0; i<kartendeck.length; i++){
            int inhalt = (int)(Math.random() * kartendeck.length);
            kartendeck[i] = inhalt;
        }
        
        for (int i=0; i<52; i++){
            String kartenfarbe = kartenfarben[kartendeck[i]/13];
            String kartenwert = kartenwerte [kartendeck[i]%13];
            System.out.println(kartenfarbe + " " + kartenwert);
        }
    }
    
    public static void main(String args[]){
        Blackjack peter = new Blackjack();
        Blackjack karten = new Blackjack();
        
        peter.kartendeck();
        
    }
}
 
M

Mart

Gast
Also du stoppfst 5 Probleme jetzt schon mal in eine Klasse das ist nicht so toll

1. Karten ( deine 2 Arrays )
2. Karten mischen ( deine kartendeck methode )
3. das austeilen der Karten
4. das spiel
5. spiel logik

du brauchst jetzt schon ein paar klassen um mal es zu trennen
zu 1.
Speicherung von "Rohdaten" ist nicht so toll in arrays zumindest in deinem fall da du ja das kombinieren der arrays nicht schaffst ( ich würde es auch nicht um ehrlich zu sein )
deswegen geb ich dir mal ein beispiel für deine Karten klasse
Java:
public Karte{
    protected String typ;
    protected String farbe;
    public Karte ( String typ, String farbe){
        ...
    }
}
da kannst du dir dann alle kombinationen über deine existierenden arrays erzeugen lassen in dem du über sie iterierst
diese kannst du dann speichern, ich würde statt strings enums vorschlagen aber muss nicht sein wenn du sie nicht hattest



da du mischen musst würde ich eine Liste vorschlagen ABER das muss nicht sein also bleib ich mal bei deinem array ansatz da du ja schon die Mischung hast..sooo wer erstellt jetzt dein Deck? Deck hört sich schon wieder nach einer Klasse an
Java:
public Deck{
    farben array
    typen array
    Karte[] deckArray;
    public Deck(){
       
    }
    public void deckErstellen(){
        .... dien karten array befüllen mit allen kombinationen ....
       
    }
public void mischen(){
mischen des deckArrays
}
public Karte zieheKarte(){

}

}
so das zieheKarte ist dein Mysterium und deswegen fand ich auch die Arrays schlecht aber wahrshcienlich kennst du noch nichts anderes ( anspielung auf liste die eine shuffle() methode hat)

im prinzip kannst du es so umsetzen dass du eine Math.Random wählst in deinem array , die karte zwischenspeicherst und dann in deinem array auf null setzt ( die karte ist ja nich mehr im deck ) falls die geratene zahl im array schon null ist dann musst du weiter raten ( ab dann wirds noch komplizierter ) die zahlen die du geraten hast musst du irgendwo abspeichern um nicht weider dasselbe zu raten ansonsten kommst du in eine Endlosschleife ... egal wie du es dann persönlich umsetzt es wird nicht schön.. Stack queue liste oder andere speicher strukturen würden sich besser als ein Rohes array eignen

im spiel hast du dann dein Array ( oder liste oder sonst was ) und falls der spieler dran ist rufst du die zieheKarte() auf und diese kann er spielen
 
M

Mart

Gast
EDIT im spiel hast du dann dein Deck Objekt und falls der spieler dran ist rufst du die zieheKarte() auf und diese kann er spielen
 
K

kneitzel

Gast
Also generell ist wichtig:
a) Unterteile in mehrere Klassen und Methoden (wie von @Mart angesprochen). Und strukturiere Code dann entsprechend in den Klassen.
b) teste / prüfe diese Methoden! Dein Code zum Mischen ist kein Mischen der Karten. Überlege Dir genau, was Du da machen willst und auch, wie Du das testen kannst. (Tipp: Jede Nummer muss dann einmal vorkommen).

Wenn Du mit einem Array arbeiten willst und der Inhalt des Arrays gemischt wurde, dann kannst Du einen Zeiger haben auf der Karte, die als nächstes geogen wird. Sobald die Nummer auf der Größe des Arrays ist, ist der Stapel leer. Dann könnte man ggf. den Zähler wieder auf 0 setzen und neu mischen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
nils812 Black Jack Karten Anzahl begrenzen Java Basics - Anfänger-Themen 5
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
A Karten ziehen Java Basics - Anfänger-Themen 11
K Memory-Spiel alle verdeckte karten aufdecken. Java Basics - Anfänger-Themen 26
K Alle noch nicht umgedrehte Karten umdrehen ? Java Basics - Anfänger-Themen 2
A mischen von Karten Java Basics - Anfänger-Themen 4
T Karten zufällig anordnen Java Basics - Anfänger-Themen 4
F spielkarten austeilen Java Basics - Anfänger-Themen 4
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben