# Würfel !



## wmbetter (9. Nov 2006)

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 (9. Nov 2006)

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.


----------



## EOB (9. Nov 2006)

oder willst du das grafisch? dann wirds natuelich komplizierter. 

gruesse


----------



## Beni (9. Nov 2006)

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 (9. Nov 2006)

ob das der kleine bruder wohl wusste . wie war das, der zufall hat kein gedaechtnis....

gruesse


----------



## Micha_S (9. Nov 2006)

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?


----------



## Wildcard (9. Nov 2006)

Würfeln ist auch kein echter Zufall sondern nur schwer vorherzusagen :wink:


----------



## EOB (9. Nov 2006)

java3d  :shock:


----------



## wmbetter (9. Nov 2006)

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 (9. Nov 2006)

```
int wuerfel;
wuerfel=(int)(Math.random()*6)+1;
```


----------



## Johanness (10. Nov 2006)

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


```
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 (12. Nov 2006)

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 (12. Nov 2006)

Ü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


----------



## Johanness (13. Nov 2006)

Das hier ist eine gute Einführung:
http://de.wikipedia.org/wiki/Zufallszahlengenerator


----------



## wmbetter (14. Nov 2006)

Hallo !

Ich hab noch eine kurze Frage.

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

Ich versteh daran das +1 nicht ...

Grüße


----------



## Murray (14. Nov 2006)

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.


----------

