BlueJ/ Java/ GLOOP Hilfe?

1 Antwort

1) Zufallszahl erzeugen, nach der Formel:

random(0, 1) * (max - min + 1) + min

Die Variablen max und min repräsentieren die Grenzen.

2) Richtigen Quader ermitteln

Am einfachsten wäre es, wenn du dir alle Seiten in einem Array speichern würdest.

GLQuader[] dice = new GLQuader[6];
dice[0] = new GLQuader(/* ... */

In Kombination mit Schleifen könntest du dir sicherlich auch einiges an Schreibarbeit sparen.

Die Zufallszahl - 1 würde den Index ergeben, den du für das Array nutzen kannst, um einen gespeicherten Zufallsquader herauszuholen.

3) Hier findet sich die Dokumentation zu GLOOP. Du solltest einmal schauen, ob du Objekte drehen bzw. nur ein bestimmtes Rechteck anzeigen lassen kannst.

Informatiker007 
Fragesteller
 22.05.2019, 20:37

Mir ist jetzt leider immer noch nicht klar geworden wie ich dieses Problem lösen kann

0
regex9  22.05.2019, 21:10
@Informatiker007

Ich sehe schon: Ich habe übersehen, dass du dir erst einen Würfel aus verschiedenen Quadern zusammenbaust. Das liegt sicherlich daran, dass du Texturen nicht für jede Seite richtig mappen kannst.

Anderer Vorschlag: Erstelle dir eine Klasse für den Würfel. Die einzelnen Seiten stellen Attribute dar. Dann schreibst du dir zwei Methoden: Drehe seitlich und drehe vertikal (nur für einen Schritt). Lege dir für die Implementation einen Würfel auf den Tisch, um es einfacher zu machen.

Folgend werden Texturen und Objekte getauscht. Ein seitliches Drehen bedeutet bspw. nur, dass links, rechts und Front- sowie Rückseite ihre Quader-Instanzen miteinander tauschen. Zusätzlich solltest du dir merken, wo gerade welche Zahl liegt. Eine neue Klasse kann dafür angelegt werden.

class DicePage {
  GLQuader cuboid;
  int value;
}

Die Seitenattribute zeigen auf Objekte diesen Typs.

Wenn die Zufallszahl ausgelotet wurde, drehst du den Würfel mit deinen Hilfsmethoden so lange, bis die gewünschte Zahl gefunden wurde.

Noch ein anderer Lösungsweg wäre die Trennung von Logik/Daten und Repräsentation. Die Datenstruktur (einzelne Würfelseiten) werden z.B. mit einem Graph dargestellt. Wenn die Zufallszahl gefunden wurde, lässt du den Würfel erst zeichnen. Über den Graph kannst du problemlos auf die jeweiligen Nachbarseiten zugreifen.

Ich denke, der letzte Lösungsweg wäre am einfachsten und besten.

0