OOP Würfel Problem

Manu3991

Mitglied
Hey Leute, sitze zur zeit an folgender Aufgabenstellung:+

1.1
Erzeugen Sie die Klasse Wuerfel in Java. Sie soll eine Methode wuerfele(char, char)
enthalten. Ihre Parameter sind der niedrigste und höchste würfelbare Buchstabe (beide
inklusive und in alphabetischer Reihenfolge). Die Methode soll den gewürfelten Buch-
staben zurückgeben.
Verwenden Sie zum Erzeugen einer Zufallszahl die Methode Math.random().
Beachten Sie, dass random() eine Kommazahl im Wertebereich "0 kleinergleich random() kleinergleich 1" zurückgibt. Da Buchstaben in Java intern durch Zahlen dargestellt werden, kann der Wertebereich skaliert und verschoben werden, um das gewünschte Ergebnis zu erzielen.
Achten Sie besonders darauf, dass der angegebene höchstmögliche Buchstabe auch tatsächlich gewürfelt werden kann.

1.2
Erzeugen Sie eine zweite Klasse namens Test, deren Aufgabe es ist, den gewünsch-
ten Buchstabenbereich vom Benutzer zu erfragen, einen Wuerfel zu erzeugen und die
Methode wuerfele(char, char) der vorigen Aufgabe mit dem vom Benutzer eingege-
benen Bereich aufzurufen. Der gewürfelte Buchstabe soll anschließend ausgegeben wer-
den. Implementieren Sie diese Funktionalität in einer Methode public static void
main(String[] args). Verwenden Sie für die Benutzereingabe die Klasse Scanner.
Ein Zeichen kann mittels nextLine().charAt(0) erfragt werden.

So sehen meine 2 Klasse bisher aus:

Code:
public class Wuerfel
{
	    // Variablendeklaration
		private char gewuerfelt;
		char niedrigstes, hoechstes;   // Würfelbares Zeichen
		
		// Standardkonstruktor
		public Wuerfel()
		{
			wuerfele(niedrigstes, hoechstes);
		}
		
		// Methode wuerfele
		public void wuerfele(char niedrigstes, char hoechstes)
		{
			gewuerfelt = (char)(Math.random());
		}
		
		// Getter Methode
		public int getGewuerfelt()
		{
			return gewuerfelt;
		}
}

Code:
import java.util.Scanner;

public class Test
{
	
	public static void main(String[] args)
	{	
		Scanner eingabe = new Scanner (System.in);
		String input = eingabe.nextLine();
		
		
		System.out.println("Geben Sie das niedrigstmögliche Zeichen an: ");
		char niedrigstes = input.charAt(0);
		
		
		System.out.println("Geben Sie das höchstmöglichen Zeichen an: ");
		char hoechstes = input.charAt(0);
	}
}

Ich hoffe, dass zumindest die Klasse "Wuerfel" richtig ist, wobei ich mir aber nich sicher bin ob die getter Methode benötigt wird.

Aber wie ich ein zufälliges Zeichen erzeugen kann weiß ich nicht genau und wie ich den Aufgabenteil: "...einen Wuerfel zu erzeugen und die Methode wuerfele(char, char) der vorigen Aufgabe mit dem vom Benutzer eingegebenen Bereich aufzurufen. Der gewürfelte Buchstabe soll anschließend ausgegeben werden" lösen soll hab ich ehrlich gesagt auch keinen blasse Schimmer... :bahnhof:

Hoffe ihr könnt mir helfen, mfg Manuel :)
 
Zuletzt bearbeitet:

Final_Striker

Top Contributor
Ich hoffe, dass zumindest die Klasse "Wuerfel" richtig ist, wobei ich mir aber nich sicher bin ob die getter Methode benötigt wird.

Nein.

Die Methode soll den gewürfelten Buchstaben zurückgeben.

Deine Methode gibt nichts zurück.

Der gewürfelte Buchstabe soll anschließend ausgegeben werden" lösen soll hab ich ehrlich gesagt auch keinen blasse Schimmer..

Nun ja, du musst die erzeugte Zahlt durch Multiplizieren und Addieren mit anderen Zahlen so einschränken, das sie zwischen dem min und max Wert liegt.
 

Manu3991

Mitglied
Aber ich hab doch den return wert "gewuerfelt"?!
Warum gibt die Methode dann nichts zurück, oder was genau bedeutet eigentlich "zurückgeben"?

Ich hab keine Ahnung wie ich das hinbekommen soll, geht ja auch um char und keine ganz normale int variable, wie soll man denn mit Zeichen rechnen können?

Beschäftige mich noch nich lange mit java, deswegen die Ahnungslosigkeit bezüglich methoden, konstruktoren und dem ganzen kram :eek:
 

insane80

Aktives Mitglied
Diese Methode
Java:
public void wuerfele(char niedrigstes, char hoechstes)
		{
			gewuerfelt = (char)(Math.random());
		}
gibt definitiv nichts zurück, da sie keinen Rückgabetyp hat.

So
Java:
public char wuerfele(char niedrigstes, char hoechstes)
		{
			return gewuerfelt = (char)(Math.random());
		}
