From 34d18208af6dfa47c4f9fbac960e0baf559f33c8 Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Tue, 24 Oct 2023 14:05:20 +0200 Subject: [PATCH] =?UTF-8?q?src/Roulette.java=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Erste Version eines Lösungsvorschlags für das Roulette-Spiels aus der Übung. --- src/Roulette.java | 149 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 src/Roulette.java diff --git a/src/Roulette.java b/src/Roulette.java new file mode 100644 index 0000000..ea69fbc --- /dev/null +++ b/src/Roulette.java @@ -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(); + + } + +}