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
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
Temsky34 Wie bekomme ich dieses Java-Warning wieder weg? Java Basics - Anfänger-Themen 2
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
berserkerdq2 Java streams, wann nutze ich ::, also 2x Doppelpuntk bei Streams? Java Basics - Anfänger-Themen 5
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
frager2345 Java Java Basics - Anfänger-Themen 14
frager2345 Gauß Summenformel in Java Java Basics - Anfänger-Themen 10
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
C Wie berechne ich SQRT in Java? Java Basics - Anfänger-Themen 2
Fragerjava Java Schnittstellen Java Basics - Anfänger-Themen 6
V sun.audio has been removed from Java since JDK 9 Java Basics - Anfänger-Themen 2
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
H Java Regex Aufzählung kontrollieren Java Basics - Anfänger-Themen 3
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
B Dom Manipulationen mittels Java Java Basics - Anfänger-Themen 8
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
BATMAN_2008 Jackson adding additional fields to JSON throws java.util.concurrent.CompletionException: Java Basics - Anfänger-Themen 2
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
123456789sssssaaaa Java Wrapper Class Java Basics - Anfänger-Themen 13
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Java-XSSFBook: zwei Sheets mergen Java Basics - Anfänger-Themen 5
districon Java Nachhilfe - wo finden? Java Basics - Anfänger-Themen 9
J Benennung einer mir unbekannten Java - Ausdrucksweise Java Basics - Anfänger-Themen 5
rosima26 Taylor-Reihe in Java Java Basics - Anfänger-Themen 20
javamanoman Java für Online Banking Java Basics - Anfänger-Themen 12
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
Vernon.098 Java (BlueJ) Mensch ärgere dich nicht Programmien Java Basics - Anfänger-Themen 6
S Übungen Java von Kopf bis Fuß Java Basics - Anfänger-Themen 2
U Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
123456789sssssaaaa Which is the best way to Print Fibonacci Series in Java? Java Basics - Anfänger-Themen 3
H Auf Java-Klassenarbeit vorbereiten Java Basics - Anfänger-Themen 7
Vivien Kurze Verständnisfrage zu Java Point aus java.awt.* Java Basics - Anfänger-Themen 5
A java jar-File Java Basics - Anfänger-Themen 1
K Java Hamster Simulator Java Basics - Anfänger-Themen 18
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
N Java-Performance messen Java Basics - Anfänger-Themen 0
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
S Kleines Java-Projekt; Kassenprogramm Java Basics - Anfänger-Themen 7
Fats Waller Wofür stehen diese Konstanten im Java Labyrinth ? Java Basics - Anfänger-Themen 5
von Spotz Java Verzeichnistrukturen Java Basics - Anfänger-Themen 47
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
S Video-schneiden mit Java? Java Basics - Anfänger-Themen 5
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
B Zielcode in Java Java Basics - Anfänger-Themen 3
F java: incompatible types: possible lossy conversion from double to int Java Basics - Anfänger-Themen 1
S Java über SSH Java Basics - Anfänger-Themen 13
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
S Java Methodenaufrufe zählen Java Basics - Anfänger-Themen 4
K Java sortieren. Java Basics - Anfänger-Themen 7
O Java 17 keine Pflicht um Exceptiones zu behandeln? Java Basics - Anfänger-Themen 2
I Java Mail (IMAP -> Empfangen) und Google Mail Java Basics - Anfänger-Themen 1
jamboy7 Java-API kennenlernen, verstehen und nutzen lernen Java Basics - Anfänger-Themen 4
R Java Dreifacher Münzwurf Java Basics - Anfänger-Themen 2
M Java printf(Locale.... funktioniert nicht Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
R java.util.Set, CASE_INSENSITIVE_ORDER Java Basics - Anfänger-Themen 6
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
S Java kniffel Java Basics - Anfänger-Themen 20
Konsii25 Reihen in Java umdrehen Java Basics - Anfänger-Themen 4
P9cman Ampel in Java implementieren Java Basics - Anfänger-Themen 3
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
S Java Enum Java Basics - Anfänger-Themen 2
brypa Java Grundlagen Java Basics - Anfänger-Themen 97
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
M Java auf Raspberry Pi Java Basics - Anfänger-Themen 113
M Java Gui Java Basics - Anfänger-Themen 11
M Java Array Java Basics - Anfänger-Themen 8
R Ist es möglich, ein Zahlungs-Gateway mit Java zu bauen? Java Basics - Anfänger-Themen 11
M Java FX Java Basics - Anfänger-Themen 1
M Java Website Java Basics - Anfänger-Themen 2
T Java Integer multiplizieren Java Basics - Anfänger-Themen 6
melisax Beispiel Java umprogrammieren Java Basics - Anfänger-Themen 23
I Argumente einer Java Methode Java Basics - Anfänger-Themen 14

Ähnliche Java Themen


Oben