gibt sie "gewuerfelt" zurück. Die Übergabeparameter verwendest Du aber nicht.

Man kann mir Charactern rechnen. Probier mal aus ;-)
Java:
char a = 'a';
char b = 'b';
System.out.println(a + b);
//Ergebnis 195

Grüße!
 

Manu3991

Mitglied
Ah danke :)
fertig bin ich mit dem drecksprogramm allerdings noch lange nicht... ;(

Hier hänge ich im Moment:

Code:
public class Wuerfel
{
	   
		private char gewuerfelt;
		char niedrigstes, hoechstes;
		
		public Wuerfel()
		{
			wuerfele(niedrigstes, hoechstes);
		}
		

		public char wuerfele(char niedrigstes, char hoechstes)
		{
			return gewuerfelt;
			double random = Math.random();
			char randomChar = (char) random;

			// ?

			System.out.println("Gewuerfeltes Zeichen: " + randomChar);
		}
			
}
Code:
import java.util.Scanner;

public class Test
{
	
	public static void main(String[] args)
	{	
		String userInput;
		
		Scanner eingabe = new Scanner (System.in);
		userInput = eingabe.nextLine();
		
		System.out.println("Geben Sie das niedrigstmögliche Zeichen an: ");
		char niedrigstes = userInput.charAt(0);
		
		System.out.println("Geben Sie das höchstmöglichen Zeichen an: ");
		char hoechstes = userInput.charAt(0);
		
		Wuerfel w1 = new Wuerfel();
		w1.wuerfele(userInput, userInput);   // ?
	}

}

In der Klasse Wuerfel meckert der compiler über "double random = Math.random();".
Ich hab keine ahnung wie ich da was casten muss (müsste ja eigentlich von double nach char sein oder? weil Math.random einen doublewert zwischen 0 und 1 generiert, aber ich ja n Zeichen haben will.), damit der vom Benutzer eingegebene zeichenbereich eingehalten wird und was für werte jedes einzelne zeichen wie z.b. 'a' oder 'b' hat und von daher weiß ich auch nich wie ich Math.random(); anpassen muss um der Aufgabenstellung gerecht zu werden...

In der Klasse Test dachte ich, dass ich eigentlich 2 chars einlese aber mir wird gesagt dass "userInput" 2 Strings sind, warum auch immer.

Beste Grüße, Manuel.
 
G

Gast2

Gast
du schreibst direkt in der ersten Zeile
Code:
return gewuerfelt;
das beendet die Methode, alle folgenden Zeilen können nichtmehr erreicht werden, das meckert eclipse an.

Ich hab keine ahnung wie ich da was casten muss (müsste ja eigentlich von double nach char sein oder? weil Math.random einen doublewert zwischen 0 und 1 generiert, aber ich ja n Zeichen haben will.), damit der vom Benutzer eingegebene zeichenbereich eingehalten wird und was für werte jedes einzelne zeichen wie z.b. 'a' oder 'b' hat und von daher weiß ich auch nich wie ich Math.random(); anpassen muss um der Aufgabenstellung gerecht zu werden...
Lös das doch erstmal etwas einfacher... lass dir 2 Zahlen übergeben und generier eine Zufallszahl die zwischen den beiden Zahlen liegt, das ganze dann auf chars umzubauen ist ne kleinigkeit (nen char ist im prinzip auch nur ne zahl).
 

Manu3991

Mitglied
Also, ich bin nun fast fertig, denke ich^^
1 Problem krieg ich aber einfach nich hin, nämlich wie ich es in der Klasse "Test" hinbekomme dass die 2 Benutzereingaben als 2 chars gelten, damit die mit der "wuerfele" Methode der Klasse "Wuerfel" übereinstimmt...

Code:
public class Wuerfel
{
	private double wert;
	private char gewuerfelt;
		
   	public Wuerfel()
	{
	}

		
	public void wuerfele(char obergrenze, char untergrenze)
	{
        wert = Math.round(Math.random() * (obergrenze - untergrenze)) + untergrenze;
        this.gewuerfelt = (char)wert;
        }

	
    public char getWert()
    {
       return gewuerfelt;
    }
				
}

Code:
import java.util.Scanner;

public class Test
{
	
	public static void main(String[] args)
	{	
		String userInput;
		
		Scanner eingabe = new Scanner (System.in);
		
		System.out.println("Geben Sie das niedrigstmögliche Zeichen an: ");
		char niedrigstes = userInput.charAt(0);
		userInput = eingabe.nextLine();
		
		System.out.println("Geben Sie das höchstmöglichen Zeichen an: ");
		char hoechstes = userInput.charAt(0);
		userInput = eingabe.nextLine();
		
		Wuerfel w1 = new Wuerfel();
		w1.wuerfele(userInput);
		
		System.out.println("Das zufällige Zeichen ist: " + w1.getWert());
	}

}
 

VfL_Freak

Top Contributor
Moin,

Deine Methode "wuerfele" erwartet ZWEI Werte !

Du übergibst aber nur einen - und zwar immer den letzten eingelesenen !

Ich würde es mal so versuchen :
Java:
public static void main(String[] args)
	{	
		String userInput_min;  // ! ! !
		String userInput_max;  // ! ! !

		Scanner eingabe = new Scanner (System.in);
		
		System.out.println("Geben Sie das niedrigstmögliche Zeichen an: ");
		char niedrigstes = userInput.charAt(0);
		userInput_min = eingabe.nextLine();
		
		System.out.println("Geben Sie das höchstmöglichen Zeichen an: ");
		char hoechstes = userInput.charAt(0);
		userInput_max = eingabe.nextLine();
		
		Wuerfel w1 = new Wuerfel();
		w1.wuerfele( userInput_min, userInput_max );
		
		System.out.println("Das zufällige Zeichen ist: " + w1.getWert());
	}

Ungetestet !

Gruß
Klaus
 

Manu3991

Mitglied
Stimmt is sinnvoll (auch wegen der übersichtlichkeit), aber sind trotzdem immernoch Strings und keine chars, also gehts leider immernoch nicht :/ trotzdem danke^^
 

VfL_Freak

Top Contributor
Moin,

Stimmt is sinnvoll (auch wegen der übersichtlichkeit)
nee, ist zwingend notwendig ;)


