Moin,
ich wollte mir ein rechteckiges Spielfeld machen mit einer festen Länge und Breite. Darauf sollen "Punkte" versteckt werden und in einem Array gespeichert werden. Die Koordinaten werden Random generiert und befinden sich auf dem Spielfeld.
[CODE lang="java" title="Main"]public class Spiel {
public static void main(String[] args) {
final int ANZAHL = 10; //Anzahl der versteckten Punkte
Koordinate koor = new Koordinate(9,7) //Spielflächengröße
Koordinate[]x = new Koordinate[ANZAHL]; //Array für x erstellen
Koordinate[]y = new Koordinate[ANZAHL]; //Array für y erstellen
//jetzt weiß ich nicht, was ich noch genau machen muss
}
}[/CODE]
[CODE lang="java" title="Koordinate"]public class Koordinate {
int x;
int y;
public Koordinate(int X, int Y){ //Konstruktor wird erstellt mit der Größe des Spielfeldes
java.util.Random zufall = new java.util.Random();
this.x = zufall.nextInt(X); //das als Integer zu speicher ergibt vermutlich nicht so viel Sinn um es zu speichern, aber ich weiß nicht, wie ich es sonst als Array deklarieren soll...
this.y = zufall.nextInt(Y);
//Jetzt weiß ich nicht ob ich komplett auf dem Holzweg bin, oder ob da irgendetwas gebrauchbars bei ist
}[/CODE]
Ich hoffe jemand kann mir weiter helfen, bzw. mir ein paar Tipps geben..
LG Zeppi
Jedes Objekt der Klasse Koordinate besteht bei Dir aus einer x- und einer y-Komponente und beschreibt somit ein Koordinatenpaar. Der Konstruktor nimmt die beiden Komponenten und nicht irgendeine Spielfeldgröße entgegen. Auch wird da nix zufällig erzeugt - dem Konstruktor werden die beiden Komponenten ja bereits übergeben.
Das Teil sieht zunächst einfach so aus:
Java:
publicclassKoordinate{privatefinalint x;privatefinalint y;publicKoordinate(int x,int y){this.x = x;// dabei bezeichnet this.x die Instanzvariable, und x den Parameterthis.y = y;}}
Die nächste Frage wäre, wie Du das Spielfeld implementieren willst. Die Koordinate dient ja nur zur Adressierung einer "Zelle" des Spielfelds. Was genau enthält das Spielfeld?
Ich habe es jetzt so gemacht.
[CODE lang="java" title="Koordinate"]public class Koordinate {
int x;
int y;
public Koordinate(int X, int Y) {
java.util.Random zufall = new java.util.Random();
this.x= zufall.nextInt(X);
this.y=zufall.nextInt(Y);
}
public void display() {
System.out.println(x);
System.out.println(y);
}
} [/CODE]
Jetzt werden mit immer zwei unterschiedliche Koordinaten angezeigt, die auf dem Spielfeld liegen.
[CODE lang="java" title="Main"]public class Spiel {
public static void main(String[] args) {
Koordinate[] x = new Koordinate[1];
x[0] = new Koordinate(9,7);
x[0].display();
}
}
[/CODE]
Das steht im main und soweit klappt es auch.
Werden die Punkte jetzt auch im Array gespeichert? Eig. schon oder, denn wenn ich das Array ausgebe, werden mir zwei Random Zahlen gegeben die innerhalb dieses Bereiches (9,7) liegen.