J
javaHK
Gast
hi,
habe mich mal an die zweite Aufgabe des Informatikwettbewerbs herangewagt, doch bin jetzt auf Probleme
gestoschen beim Durchgehen des Labyrinths.
Hier mein Code
Wie kann ich mich jetzt durch das Labyrinth bewegen? Also wie kann ich einen Schritt vorwärts machen dann die Wände überprüfen und dann nach z.B. links gehen? Kann ich das mit dem Point Objekt machen, also das dieses immer verschoben wird?
Welche Suchstrategie könnte ich anwenden um durch das Labyrinth zu kommen?
http://www.bwinf.de/aufgaben/runde1/bwi201/html/aufgabe_2.html Der Link der Aufgabenstellung
[Edit by Beni: URL reparriert]
habe mich mal an die zweite Aufgabe des Informatikwettbewerbs herangewagt, doch bin jetzt auf Probleme
gestoschen beim Durchgehen des Labyrinths.
Hier mein Code
Code:
public class Ludwig {
static int goon =0;
static int ziel = 14;
static Point mp = new Point (3,3);
public static BitSet wände (int k) // Methode damit man die Wände erkennen kann. Wenn z.B. der Wert
7 übergeben wird, dann werden die ersten drei Bits auf true gesetzt.
2 hoch 0 + 2 hoch 1 + 2 hoch2 = 7
linke Wandseite = 3
Obere Wandseite = 2
Untere Wandseite =1
rechte Wandseite =0
Wenn dann jetzt in diesem zweidimensionalen Array die 7 auftaucht, weiß ich das links, recht und unten eine Wand ist.
{
BitSet bs = new BitSet();
int numb =0;
for (int i=4;i>=0;i--)
{
if (Math.pow(2,i)<= (k-numb))
{
bs.set( i);
numb = (int) (numb+Math.pow(2,i));
}
if (numb==k)
break;
}
System.out.println (bs);
return bs;
}
public static void main (String args [])
{
int Feldyx [][] = { {12,6,5,13}, //Habe erst einmal ein kleineres Labyrinth genommen.
{8,5,9,9},
{9,11,8,1},
{11,14,3,11}
};
int Startpos = 11;
Point p [] = new Point [16];
for (int i =0;i<4;i++) Hier wird ermittelt, wo die Startposition liegt, aber noch nicht festgelegt um welche 11 es sich genau handelt.
{
for (int x=0; x<4;x++)
{
if (Feldyx[i][x]== Startpos)
{
p[goon] = new Point (x,i);
System.out.println(p[goon]);
goon++;
}
}
}
//wände(3);
BitSet wand = new BitSet();
wand = wände (14); // In der Var befinden sich die Wände für die Zahl in Klammern
//if (!wand.get( ))
do
{
}while (mp.x==2 && mp.y ==1); Ziel, hier steht das Futter der Maus, also an diesen Koordinaten
}
}
Wie kann ich mich jetzt durch das Labyrinth bewegen? Also wie kann ich einen Schritt vorwärts machen dann die Wände überprüfen und dann nach z.B. links gehen? Kann ich das mit dem Point Objekt machen, also das dieses immer verschoben wird?
Welche Suchstrategie könnte ich anwenden um durch das Labyrinth zu kommen?
http://www.bwinf.de/aufgaben/runde1/bwi201/html/aufgabe_2.html Der Link der Aufgabenstellung
[Edit by Beni: URL reparriert]