aber sind trotzdem immer noch Strings und keine chars, also gehts leider immernoch nicht
Sorry, DU hattest dort Strings genommen :D

Dann lies entweder direkt als char ein oder konvertiere den Wert.
Du kannst auch sowas wie
Java:
String myString = "abc";
char myChar = myString.charAt( 1 );  
// myChar enthält jetzt jetzt 'b';
verwenden!

Schau einfach mal mehr in API, da steht alles drin !
Java Platform SE 6

Gruß
Klaus
 

Manu3991

Mitglied
Naja habs jetzt irgendwie hinbekommen dass es keine Fehler mehr gibt, aber hab wohl irgendwas falsch gemacht weil das Zeichenintervall nie eingehalten wird -.- Aber egal, hab kb mehr darauf jetzt^^ vielen Dank an alle für die Hilfe, lg Manu :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Gui Würfel. String Problem. Java Basics - Anfänger-Themen 7
T Programmierauftrag Würfel Java Basics - Anfänger-Themen 4
Elyt Würfel mit bildlicher Anzeige Java Basics - Anfänger-Themen 2
x-tshainge Schleife für ein Würfel Programm Java Basics - Anfänger-Themen 2
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
A Würfel Java Basics - Anfänger-Themen 8
J BlueJ Liste Würfel Projekt Java Basics - Anfänger-Themen 2
U Erste Schritte Leidiges Anfängerthema: Würfel Java Basics - Anfänger-Themen 5
P Würfel Pasch Java Basics - Anfänger-Themen 24
S Drehen RGB Würfel Java Basics - Anfänger-Themen 18
D Wahrscheinlichkeiten bei Würfel ändern Java Basics - Anfänger-Themen 7
D Würfel mit Statistik Java Basics - Anfänger-Themen 8
C Würfel-Programm Java Basics - Anfänger-Themen 12
J 3d würfel Java Basics - Anfänger-Themen 13
L würfel zeichnen Java Basics - Anfänger-Themen 1
M Würfel spiel Java Basics - Anfänger-Themen 4
W Würfel ! Java Basics - Anfänger-Themen 15
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
H Problem mit Verzweigungen Java Basics - Anfänger-Themen 6
H Problem mit Rückgabewert Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
A Code Problem Java Basics - Anfänger-Themen 6
Henri Problem von Typen Java Basics - Anfänger-Themen 7
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
K jackson Mapping - Problem mit Zeitzonen Java Basics - Anfänger-Themen 10
B Threads Problem mit mehreren Threads Java Basics - Anfänger-Themen 38
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
D Schleifen Problem Java Basics - Anfänger-Themen 2
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
T Problem mit Lehrzeichen und String bei einfacher Chiffre Java Basics - Anfänger-Themen 8
J extends Problem Java Basics - Anfänger-Themen 2
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
amgadalghabra algorithmisches Problem Java Basics - Anfänger-Themen 19
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
R ArrayList Problem Java Basics - Anfänger-Themen 6
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
C RegEx Problem Java Basics - Anfänger-Themen 4
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
M Input/Output Fallunterscheidung Problem Java Basics - Anfänger-Themen 17
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
G Subset sum problem mit Backtracking Java Basics - Anfänger-Themen 18
N Problem mit Scanner Java Basics - Anfänger-Themen 2
J Klassen Problem Java Basics - Anfänger-Themen 8
A Out.format problem. Java Basics - Anfänger-Themen 3
J Problem bei der Programmierung eines Tannenbaums Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
W Remote Method Invocation RMI - Problem Java Basics - Anfänger-Themen 0
I Ich habe ein Problem Java Basics - Anfänger-Themen 3
A Problem bei returnen eines Wertes Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
D Input/Output Problem bei der Benutzereingabe eines Befehls Java Basics - Anfänger-Themen 14
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben