Huhu Ihr, ^^
Das Hier mein erster Beitrag deswegen möcht ich erstmal alle schön grüßen die mir hier bezüglich helfen können:
Also ich möchte gern ein Programm schreiben das mir 10 zufällige Punkte erstellt und ausgibt.
Mein Ansatz war ein Array aufzumachen meine Werte reinzuspeißen dies dann mit rekursion auf doppelte Punkte zu überprüfen und mit hilfe von nem Konstruktor grafisch darzustellen:
Und Nun noch die Klasse mit dem Konstruktor:
Der Compiler zeigt mir keine Fehler =/ aber ich bekomm Exceptions beim Ausführen
woran kann das liegen?
Das Hier mein erster Beitrag deswegen möcht ich erstmal alle schön grüßen die mir hier bezüglich helfen können:
Also ich möchte gern ein Programm schreiben das mir 10 zufällige Punkte erstellt und ausgibt.
Mein Ansatz war ein Array aufzumachen meine Werte reinzuspeißen dies dann mit rekursion auf doppelte Punkte zu überprüfen und mit hilfe von nem Konstruktor grafisch darzustellen:
Code:
import java.awt.*; //Bibliothek
import BreezyGUI.*;
public class TolleSache1 extends GBFrame //Neue Klasse wird erstellt
{
//Array vom Typ Punkt wird erstellt
private class Zahlen
{
int a;
int b;
}
Zahlen[] Test = new Zahlen [10];
public void generierePunkte (int anzahl) //Methode erzeugt Punkte
{
for (int i=0; i<anzahl; i++)
{
int x = (int)(Math.random() * 10); //erzeugt eine zufällige x koordinate
int y = (int)(Math.random() * 10); //erzeugt eine zufällige y koordinate
boolean Doppelt = Überprüfung(x,y,anzahl); //ruft methode Überprüfen auf und überweist die koordinaten + der wie vielte punkt es ist
if (Doppelt == true) //wenn Doppelt = true
{
generierePunkte(anzahl); //rufe dich selbst nochmal an der gleichen stelle i auf und mach neue koordinaten
}
else //else nimm koordinaten und speicher sie
{
Test[i].a=x; //im Array Test auf der stelle i wert x
Test[i].b=y; //im Array Test auf der stelle i wert y
System.out.println("test"+anzahl);
System.out.println("i="+i);
System.out.println("x="+Test[i].a);
}
}
}
public boolean Überprüfung(int erzeugtesX, int erzeugtesY, int anzahl) //Methode Überprüfen
{
for(int i=0; i<anzahl; i++) //Läuft jeden bereits erzeugten Punkt ab
{
if(Test[i].a==erzeugtesX && Test[i].b==erzeugtesY) //Überprüft ob einer der Punkte doppelt vorhanden ist
{
return true; //wenn vorhanden return true
}
}
return false;
}
public void paint (Graphics gHandle) //Methode Paint
{
/* int startX=50, startY=50, width=40, height=40; //linke obere Ecke, Breite und Höhe vom Raster
gHandle.setColor(Color.black); //die Farbe schwarz wird gewählt
for (int i=0; i<10; i++) //i ist 1 ; i ist kleiner als 11 und i wird immer um eins erhöht
{
gHandle.drawLine(startX, startY+(height*i), startX+(width*10), startY+(height*i)); //eine Linie des Koordinatensystems wird gezeichnet
}
for (int i=0; i<10; i++) //Kästchen links oben ...
{
gHandle.drawLine(startX+(width*i), startY, startX+(width*i), startY+(height*10));
}
*/
generierePunkte(9); //ruft Methode generierePunkte(9) mit dem gefüllten Array
for (int i=0; i<10; i++)
{
Punkt P = new Punkt (Test[i].a, Test[i].b, gHandle); //Erzeugt neues Objekt Punkt über den Konstruktor Punkt
}
}
public static void main (String[] args)
{
Frame frm = new TolleSache1(); //Erstellt ein Frame
frm.setSize(600, 600); //Fenstergröße
frm.setTitle("Grafikausgabe");
frm.setVisible(true); //Sichtbarmachung des Frames
}
}
Und Nun noch die Klasse mit dem Konstruktor:
Code:
import java.awt.*; //Bibliothek
import BreezyGUI.*; //"Werkzeugkasten"
public class Punkt extends GBFrame //Klasse Punkt wird erstellt
{
//int x; //KLasse Punkt verfügt über Variable x und y (Eigenschaften von Punkt)
//int y;
int PunktX;
int PunktY;
Punkt (int x, int y, Graphics gHandle) //Konstruktor von Punkt = konstruiert einen Punkt
{
this.PunktX = x; //Parameter von new Punkt (int,int, jawa.awt.Graphics) werden übergeben
this.PunktY = y;
ZeichnePunkte(gHandle); //Ruft Methode ZeichnePunkte und übergibt gHandle
}
public void ZeichnePunkte (Graphics gHandle) //ZeichnePunkte bekommt parameter gHandle
{
int x = this.PunktX; //Da x nicht direkt übergeben werden kann wird es hier neu zugewiesen
int y = this.PunktY;
int startX=50, startY=50, width=40, height=40;
gHandle.setColor(Color.red); //eine Farbe für die Punkte wird zugewiesen
gHandle.fillArc(startX+(x*width)-4, startY+(y*height)-4, 10, 10, 0, 360); //Punkt wird gezeichnet
}
}
woran kann das liegen?