Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
|
Forum - Polski Portal COLOBOTa |
|
|
Lot |
Autor |
Wiadomość |
Revis
Gitarzysta
Wiek: 22 Dołączył: 19 Cze 2010 Posty: 1
|
Wysłany: 19-06-2010, 15:12 Lot
|
|
|
Witam, jestem dość nowy w to, grałem kiedyś sporo pare lat temu, teraz znów powróciłem i mam problem, robiłem sobie programik, i czasami bot latajacy praktycznie sie nie ruszal probojac wjechac na gorke zamiast podleciec, narazie zrobilem zeby program sie nie przerywal podczas gdy sie "zatnie" bo w koncu mu sie udaje dojsc do celu ale zuzywa prawie cala baterie a to nie wielki dystans , nie mam pojecia jak zrobic aby Transporter Latajacy, przez program uniósł sie na 2 metry, bez zadnego celu, w sensie zeby zrobil to jak turn (90), albo move (5). |
|
|
|
|
Bartek c++
Twoja ulubiona misja: Tropica - Czas na atak
Pomógł: 6 razy Wiek: 20 Dołączył: 07 Lip 2009 Posty: 390
|
Wysłany: 19-06-2010, 15:39
|
|
|
hmm z tego co wiem latające boty nie mogąlecieć w bok i do przodu na raz ...
dam propozycję.
Kod: | while ( true )
{
float a,b;
a = position.z;
b = position.z + 2;
jet(1);
if (a < b )
{
break;
}
} |
Program wznosi bota na 2 metry i wyłącza program.
a to aby wszedł na górke.
Kod: | while ( true )
{
float a,b;
a = position.z;
b = position.z + 2;
jet(1);
if (a < b )
{
move(5);
break;
}
} |
|
_________________
|
Ostatnio zmieniony przez Bartek c++ 19-06-2010, 17:01, w całości zmieniany 1 raz |
|
|
|
|
adiblol
Administrator forum FLOSS FTW!
Twoja ulubiona misja: porównywanie formatów audio
Pomógł: 18 razy Dołączył: 21 Kwi 2008 Posty: 1313 Skąd: pokój odsłuchowy
|
Wysłany: 19-06-2010, 16:43
|
|
|
Bartek c++: widzę że nie przetestowałeś programu. Nie ma szans na zadziałanie:
1. a = b to instrukcja przypisania a nie porównania!!!
2. gdyby zamienić to na a == b to i tak by nie działało, lepiej dać a < b lub a > b, zależnie od potrzeb. |
_________________ 1Tbps Project && Telecomix Network
|
|
|
|
|
Berserker
Dark Ness
Twoja ulubiona misja: Ofrenia
Pomógł: 16 razy Wiek: 24 Dołączył: 24 Mar 2009 Posty: 496 Skąd: Bigos
|
Wysłany: 19-06-2010, 20:22
|
|
|
Nikt tu sie nie postaral, zeby wytlumaczyc jak ogolnie sie lata...
Jest sobie funkcja jet(). Steruje ona moca silnika odrzutowego, w nawiasach podaje sie jaka czesc mocy silnika ma byc wykorzystana i czy ma robot leciec w gore czy w dol. Wartosci ujemne spowoduja opadanie, a dodatnie - domysl sie sam.
A program Bartka nie ma sensu, batonika dostanie ten, kto sie domysli dlaczego. |
_________________
|
|
|
|
|
COLOBOT
Administrator sieci Założyciel portalu
Twoja ulubiona misja: Obie na Orfenii
Pomógł: 1 raz Dołączył: 07 Lut 2008 Posty: 353 Skąd: Jarocin
|
Wysłany: 19-06-2010, 21:29
|
|
|
Berserker napisał/a: | A program Bartka nie ma sensu, batonika dostanie ten, kto sie domysli dlaczego. |
Przypisanie wartości a i b powinno być przed pętlą, bo w obecnym programie po każdej iteracji program ustala nowe współrzędne docelowe i w konsekwencji leci "do nieba".
Poza tym a jest zawsze mniejsze od b , zamiast a powinno być position.z
No i przydałoby się jeszcze wait(0.1), żeby procka nie przemęczać. Aha, jeszcze silnik odrzutowy trzeba wyzerować.
Poprawny i zoptymalizowany program wygląda tak:
Kod: | float b;
b = position.z + 2;
jet(1);
while (position.z < b) wait(0.1);
jet(0); |
|
_________________ Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
|
Ostatnio zmieniony przez COLOBOT 19-06-2010, 21:37, w całości zmieniany 3 razy |
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|