src/Roulette.java hinzugefügt

Erste Version eines Lösungsvorschlags für das Roulette-Spiels aus der Übung.
main
Oliver Hummel 2023-10-24 14:05:20 +02:00
parent 10c35edda6
commit 34d18208af
1 changed files with 149 additions and 0 deletions

149
src/Roulette.java 100644
View File

@ -0,0 +1,149 @@
import java.util.Scanner;
public class Roulette {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int geld = 100;
int rundenzähler = 1;
int einsatzZahl, einsatzGerade, einsatzHälfte, einsatzDrittel, einsatzSpalte, einsatzFarbe;
int wetteZahl = 0, wetteDrittel = 0, wetteHälfte = 0, wetteSpalte = 0;
boolean wetteGerade = false;
String wetteFarbe = "";
System.out.println("Willkommen im Mannheimer Spielcasino!\n");
System.out.printf("Sie haben ein Spielkapital von %d Euro zur Verfügung.%n", geld);
do {
System.out.printf("Faites votre jeux. Bitte machen Sie Ihre Einsätze für die %d. Runde. Sie haben %d Euro zur Verfügung.%n", rundenzähler, geld);
// Einsätze
System.out.print("Wie viel Geld möchten Sie auf eine Zahl zwischen 0 und 36 setzen? ");
einsatzZahl = Integer.parseInt(kb.nextLine());
if (einsatzZahl > 0) {
System.out.print("Auf welche Zahl möchten Sie setzen? ");
wetteZahl = Integer.parseInt(kb.nextLine());
geld -= einsatzZahl;
}
System.out.printf("%nSie haben noch %d Euro, wie viel davon möchten Sie auf gerade oder ungerade setzen? ", geld);
einsatzGerade = Integer.parseInt(kb.nextLine());
if (einsatzGerade > 0) {
System.out.print("Worauf möchten Sie setzen? Eine gerade oder ungerade Zahl? (g/u) ");
wetteGerade = kb.nextLine().equals("g");
geld -= einsatzGerade;
}
System.out.printf("%nSie haben noch %d Euro, wie viel davon möchten Sie auf eine Zahlenhälfte setzen? ", geld);
einsatzHälfte = Integer.parseInt(kb.nextLine());
if (einsatzHälfte > 0) {
System.out.print("Worauf möchten Sie setzen? Auf die 1. (1-18) oder 2. (19-36) Hälfte der Zahlen? (1 o. 2) ");
wetteHälfte = Integer.parseInt(kb.nextLine());
geld -= einsatzHälfte;
}
System.out.printf("%nSie haben noch %d Euro, wie viel davon möchten Sie auf ein Zahlendrittel setzen? ", geld);
einsatzDrittel = Integer.parseInt(kb.nextLine());
if (einsatzDrittel > 0) {
System.out.print("Worauf möchten Sie setzen? Auf das 1. (1-12), 2. (13-24) oder 3. (25-36) Drittel der Zahlen? (1, 2 o. 3) ");
wetteDrittel = Integer.parseInt(kb.nextLine());
geld -= einsatzDrittel;
}
System.out.printf("%nSie haben noch %d Euro, wie viel davon möchten Sie auf eine Spalte setzen? ", geld);
einsatzSpalte = Integer.parseInt(kb.nextLine());
if (einsatzSpalte > 0) {
System.out.print("Worauf möchten Sie setzen? Auf die 1., 2. o. 3. Kolonne? (1, 2 o. 3) ");
wetteSpalte = Integer.parseInt(kb.nextLine());
geld -= einsatzSpalte;
}
System.out.printf("%nSie haben noch %d Euro, wie viel davon möchten Sie auf schwarz oder rot setzen? ", geld);
einsatzFarbe = Integer.parseInt(kb.nextLine());
if (einsatzFarbe > 0) {
System.out.print("Worauf möchten Sie setzen? Eine schwarze oder rote Zahl? (s/r) ");
String eingabe = kb.nextLine();
if (eingabe.equals("r"))
wetteFarbe = "rot";
else
wetteFarbe = "schwarz";
geld -= einsatzFarbe;
}
// Ermitteln der Zahl
System.out.println();
System.out.println("Rien ne va plus...");
int zahl = (int)(Math.random() * 37);
String farbe = "schwarz";
if (zahl == 0)
farbe = "grün";
else if (zahl % 2 == 1 && (zahl >= 1 && zahl <= 10 || zahl >= 19 && zahl <= 28)
|| zahl % 2 == 0 && (zahl >= 11 && zahl <= 18 || zahl >= 29 && zahl <= 36) )
farbe = "rot";
System.out.printf("%n%d, %s.%n%n", zahl, farbe);
// Gewinnermittlung
if (einsatzZahl > 0 && zahl == wetteZahl) {
int gewinn = einsatzZahl * 35;
System.out.printf("Gratulation, Sie haben %d Euro für die richte Zahl gewonnen.%n", gewinn);
geld += gewinn + einsatzZahl;
}
if (einsatzGerade > 0 && zahl % 2 == 0 && wetteGerade) {
int gewinn = einsatzGerade;
System.out.printf("Gratulation, Sie haben %d Euro für eine %sgerade Zahl gewonnen.%n", gewinn, (zahl % 2 == 0 && wetteGerade)? "" : "un");
geld += gewinn + einsatzGerade;
}
if (einsatzHälfte > 0 && (zahl - 1) / 18 + 1 == wetteHälfte) {
int gewinn = einsatzHälfte;
System.out.printf("Gratulation, Sie haben %d Euro für die richtige Hälfte gewonnen.%n", gewinn);
geld += gewinn + einsatzHälfte;
}
if (einsatzDrittel > 0 && (zahl - 1) / 12 + 1 == wetteDrittel) {
int gewinn = einsatzDrittel * 2;
System.out.printf("Gratulation, Sie haben %d Euro für das richtige Drittel gewonnen.%n", gewinn);
geld += gewinn + einsatzDrittel;
}
if (einsatzSpalte > 0 && zahl % 12 + 1 == wetteSpalte) {
int gewinn = einsatzSpalte * 2;
System.out.printf("Gratulation, Sie haben %d Euro für die richtige Kolonne gewonnen.%n", gewinn);
geld += gewinn + einsatzSpalte;
}
if (einsatzFarbe > 0 && wetteFarbe.equals(farbe)) {
int gewinn = einsatzFarbe;
System.out.printf("Gratulation, Sie haben %d Euro für die richtige Farbe gewonnen.%n", gewinn);
geld += gewinn + einsatzFarbe;
}
// Rundenende
if (geld <= 0) {
System.out.println("Leider sind Sie pleite und müssen unser Casino nun verlassen.");
break;
}
System.out.printf("%nSie haben nun %d Euro zur Verfügung. Möchten Sie weiterspielen? (j/n) ", geld);
String weiter = kb.nextLine();
if (!weiter.equals("j") && !weiter.equals("ja"))
break;
rundenzähler += 1;
} while(true);
System.out.println("Danke für Ihren Besuch und auf Wiedersehen!");
kb.close();
}
}