Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
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.

Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group