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
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
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 :P , 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  
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012