Würfel !

Status
Nicht offen für weitere Antworten.

wmbetter

Mitglied
Hallo !


Ich würde gerne eine Klasse schreiben, die einen Spielwürfel mit beliebig vielen Seiten repräsentiert.
Das ganze soll für meinen kleinen Bruder sein, der mir nicht glauben will, dass man auf dem Computer auch würfeln kann :)

Leider tu ich mir selber schwer damit das hinzukriegen.
Hat vielleicht irgendjemand ein Muster für ein derartiges Programm ?
Ich stelle mir das ca so vor, dass man
dem Konstruktor die Anzahl der Seiten des Würfels angeben kann; die Methode werfen() liefert (gleichverteilt) einen zufälligen ganzzahligen Wert zwischen 1 und beliebig zurück.

Naja vielleicht kann mir ja jemand helfen !


Lg, Bernd
 

Wildcard

Top Contributor
Das ist doch kein Problem.
Übergibt die Augenzahl im Konstruktor und speicher diesen Wert in einer Variablen.
Dann hast du eine werfe() Methode die auf basis dieser Zahl eine Zufallszahl zurückliefert.
 
B

Beni

Gast
Zufallszahlen kann man über "Math.random" oder ein Objekt der Klasse "Random" beziehen :wink:

Allerdings sind das nur Pseudozufallszahlen, dein kleiner Bruder hat insofern recht, als dass ein normaler PC keinen echten Zufall (unter der Annahme, dass der überhaupt existiert) erzeugen kann.
 

EOB

Top Contributor
ob das der kleine bruder wohl wusste ;). wie war das, der zufall hat kein gedaechtnis....

gruesse
 

Micha_S

Aktives Mitglied
Wie könnte man so was denn mal grafisch darstellen?
Sagt mal nur ein paar schöne stichwörter, unter denen ich mich mal durch die literatur wälzen kann.
Macht man das am besten mit irgendwelchen "gemalten" bildern oder drawOval() auf nem Quadrat?
 

wmbetter

Mitglied
hi ! danke für eure Hilfe !

Nein es soll nichts graphisches sein, ganz normal im Text, alles andere wäre mir sowieso zu schwer !

Grüße
 

Ark

Top Contributor
Code:
int wuerfel;
wuerfel=(int)(Math.random()*6)+1;
 
J

Johanness

Gast
Oder so (für einen 20-seitigen Würfel):

Code:
import java.util.Random;

public class Wuerfel
{
   public static final int SEITEN = 20;

   public static void main(String[] args)
   {
      Random zufall = new Random();
      System.out.println(zufall.nextInt(SEITEN) + 1);
   }
}
 

wmbetter

Mitglied
Hallo !


Vielen Dank erstmal für eure Hilfe !

aber wie würde das ganze aussehen wenn ich die Klasse selber schreiben will, und mich nicht der Klasse Random bedienen will ?!

Das Thema hat mich irgendwie gepackt, und jez würd mich das auch interessieren :)


Lg Bernd
 

Wildcard

Top Contributor
Überleg dir halt eine Möglichkeit pseudo-Zufallszahlen zu generieren. Die aktuelle Systemzeit wird dabei oft als seed genommen und dann anhand einer Funktion durcheinander'gewürfelt'. Davon muss ich aber abraten, da deine pseudo-Zufallszahlen mit sicherheit weniger pseudo-zufällig sind als die von Random
 

wmbetter

Mitglied
Hallo !

Ich hab noch eine kurze Frage.

Warum "System.out.println(zufall.nextInt(SEITEN) + 1); " ?

Ich versteh daran das +1 nicht ...

Grüße
 

Murray

Top Contributor
zufall.nextInt( SEITEN) liefert eine ganze Zahl zwischen 0 und (SEITEN-1). Da das für einen Würfel eher ungewöhnlich ist (ein normaler Spielwürfel mit 6 Seiten zeigt ja nicht etwa 0 bis 5, sondern 1 bis 6), wird eben 1 addiert.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben