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
Niszczyciel
Autor Wiadomość
Master
Gość


Wysłany: 31-08-2012, 10:09   Niszczyciel

Mój program dla działa. Robot strzela do wszystkiego co jest w zasięgu.

Kod:

extern void object::Atak()
{
    while(true){
        object p;
        aim(0);
        p = radar();
        if(distance(position,p.position) < 40){
            p = radar();
            turn(direction(p.position));
            fire(0.1);
        }
    }
}


Nie pamiętam jak lepiej ustawić kąt lufy :-( .
 
     
Simbax 
Mod


Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy
Wiek: 22
Dołączył: 07 Sie 2009
Posty: 473
Skąd: z Leszna
Wysłany: 31-08-2012, 10:40   

Taki twardziel, który nawet astronautę zabije. Dobrze, że ma ograniczony zasięg.
_________________
http://projektsimbax.blogspot.com/ <- Taki sobie blog
 
     
Master
Gość


Wysłany: 31-08-2012, 12:42   

Cytat:

Dobrze, że ma ograniczony zasięg.

Edytuj sava to możesz zmniejszyć ograniczenia.

P.S. Mam taki program do mrówki (totalna destrukcja na mapie, no nie?).

Kod:

extern void object::atak()
{
    while(true){
        object p;
        p = radar();
        if(distance(position,p.position) < 50){
            p = radar();
            fire(p.position);
        }
    }
}
 
     
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: 31-08-2012, 13:20   

Wywal tą linijkę p = radar(); przed if'em.
_________________
1Tbps Project && Telecomix Network

 
 
     
Master
Gość


Wysłany: 31-08-2012, 13:27   

Wtedy nie zadziała.
 
     
tomangelo 


Dołączył: 11 Lip 2012
Posty: 32
Skąd: nieJestemBotem
Wysłany: 31-08-2012, 14:55   

adiblol napisał/a:
Wywal tą linijkę p = radar(); przed if'em.


Ale jak ma wtedy zadziałać if, skoro jednym z warunków jest pozycja zapisana właśnie w tej linijce.
Zamiast tego proponowałbym przeniesienie object p; przed pętlę
 
     
Simbax 
Mod


Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy
Wiek: 22
Dołączył: 07 Sie 2009
Posty: 473
Skąd: z Leszna
Wysłany: 31-08-2012, 16:53   

tomangelo napisał/a:
Zamiast tego proponowałbym przeniesienie object p; przed pętlę


O, właśnie. Powód: optymalizacja. Master spójrz na swój program. Pętla wykonuje:
1. Tworzy obiekt p.
2. Wykonuje właściwą robotę.
3. Niszczy obiekt p.
I tak w kółko. O wiele szybciej by było stworzyć ten obiekt RAZ, przed pętlą, a potem zmieniać jego wartości.
_________________
http://projektsimbax.blogspot.com/ <- Taki sobie blog
 
     
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: 01-09-2012, 00:53   

tomangelo napisał/a:

adiblol napisał/a:
Wywal tą linijkę p = radar(); przed if'em.


Ale jak ma wtedy zadziałać if, skoro jednym z warunków jest pozycja zapisana właśnie w tej linijce.
Zamiast tego proponowałbym przeniesienie object p; przed pętlę
Miałem napisać "za if'em"...
_________________
1Tbps Project && Telecomix Network

 
 
     
Krzysztof 
Master


Twoja ulubiona misja: ostatnia
Wiek: 18
Dołączył: 01 Wrz 2012
Posty: 13
Skąd: nieJestemBotem
Wysłany: 01-09-2012, 09:55   

Dobra już niech ci będzie.
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

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