Hallo,
ich hab eine Aufgabe erhalten, nur leider keinen blassen schimmer wie es geht:
Ergänzen Sie „Labyrinth“ um die Möglichkeit, das Labyrinth aus einer Textdatei zu lesen.
„Labyrinth“:
[JAVA=42]
import Baustelle.physical.*;
/**
* Write a description of class Labyrinth here.
*
* @author Ulf Wagner
* @version 1.0
*/
public class Labyrinth
{
/*
* c - Container
* w - Gegangener Weg
* x - Aktuelle Position
*/
// laby ist ein 2-Dimensionales Feld von Datentyp String
String[][] laby;
// contis ist ein 2-Dimensionales Feld vom Datentyp Baucontainer;
Baucontainer[][] contis;
/**
* Constructor for objects of class Labyrinth
*/
public Labyrinth()
{
// Größe des Feldes laby festlegen
laby = new String[10][10];
// Festlegen der Feldgröße
contis = new Baucontainer[10][10];
for (int i=0; i<10; i++) {
for (int j=0;j<10;j++) {
contis[j] = new Baucontainer(50+i*40,50+j*40,40,40);
}}
init();
}
/**
* initialisiert das Labyrinth;
*/
public void init ()
{
for (int i=0; i < 10; i++)
{
for (int j=0; j<10;j++) {
laby[j] = "";
contis[j].setVisible(false);
}
}
for (int i=0; i < 10; i++)
{
laby[0] = "c";
laby[9] = "c";
laby[0] = "c";
laby[9] = "c";
}
//laby[5][3] ="c";
laby[1][1] = "c";
//laby[1][2] = "c";
laby[1][3] = "c";
laby[1][4] = "c";
laby[1][5] = "c";
laby[1][6] = "c";
//laby[1][7] = "c";
laby[1][8] = "c";
laby[2][1] = "c";
//laby[2][2] = "c";
laby[2][3] = "c";
laby[2][4] = "c";
//laby[2][5] = "c";
//laby[2][6] = "c";
//laby[2][7] = "c";
laby[2][8] = "c";
//laby[3][1] = "c";
//laby[3][2] = "c";
//laby[3][3] = "c";
laby[3][4] = "c";
//laby[3][5] = "c";
laby[3][6] = "c";
laby[3][7] = "c";
laby[3][8] = "c";
laby[4][1] = "c";
laby[4][2] = "c";
//laby[4][3] = "c";
laby[4][4] = "c";
//laby[4][5] = "c";
//laby[4][6] = "c";
//laby[4][7] = "c";
//laby[4][8] = "c";
laby[5][1] = "c";
laby[5][2] = "c";
//laby[5][3] = "c";
laby[5][4] = "c";
laby[5][5] = "c";
laby[5][6] = "c";
laby[5][7] = "c";
//laby[5][8] = "c";
laby[6][1] = "c";
/*laby[6][2] = "c";
laby[6][3] = "c";
laby[6][4] = "c";
laby[6][5] = "c";
laby[6][6] = "c";
laby[6][7] = "c";
laby[6][8] = "c";*/
//laby[7][1] = "c";
//laby[7][2] = "c";
laby[7][3] = "c";
laby[7][4] = "c";
laby[7][5] = "c";
laby[7][6] = "c";
laby[7][7] = "c";
laby[7][8] = "c";
laby[8][1] = "c";
/*laby[8][2] = "c";
laby[8][3] = "c";
laby[8][4] = "c";
laby[8][5] = "c";
laby[8][6] = "c";
laby[8][7] = "c";
laby[8][8] = "c";*/
//laby[0][7] = "";
//laby[9][2] = "";
zeichne();
}
/**
* Zeichnet das Labyrinth
*
*/
public void zeichne()
{
for (int i=0; i <10; i++) {
for (int j=0;j<10;j++) {
if (laby[j].equals("c"))
{
contis[j].setVisible(true);
}
if (laby[j].equals("x"))
{
contis[j].setFarbe(java.awt.Color.GREEN);
contis[j].setVisible(false);
contis[j].setVisible(true);
}
if (laby[j].equals("w"))
{
contis[j].setFarbe(java.awt.Color.RED);
contis[j].setVisible(false);
contis[j].setVisible(true);
}
}
}
}
/**
* findet den Weg durch das Labyrinth von gegeben Start zum Ziel
*/
public void findeWeg(int startX, int startY, int zielX, int zielY)
{
laby[startX][startY] = "x";
zeichne();
laby[startX][startY] = "w";
boolean amZiel = false;
if ((startX==zielX) && (startY==zielY)) amZiel = true;
if (!amZiel)
{
// gehe Links
if (laby[startX-1][startY].equals(""))
findeWeg(startX-1,startY,zielX,zielY);
// gehe nach oben
if (laby[startX][startY-1].equals(""))
findeWeg(startX,startY-1,zielX,zielY);
// gehe nach rechts
if (laby[startX+1][startY].equals(""))
findeWeg(startX+1,startY,zielX,zielY);
// gehe nach unten
if (laby[startX][startY+1].equals(""))
findeWeg(startX,startY+1,zielX,zielY);
}
}
}
[/code]
Irgendwelche Ideen wie man da rangeht?
ich hab eine Aufgabe erhalten, nur leider keinen blassen schimmer wie es geht:
Ergänzen Sie „Labyrinth“ um die Möglichkeit, das Labyrinth aus einer Textdatei zu lesen.
„Labyrinth“:
[JAVA=42]
import Baustelle.physical.*;
/**
* Write a description of class Labyrinth here.
*
* @author Ulf Wagner
* @version 1.0
*/
public class Labyrinth
{
/*
* c - Container
* w - Gegangener Weg
* x - Aktuelle Position
*/
// laby ist ein 2-Dimensionales Feld von Datentyp String
String[][] laby;
// contis ist ein 2-Dimensionales Feld vom Datentyp Baucontainer;
Baucontainer[][] contis;
/**
* Constructor for objects of class Labyrinth
*/
public Labyrinth()
{
// Größe des Feldes laby festlegen
laby = new String[10][10];
// Festlegen der Feldgröße
contis = new Baucontainer[10][10];
for (int i=0; i<10; i++) {
for (int j=0;j<10;j++) {
contis[j] = new Baucontainer(50+i*40,50+j*40,40,40);
}}
init();
}
/**
* initialisiert das Labyrinth;
*/
public void init ()
{
for (int i=0; i < 10; i++)
{
for (int j=0; j<10;j++) {
laby[j] = "";
contis[j].setVisible(false);
}
}
for (int i=0; i < 10; i++)
{
laby[0] = "c";
laby[9] = "c";
laby[0] = "c";
laby[9] = "c";
}
//laby[5][3] ="c";
laby[1][1] = "c";
//laby[1][2] = "c";
laby[1][3] = "c";
laby[1][4] = "c";
laby[1][5] = "c";
laby[1][6] = "c";
//laby[1][7] = "c";
laby[1][8] = "c";
laby[2][1] = "c";
//laby[2][2] = "c";
laby[2][3] = "c";
laby[2][4] = "c";
//laby[2][5] = "c";
//laby[2][6] = "c";
//laby[2][7] = "c";
laby[2][8] = "c";
//laby[3][1] = "c";
//laby[3][2] = "c";
//laby[3][3] = "c";
laby[3][4] = "c";
//laby[3][5] = "c";
laby[3][6] = "c";
laby[3][7] = "c";
laby[3][8] = "c";
laby[4][1] = "c";
laby[4][2] = "c";
//laby[4][3] = "c";
laby[4][4] = "c";
//laby[4][5] = "c";
//laby[4][6] = "c";
//laby[4][7] = "c";
//laby[4][8] = "c";
laby[5][1] = "c";
laby[5][2] = "c";
//laby[5][3] = "c";
laby[5][4] = "c";
laby[5][5] = "c";
laby[5][6] = "c";
laby[5][7] = "c";
//laby[5][8] = "c";
laby[6][1] = "c";
/*laby[6][2] = "c";
laby[6][3] = "c";
laby[6][4] = "c";
laby[6][5] = "c";
laby[6][6] = "c";
laby[6][7] = "c";
laby[6][8] = "c";*/
//laby[7][1] = "c";
//laby[7][2] = "c";
laby[7][3] = "c";
laby[7][4] = "c";
laby[7][5] = "c";
laby[7][6] = "c";
laby[7][7] = "c";
laby[7][8] = "c";
laby[8][1] = "c";
/*laby[8][2] = "c";
laby[8][3] = "c";
laby[8][4] = "c";
laby[8][5] = "c";
laby[8][6] = "c";
laby[8][7] = "c";
laby[8][8] = "c";*/
//laby[0][7] = "";
//laby[9][2] = "";
zeichne();
}
/**
* Zeichnet das Labyrinth
*
*/
public void zeichne()
{
for (int i=0; i <10; i++) {
for (int j=0;j<10;j++) {
if (laby[j].equals("c"))
{
contis[j].setVisible(true);
}
if (laby[j].equals("x"))
{
contis[j].setFarbe(java.awt.Color.GREEN);
contis[j].setVisible(false);
contis[j].setVisible(true);
}
if (laby[j].equals("w"))
{
contis[j].setFarbe(java.awt.Color.RED);
contis[j].setVisible(false);
contis[j].setVisible(true);
}
}
}
}
/**
* findet den Weg durch das Labyrinth von gegeben Start zum Ziel
*/
public void findeWeg(int startX, int startY, int zielX, int zielY)
{
laby[startX][startY] = "x";
zeichne();
laby[startX][startY] = "w";
boolean amZiel = false;
if ((startX==zielX) && (startY==zielY)) amZiel = true;
if (!amZiel)
{
// gehe Links
if (laby[startX-1][startY].equals(""))
findeWeg(startX-1,startY,zielX,zielY);
// gehe nach oben
if (laby[startX][startY-1].equals(""))
findeWeg(startX,startY-1,zielX,zielY);
// gehe nach rechts
if (laby[startX+1][startY].equals(""))
findeWeg(startX+1,startY,zielX,zielY);
// gehe nach unten
if (laby[startX][startY+1].equals(""))
findeWeg(startX,startY+1,zielX,zielY);
}
}
}
[/code]
Irgendwelche Ideen wie man da rangeht?
Zuletzt bearbeitet von einem Moderator: