Hi,
ich habe folgendes Program geschrieben (ist noch nicht fertig). Das Problem ist, dass er bei der Funktion step die mir die Fehlermeldung: Cannot find variable spieler.
ich habe folgendes Program geschrieben (ist noch nicht fertig). Das Problem ist, dass er bei der Funktion step die mir die Fehlermeldung: Cannot find variable spieler.
Code:
import java.lang.String;
public class BoulderDash {
static String[] scene ={"MMMMMMM",
"A U O M",
"M O M",
"M O M",
"MMMMOMM",
"M E M",
"M S M",
"MMMMMMM"};//Spielfeld
static char[][] feld = new char[scene.length][scene[0].length()];
static void umwandeln(){
//Spielfeld in ein Char Array legen
for (int i = 0; i < scene.length; i++)
for(int j=0; j <scene[i].length();j++)
feld[i][j]=scene[i].charAt(j);
}
public void objekte(){
int u=0; //Anzahl der Ungeheuer
int o=0; //Anzahl der Stein
for(int i=0; i<feld.length;i++)
for(int j=0; j<feld[i].length;j++){
if(feld[i][j]=='U')//Ungeheuer zählen
++u;
if(feld[i][j]=='O')//Steine zählen
++o;
}
Stein[] stein=new Stein[o]; //Speicherplatz für die Onjekte reservieren
Ungeheuer[] ungeheuer=new Ungeheuer[u];
o=0;
u=0;
for(int i=0; i<feld.length;i++) //Arrays erzeugen und mit Inhalten füllen
for(int j=0; j<feld[i].length;j++){
if(feld[i][j]=='U'){//Ungeheuer Objekte erzeugen
ungeheuer[u]=new Ungeheuer(i,j);
u++;}
if(feld[i][j]=='O'){//Stein Objekte erzeugen
stein[o]=new Stein(i,j);
o++;}
if(feld[i][j]=='S'){//Spieler Objekt erzeugen
Spieler spieler=new Spieler(i,j);}
}
}
public void update(){
for(int i=0;i<scene[i].length();i++)
{
for(int j=0;j<feld.length;i++){
System.out.print(feld[i][j]);
}
System.out.println("");
}}
public class Stein{
int []pos;
public Stein(int i,int j){
int []pos=new int[2];
pos[0]=pos[i];
pos[1]=pos[j];
}}
public class Spieler{
int []pos=new int[2];
public Spieler(int i, int j){
pos[0]=pos[i];
pos[1]=pos[j];
}}
public class Ungeheuer{
int []pos=new int[2];
public Ungeheuer(int i, int j){
pos[0]=pos[i];
pos[1]=pos[j];
}}
public void step(int dir){
int i,j;
i=spieler.pos[0];
j=spieler.pos[1];
if(dir==0){}
if(dir==1){}
if(dir==2){}
if(dir==3){}
}
public void game(int[] dirs){
umwandeln(); //Spielfeld umwandeln
objekte(); //Objekte im Spielfeld suchen
for(int i=0;i<dirs.length;i++){
step(dirs[i]); //Schritte der Objekte machen
update(); //Neue Spielsituation auf der Konsole ausgeben
try {Thread.sleep(500);} //Spiel langsamer machen
catch (InterruptedException e){}
}
}
}