Ich versuche mich zur Zeit daran selber Minesweeper zu programmiern.
Vom Compilen hab ich keine Problem erst wenn ich mein Objekt erzeuge bekomme ich einen Fehler.
Idee von mir ist recht simpel man hat eine GAME Klasse die ein FIELDPART [][] enthält. FIELDPART ist dabei eine abstrakte Klasse und hast die Unterklassen MINE und DETECTOR.
für die die den Code brauchen hab ich den mal ein geschrieben
mein Problem ist nun wenn ich ein Objekt der Klasse GAME erstelle fügt er mir die MINEs die ich ja zuerst einsetze wunderbar ein wenn er aber dann anfängt die DETECTORs einzusetzen sagt er mir das ich versuche ein Objekt der falschen Klasse einzusetzen.
Ich schätze mal das er ja dann automatisch sagt, dass das Array ein Array der Klasse MINE ist kann man das irgendwie umgehen?
Vom Compilen hab ich keine Problem erst wenn ich mein Objekt erzeuge bekomme ich einen Fehler.
Idee von mir ist recht simpel man hat eine GAME Klasse die ein FIELDPART [][] enthält. FIELDPART ist dabei eine abstrakte Klasse und hast die Unterklassen MINE und DETECTOR.
Java:
public class GAME
{
FIELDPART[][] field;
...
public GAME(int lenght, int hight, int mines)
{
if(lenght*hight>mines)
{
field=new MINE[lenght][hight];
while(i<mines)
{
l=(int)(Math.random() * lenght-1);
h=(int)(Math.random() * hight-1);
if(field[l][h]==null)
{
field[l][h]=new MINE();
i++;
}
}
for(int i=0;i<lenght;i++)
{
for(int j=0;j<hight;j++)
{
if(field[I][j]==null)
{
field[I][j]=new DETECTOR();
}
}
}
...
public abstract class FIELDPART
{
public abstract void set_minesaround(int x);
}
public class DETECTOR extends FIELDPART{
int minesaround;
public DETECTOR()
{
}
public void set_minesaround(int new_minesaround)
{
minesaround=new_minesaround;
}
}
public class MINE extends FIELDPART
{
boolean detonated;
public MINE()
{
detonated=false;
}
public void set_minesaround(int x)
{
}
}
mein Problem ist nun wenn ich ein Objekt der Klasse GAME erstelle fügt er mir die MINEs die ich ja zuerst einsetze wunderbar ein wenn er aber dann anfängt die DETECTORs einzusetzen sagt er mir das ich versuche ein Objekt der falschen Klasse einzusetzen.
Ich schätze mal das er ja dann automatisch sagt, dass das Array ein Array der Klasse MINE ist kann man das irgendwie umgehen?
Zuletzt bearbeitet: