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 |
|
|
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
|
|
|
|
|
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. |
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|