Hallo liebes Java-forum.
Ich soll ein Programm entwerfen, mit dem ich Zahlen zwischen 1 und N raten kann. es sollen die benötigten Verusuche angegeben werden, und der Spieler bei erraten der Zahl gefragt werden ob er nochmal spielen will (mit boolean).
Das ganze Spiel soll in einer Klasse ZahlenRaten implementiert werden. Auer dem
Konstruktor der Klasse und der Methode starteSpiel() sollen alle Attribute und
Methoden private sein. Die main-Methode soll lediglich eine Instanz der Klasse erzeugen
und das Spiel starten.
Aufgabenstellung ist folgende:
Erstellen sie die Klasse ZahlenRaten. Sie soll als Attribute die eingegebene Obergrenze, die zu ratende Zahl und die Anzahl der benotigten Versuche beinhalten. Auerdem hat sie ein Attribut vom Typ scanner, womit Tastatureingaben gelesen werden konnen. Nur dieses muss im Konstruktor initialisiert werden.
Fügen Sie der Klasse nun die Methode int positiveZahl(String aufforderung) hinzu. Die Methode soll den Spieler mit dem ubergebenen String zur Eingabe einer positiven Zahl auordern. Mittels nextLine() der Klasse Scanner wird ein String von der Tastatur eingelesen. Der String kann durch Integer.parseInt(String) in eine ganze Zahl (auch negativ oder Null) umgewandelt werden. Die Eingabe soll so lange wiederholt werden, bis die Zahl groer als Null ist. Dann wird sie zuruck gegeben.
Implementieren Sie als nachstes die Methode void neuesSpiel(). Sie fordert den Spieler zuerst zur Eingabe der Obergrenze auf. Verwenden Sie positiveZahl. Danach wird die Anzahl der Versuche zurück gesetzt und eine zufallige Zahl im gewünschten Wertebereich gewürfelt.
Nun soll der eigentliche Ablauf des Spiels in der Methode void spiele() programmiert werden. Der Spieler wird wiederholt zum Eingeben einer positiven Zahl aufgefordert. Daraufhin wird eine Nachricht ausgegeben, ob die gesuchte Zahl groer oder kleiner ist. Dies wird so lange wiederholt, bis die Zahl erraten wurde. Die Methode endet mit der Ausgabe der benotigten Versuche auf dem Bildschirm.
Implementieren Sie die Methode boolean erneutSpielen(), die den Spieler fragt, ob
er noch einmal spielen mochte. Die Entscheidung des Spielers wird als boolean-Wert
zuruck gegeben. Uberlegen Sie sich, in welcher Form Sie am geschicktesten die Antwort
des Spielers einlesen konnen. Eine Falscheingabe des Spielers darf nicht automatisch als
ja oder nein gewertet werden.
Zuletzt soll die Methode void starteSpiel() hinzugefugt werden. Sie ruft die drei
vorigen Methoden neuesSpiel, spiele und erneutSpielen so oft auf, bis der Spieler
signalisiert, dass er von all dem Zahlen raten die Nase voll hat. .
ich habe mich mal drangesetzt, und das ganze erstmal so zusammengeschustert, wie mir das am sinnvollsten erschien... (funktioniert soweit auch prima)
jetzt habe ich das problem, dass ich nicht genau weiß, wie ich das mit der Abfrage, ob erneut gespielt werden soll implementieren soll, und mir fehlt so die methode StarteSpiel....
ein weiteres kleines Problemchen ist, dass bei mir auch 0 raukommen kann (sollte aber eigentlich 1-N sein) also keine null.
kann mir da vielleicht jemand weiterhelfen?
Ich soll ein Programm entwerfen, mit dem ich Zahlen zwischen 1 und N raten kann. es sollen die benötigten Verusuche angegeben werden, und der Spieler bei erraten der Zahl gefragt werden ob er nochmal spielen will (mit boolean).
Das ganze Spiel soll in einer Klasse ZahlenRaten implementiert werden. Auer dem
Konstruktor der Klasse und der Methode starteSpiel() sollen alle Attribute und
Methoden private sein. Die main-Methode soll lediglich eine Instanz der Klasse erzeugen
und das Spiel starten.
Aufgabenstellung ist folgende:
Erstellen sie die Klasse ZahlenRaten. Sie soll als Attribute die eingegebene Obergrenze, die zu ratende Zahl und die Anzahl der benotigten Versuche beinhalten. Auerdem hat sie ein Attribut vom Typ scanner, womit Tastatureingaben gelesen werden konnen. Nur dieses muss im Konstruktor initialisiert werden.
Fügen Sie der Klasse nun die Methode int positiveZahl(String aufforderung) hinzu. Die Methode soll den Spieler mit dem ubergebenen String zur Eingabe einer positiven Zahl auordern. Mittels nextLine() der Klasse Scanner wird ein String von der Tastatur eingelesen. Der String kann durch Integer.parseInt(String) in eine ganze Zahl (auch negativ oder Null) umgewandelt werden. Die Eingabe soll so lange wiederholt werden, bis die Zahl groer als Null ist. Dann wird sie zuruck gegeben.
Implementieren Sie als nachstes die Methode void neuesSpiel(). Sie fordert den Spieler zuerst zur Eingabe der Obergrenze auf. Verwenden Sie positiveZahl. Danach wird die Anzahl der Versuche zurück gesetzt und eine zufallige Zahl im gewünschten Wertebereich gewürfelt.
Nun soll der eigentliche Ablauf des Spiels in der Methode void spiele() programmiert werden. Der Spieler wird wiederholt zum Eingeben einer positiven Zahl aufgefordert. Daraufhin wird eine Nachricht ausgegeben, ob die gesuchte Zahl groer oder kleiner ist. Dies wird so lange wiederholt, bis die Zahl erraten wurde. Die Methode endet mit der Ausgabe der benotigten Versuche auf dem Bildschirm.
Implementieren Sie die Methode boolean erneutSpielen(), die den Spieler fragt, ob
er noch einmal spielen mochte. Die Entscheidung des Spielers wird als boolean-Wert
zuruck gegeben. Uberlegen Sie sich, in welcher Form Sie am geschicktesten die Antwort
des Spielers einlesen konnen. Eine Falscheingabe des Spielers darf nicht automatisch als
ja oder nein gewertet werden.
Zuletzt soll die Methode void starteSpiel() hinzugefugt werden. Sie ruft die drei
vorigen Methoden neuesSpiel, spiele und erneutSpielen so oft auf, bis der Spieler
signalisiert, dass er von all dem Zahlen raten die Nase voll hat. .
Java:
import java.util.Scanner;
public class ZahlenRaten{
public static void main (String args[])
{
System.out.println("*** Zahlenraten **");
System.out.println("\nWillkommen beim Zahlenraten!");
System.out.println("Ich denke mir eine Zahl zwischen 1 und N. Welchen Wert hat N?");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
int N= new Integer(s).intValue();
int positiveZahl = (int)(Math.random()*(N+1));
System.out.println("\nRate eine Zahl");
System.out.println();
int rateVersuche = 0;
int rateZahl = -1;
while (rateZahl != positiveZahl) {
String rate = scanner.nextLine();
rateZahl = Integer.valueOf(rate);
rateVersuche++;
System.out.print(rateVersuche + ". Versuch: ");
if (rateZahl > positiveZahl)
{
System.out.println("Meine Zahl ist kleiner!\n");
}
if (rateZahl < positiveZahl)
{
System.out.println("Meine Zahl ist groesser!\n");
}
if (rateZahl == positiveZahl)
{
System.out.print("\nDas ist die gesuchte Zahl! \nDu hast " + rateVersuche);
System.out.print(" Versuch(e) benoetigt um die Zahl zu erraten!");
}
}
}
}
ich habe mich mal drangesetzt, und das ganze erstmal so zusammengeschustert, wie mir das am sinnvollsten erschien... (funktioniert soweit auch prima)
jetzt habe ich das problem, dass ich nicht genau weiß, wie ich das mit der Abfrage, ob erneut gespielt werden soll implementieren soll, und mir fehlt so die methode StarteSpiel....
ein weiteres kleines Problemchen ist, dass bei mir auch 0 raukommen kann (sollte aber eigentlich 1-N sein) also keine null.
kann mir da vielleicht jemand weiterhelfen?