|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Programy - Moje odkrycie ^^
Kubus11 - 26-02-2008, 21:50 Temat postu: Moje odkrycie ^^ Dzisiaj grając w Colobot'a doznałem oświecenia. Pewnie kilku z Was nie wiedząc co zrobić, żeby robot poczekał na np. wyprodukowanie ogniwa atomowego, wpisywało wait(x); . radar(NuclearCell, 0, 45, 0, 10); nie działało w tym przypadku. Ale ja odkryłem dlaczego. Przedstawię to na przykładzie wymienionego powyżej ogniwa atomowego i elektrowni.
Kod: | extern void object::Uranium()
{
object item1, item2;
item2 = radar(NuclearPlant);
item1 = radar(UraniumOre);
goto(item1.position);
grab();
goto(item2.position);
drop();
move(-2.5);
do
{
wait(1);
}
while (item2.energyCell.category != NuclearCell);
} |
Chodzi o to, że robot wykrywa ogniwo, jako baterię budynku, a nie obiekt leżący swobodnie na ziemi, więc radar tego nie wykrywał. Gdy na to wpadłem, napisanie tego programu było banalne.
Ach, jak ja lubię te oświecenia ^^
Pozdro
Tomesy - 26-02-2008, 21:59 Temat postu: RE: Moje odkrycie ^^ Ja wiedziałem dlaczego radar nie wykrywa baterii, ale nie przyszło mi do głowy takie rozwiązanie Dobra robota
COLOBOT - 26-02-2008, 22:02 Temat postu: RE: Moje odkrycie ^^ No to gratuluję Ja rozwiązałem ten problem w inny sposób. Wpisałem instrukcję Kod: | while (blad != 0)
{
blad = grab();
} |
Powyższy program nie działa, ale pokazuje jak ja to zrobiłem. Po prostu robot próbuje zabrać ogniwo do momentu gdy zostanie wyprodukowane i już mu się to uda.
Kubus11 - 26-02-2008, 22:04 Temat postu: RE: Moje odkrycie ^^ Nie wiedziałem, że aż taki fajny ten mój program ^^ Hehe
YanPL - 27-02-2008, 09:55 Temat postu: RE: Moje odkrycie ^^ Kubus - program fajny; z tym że niepotrzebnie szukasz po raz kolejny radarem Nuclear planta skoro był w item2
mr. admin - na pewno wcześniej było errmode(0); hę?
Kubus11 - 27-02-2008, 12:49 Temat postu: RE: Moje odkrycie ^^ Ahh tak, nie zauważyłem
COLOBOT - 27-02-2008, 16:55 Temat postu: RE: Moje odkrycie ^^
Cytat: | YanPL napisał/a:
mr. admin - na pewno wcześniej było errmode(0); hę? |
Tak, musi być errmode, bo inaczej program by wywalił błąd.
mrowek - 02-07-2008, 09:45 Temat postu: RE: Moje odkrycie ^^ ja to zauważyłem z rudą tytanu z kopalni.:D bo jak wpisałem TitaniumOre to nie chciało znaleźć, a jak Derrick to już tak
Andreas - 02-07-2008, 19:08 Temat postu: RE: Moje odkrycie ^^ Hę?:| To dziwne, bo u mnie znajduje rudę tytanu z kopalni...
mrowek - 02-07-2008, 19:48 Temat postu: RE: Moje odkrycie ^^ u mnie nie znajdywało:(
lukas_j - 04-07-2008, 17:16 Temat postu: RE: Moje odkrycie ^^ i u mnie tez... pozatym po co wpisywac zeby czekal na wyprodukowanie. Lepiej wpisac wait(30); a potem grab();
jest prosciej
mrowek - 04-07-2008, 18:21 Temat postu: RE: Moje odkrycie ^^ to wait(30); jest bez sensu po to za długo czeka
colobotwymiiata - 03-02-2009, 18:18 Temat postu: RE: Moje odkrycie ^^ Super!!:o Sam bym na to nie wpadł:)
|
|