Hallo liebe Community,
ich bin gerade dabei eine sehr vereinfachte Form von Blackjack zu programmieren. Nun hab ich eine Methode geschrieben, welche das Karten ziehen beschreibt. In der Methode habe ich das Karten ziehen durchgehend mit if-else-Methoden gelöst, aber es ist doch bestimmt möglich das in eine for-Schleife zusammenzufassen. Allerdings komme ich dabei nicht ganz weiter. Hier mein Code:
In der Methode checkPunktzahl wird geprüft, ob der Zahlenwert über/unter 21 liegt und je nachdem wird gefragt, ob der Spieler noch eine Karte ziehen will. Die Methoden startKartenDealer und startKartenSpieler geben dem Spieler 2 Karten am Anfang. Die weiteren Karten die der Spieler will, werden mit dem Array weitereKarten[] beschrieben.
Ich danke euch schon mal für eure Hilfe.
Liebe Grüße
ich bin gerade dabei eine sehr vereinfachte Form von Blackjack zu programmieren. Nun hab ich eine Methode geschrieben, welche das Karten ziehen beschreibt. In der Methode habe ich das Karten ziehen durchgehend mit if-else-Methoden gelöst, aber es ist doch bestimmt möglich das in eine for-Schleife zusammenzufassen. Allerdings komme ich dabei nicht ganz weiter. Hier mein Code:
Java:
public void vergebeKarten(){
System.out.println(" ");
//Karten des Dealers
startKartenDealer();
//Karten des Spielers
startKartenSpieler();
checkPunktzahl();
//if/else- in Schleife übertragen
boolean karteZiehen = scan.getInputBoolean();
if (karteZiehen == true && gesamtSpieler < 21){
System.out.println(" "); //Leerzeile
weitereKarten[0] = (int)((Math.random())*10 +2);
System.out.println("Deine 3. Karte: " + weitereKarten[0]);
gesamtSpieler = startKarten[0] + startKarten[1] + weitereKarten[0];
System.out.println("In Summe: " + gesamtSpieler + " Punkte.\n");
checkPunktzahl();
if(gesamtSpieler<22 && gesamtSpieler!= 21){
boolean karteZiehen1 = scan.getInputBoolean();
if (karteZiehen1 == true && gesamtSpieler < 21){
weitereKarten[1] = (int)((Math.random())*10 +2);
System.out.println("Deine 4. Karte: " + weitereKarten[1]);
gesamtSpieler = startKarten[0] + startKarten[1] + weitereKarten[0] + weitereKarten[1];
System.out.println("In Summe: " + gesamtSpieler + "Punkte.\n");
checkPunktzahl();
if(gesamtSpieler<22 && gesamtSpieler!= 21){
boolean karteZiehen2 = scan.getInputBoolean();
if (karteZiehen2 == true && gesamtSpieler < 21){
weitereKarten[2] = (int)((Math.random())*10 +2);
System.out.println("Deine 5. Karte: " + weitereKarten[2]);
gesamtSpieler = startKarten[0] + startKarten[1] + weitereKarten[0] + weitereKarten[1] + weitereKarten[2];
System.out.println("In Summe: " + gesamtSpieler + "Punkte.\n");
}
}
else
System.out.println("Deine Endpunktzahl: " + gesamtSpieler);
}
else
System.out.println("Deine Endpunktzahl: " + gesamtSpieler);
}
else
System.out.println(" ");
}
else{
System.out.println(" ");
System.out.println("Deine Endpunktzahl: " + gesamtSpieler);
}
In der Methode checkPunktzahl wird geprüft, ob der Zahlenwert über/unter 21 liegt und je nachdem wird gefragt, ob der Spieler noch eine Karte ziehen will. Die Methoden startKartenDealer und startKartenSpieler geben dem Spieler 2 Karten am Anfang. Die weiteren Karten die der Spieler will, werden mit dem Array weitereKarten[] beschrieben.
Ich danke euch schon mal für eure Hilfe.
Liebe Grüße