Jessen
Bekanntes Mitglied
Hi Leute, will ne Ameisenklasse in Java programieren, die sich zuerst zum World nullpunkt begibt, und dann schleifen von oben nach unten abläuft (suchen)
hab den code soweit auch fertig, aber ich bekomme leider die makierten Werte, die ich für die Abfragenkette brauch nich zurückgesetzt (denk ich ma, weil er macht die ersten beiden schritte wie gewünscht, danach gehts ab nach rechts wie im ersten schritt, nur ohne limit)
(is ne vorgefertigte Klasse ausm Info unterricht, also nich wundern wenn da sachen sind ich ich nich brauch....)
hab den code soweit auch fertig, aber ich bekomme leider die makierten Werte, die ich für die Abfragenkette brauch nich zurückgesetzt (denk ich ma, weil er macht die ersten beiden schritte wie gewünscht, danach gehts ab nach rechts wie im ersten schritt, nur ohne limit)
Code:
import greenfoot.*;
public class Ant extends Creature
{
private int direction;
private int rechtsSchritte;
private int zumNullpunkt;
private int vertikaleBewegung;
private int horizontaleBewegung;
public Ant()
{
this(null);
}
public Ant(AntHill home)
{
super();
setHomeHill(home);
setDirection(0);
zumNullpunkt = 214;
vertikaleBewegung = 214;
horizontaleBewegung = 10;
}
public void act()
{
if (zumNullpunkt > 0)
{
walkNorth();
walkWest();
zumNullpunkt--;
}
else
{
if (horizontaleBewegung > 0)
{
walkEast();
horizontaleBewegung--;
}
else
{
if (vertikaleBewegung > 0)
{
walkSouth();
vertikaleBewegung--;
}
else
{
[COLOR="Red"]horizontaleBewegung = 10;[/COLOR]
if (horizontaleBewegung > 0)
{
walkEast();
horizontaleBewegung--;
}
else
{
[COLOR="Red"]vertikaleBewegung = 214;[/COLOR]
if (vertikaleBewegung > 0)
{
walkNorth();
vertikaleBewegung--;
}
else
{
[COLOR="Red"]horizontaleBewegung = 10;[/COLOR]
[COLOR="Red"]vertikaleBewegung = 214;[/COLOR]
}
}
}
}
}
}
public void walkEast()
{
walkDirection(0);
}
public void walkSouth()
{
walkDirection(1);
}
public void walkWest()
{
walkDirection(2);
}
public void walkNorth()
{
walkDirection(3);
}
public void walkDirection(int direction)
{
setDirection(direction);
walk();
}
public int getDirection()
{
return direction;
}
private void setDirection(int direction)
{
if ((direction >= 0) && (direction <= 3)) {
this.direction = direction;
}
switch(direction) {
case 0 :
setSpeed(10, 0);
setRotation(0);
break;
case 1 :
setSpeed(0, 10);
setRotation(90);
break;
case 2 :
setSpeed(-10, 0);
setRotation(180);
break;
case 3 :
setSpeed(0, -10);
setRotation(270);
break;
default :
break;
}
}
}