Ü B U N G 3
Aufgabe 1
Spiel "17 und 4":
Spielregeln:
Es
werden nacheinander Spielkarten mit Werten zwischen 1 und 10
gezogen. Die jeweiligen Werte werden aufaddiert. Wenn genau 21
Punkte erreicht werden, hat der Spieler gewonnen, bei 22 oder mehr
Punkten hat er verloren. Er kann aber das Spiel auch schon bei einer
Summe echt größer 16 beenden (und hat dann weder gewonnen noch
verloren).
Schreiben Sie ein Programm, das das Spiel 17 und
4 für einen Spieler simuliert. Die "Spielkarten" werden durch
Zufallszahlen mit Werten zwischen 1 und 10 dargestellt und sollen
zunächst automatisch gezogen werden, bis einer der folgenden Fälle
eintritt:
- Gewonnen: Punktzahl genau 21
- Verloren: Punktzahl größer 21
- Aufgegeben: Punktzahl größer 16, aber weder Fall 1 noch Fall 2
gelten
Das Programm soll am Ende die erreichte Punktzahl
und eine Meldung über „gewonnen“ bzw. „verloren“ bzw. „aufgegeben“
ausgeben.
Vewenden Sie für Ihr Programm folgende
Vorlage:
import java.util.*;
public class Spiel17und4 {
static Random r = new Random();
public static void main (String [] args) {
// hier folgt Ihr Programm
}
Eine neue Zufallszahl zwischen 1 und 10 erzeugen Sie durch: int meineZufallszahl; // beliebige int-Variable,
// der ein Zufallswert zugewiesen werden soll
meineZufallszahl = r.nextInt(10)+1;
Download der Lösung (Spiel17und4.java)
Zusatzaufgabe
Erweitern Sie Ihr Programm aus Aufgabe 1 um eine Möglichkeit
zur Interaktion. Nun soll der Spieler nach jedem Zug einer neuen
Karte gefragt werden, ob er noch eine weitere Karte ziehen oder
aufgeben möchte. Nutzen Sie dafür folgende Vorlage: import java.util.*;
import java.io.*;
public class Spiel17und4_2 {
static Random r = new Random();
static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
public static void main (String [] args) throws IOException {
// hier folgt das erweiterte Programm
}
}
Eine Zahl lesen Sie nun einfach durch folgende Zeilen ein:
int eingabe; // Variable, die den Eingabewert speichert
// sollte wenn möglich schon am Anfang des Programmes stehen
// Code zum Einlesen von Zeichen von der Kommandozeile
System.out.print("Eingabe: "); // optional
eingabe = Integer.parseInt(in.readLine()); // lese eine Zahl ein
System.out.println(); // optional
Nutzen Sie dies, um nach jeder Ziehung einer Karte
folgende Abfrage durchzuführen: Sie haben jetzt xy Punkte.
Was möchten Sie tun?
1) Weitere Karte ziehen
2) Aufgeben
Eingabe:
Download der Lösung (Spiel17und4_2.java)