|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Problemy [programowanie] - Robot sługa
RemixN - 26-12-2011, 13:19 Temat postu: Robot sługa Witam! Chcę, aby robot(WheeledGrabber) przynosił kostkę tytanu obok ludzika(Me). Gdzie jest błąd?
Kod: |
extern void object::sluga()
{
object ludek;
ludek=radar(Me);
object obj;
obj=radar(Titanium);
if(obj!=null){
if(distance2d(position,ludek.position)<20){
turn(direction(obj.position));
move(distance(obj.position,position)-1);
grab();
turn(direction(ludek.position));
move(distance(position,ludek.position));
drop();
}
}
else{
message("Brak tytanu");
}
}
|
Mrocza - 26-12-2011, 13:50
Musisz napisać w którym miejscu dokładnie masz błąd.
Ale chyba tutaj masz błąd:
Kod: | move(distance(position,ludek.position));
drop(); | Bo miejsce jest zajęte. Musisz napisać na przykład tak:
Kod: | move(distance(position,ludek.position)-2);
drop(); |
Polecam Ci jednak korzystanie z goto.
Berserker - 26-12-2011, 13:56
Kod: | extern void object::sluga()
{
object ludek;
ludek=radar(Me);
object obj;
obj=radar(Titanium);
if(obj!=null)
{
if(distance2d(position,ludek.position)<20)
{
goto(obj.position);
grab();
turn(direction(ludek.position));
move(distance(position,ludek.position)-3);
drop();
}
}
else
{
message("Brak tytanu");
}
} |
Nie chcialo mi sie bawic w zapisywanie, jak wkleisz do Colobota to bedzie wygladalo normalnie.
Ogolnie to zamienilem jedno turn() i move() na goto(), a w drugim move() dodalem -3.
RemixN - 26-12-2011, 13:56
Jak korzystać z goto? Pisze, że miejsce docelowe jest niedostępne.
Berserker - 26-12-2011, 13:57
Bo to zalezy od tego, gdzie jest miejsce docelowe. Jak miejsce docelowe znajduje sie np. na innej planecie lub gdzies gdzie nie da sie wjechac, to wywala blad, ze niedostepne.
|
|