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
OsaDead
Autor Wiadomość
Emxx52 
W istocie


Twoja ulubiona misja: Tropica
Dołączył: 04 Kwi 2010
Posty: 207
Skąd: Z istotnych pobudek
Wysłany: 06-11-2010, 22:14   OsaDead

Właśnie napisałem prosty program do zabijania os. A oto on:

Kod:
extern void object::OsaDead()
{
object item;
float angle,ab;
aim(0);

while (true)
{
while (radar(AlienWasp, 0, 360, 0, 20) == null)
{
item = radar(AlienWasp);
turn(direction(item.position));
motor(1,1);

jet(0);
if(position.z-1 > item.position.z)
{
jet(-0.3);
point a=this.position;
point b=item.position;
aim(0);
aim(distance(position,item.position)-50);
}

ab=item.position.z-position.z;


if(position.z-topo(item.position)>0.7 or
position.z+topo(item.position)<0.7)
{
aim(0);
}

if(position.z+1 < item.position.z)
{
point a=this.position;
point b=item.position;
jet(0.7);
aim(0);
aim(+50);
}

if(position.z!=item.position.z+ab or position.z!=item.position.z-ab and distance(position,item.position)<15)
{
jet(ab);

}

if(distance(position,item.position)<15)
{
motor(0,0);
jet(ab);
goto(position.x, position.y, item.position.z);
turn(direction(item.position));
}
wait(0.2);


}
item = radar(AlienWasp);
angle = direction(item.position);
turn(angle);
if (angle < 0)
{
motor(1,0.5);
}
else
{
motor(0.5,1);
}
wait(0.01);
fire(0.1);

}
}

Podoba się?
edit: Program poprawiony
edit2: Kolejna poprawka
_________________
Windows w szacie Linuxa
Ostatnio zmieniony przez Emxx52 11-11-2010, 19:45, w całości zmieniany 5 razy  
 
     
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: 07-11-2010, 01:35   

Niestety, ale musze cie powiadomic, ze program solucyjny z 2 cwiczenia z zestrzeliwywania os jest skutezniejszy :)
A teraz czepianie sie teoretyki:
1) Brak uwzglednienia sytuacji w ktorej chwilowo os nie ma
2)
Kod:
object    item;

Po cholere tyle spacji?
3)
Kod:
aim(distance(a,b)-50);
i
Kod:
aim(distance(a,b)+50);

Tjaaaa...
4) Nie operujesz wysokoscia i lufa na biezaco podczas celowania, pare razy osa zmienila poziom lekko i zatoczyla pare kolek wokol robota - z 10% ogniwa atomowego poszlo
_________________
 
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
  Wysłany: 07-11-2010, 08:10   Drobne poprawki

Berserker napisał/a:
program solucyjny z 2 ćwiczenia z zestrzeliwania os jest skuteczniejszy

Zgadzam się z tobą. :mrgreen:

A do programu:
Emxx52, czyżby nie wiesz, że this.position to to samo co position. :/
Przy item.position jest już OK.

Kod:
...
item = radar(AlienWasp);
angle = direction(item.position);
turn(angle);
fire(0.1);
if (angle < 0)
{
motor(1,0.5);
}
else
{
motor(0.5,1);
}
...


Lepiej by było:
Kod:
...
item = radar(AlienWasp);
angle = direction(item.position);
turn(angle);
if (angle < 0)
{
motor(1,0.5);
}
else
{
motor(0.5,1);
}
wait(0.01);
fire(0.1);
...


Aha, na początku popracuj se nad programami do zabijania mrówek(są łatwiejsze :D :) ).
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
Emxx52 
W istocie


Twoja ulubiona misja: Tropica
Dołączył: 04 Kwi 2010
Posty: 207
Skąd: Z istotnych pobudek
Wysłany: 07-11-2010, 13:53   

Korniszon napisał/a:
Emxx52, czyżby nie wiesz, że this.position to to samo co position.
Wiem, ale this.positon ladniej wygląda. A tych spacji to nie dawałem tylko już były. :mrgreen:
_________________
Windows w szacie Linuxa
 
     
Korniszon 
Me Gusta: PPC


Twoja ulubiona misja: Spying...
Pomógł: 1 raz
Wiek: 17
Dołączył: 01 Paź 2010
Posty: 108
Skąd: Stamtąd, gdzie ty.
Wysłany: 07-11-2010, 18:26   

Aha... :/

Emxx52 napisał/a:
ladniej

Nie powinno być ładniej :?:
_________________
Nazywajcie mnie KL582 (nick w Minecraft)
 
     
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: 07-11-2010, 18:48   

@up a co za roznica?
_________________
 
 
     
Emxx52 
W istocie


Twoja ulubiona misja: Tropica
Dołączył: 04 Kwi 2010
Posty: 207
Skąd: Z istotnych pobudek
Wysłany: 07-11-2010, 21:29   

@topic: Program poprawiony :-D
_________________
Windows w szacie Linuxa
 
     
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: 07-11-2010, 22:32   

Twoj program ma 1 zalete: dzieki niemu przestalem uwazac swoj program za beznadziejny bo potrafil spudlowac wiecej niz 2 razy i zmarnowac wiecfej niz 3% ogniwa atomowego na II cwiczenie z osami :)
Odpusc sobie machanie lufa bo to cos ci slabo idzie (albo jesli wiesz o co chodzi z funkcjami trygonometrycznymi wyprowadz sobie wzor na to). Skup sie na wyrownywaniu wysokosci z osa - raz robot zmarnowal 50% ogniwa na 1 ose, bo znalazla sie w zasiegu kiedy on byl z 20m pod nia i zaczal strzelac nie wyrownujac wysokosci, strzelal przez jakas minute :P )

Kod:
if(position.z==item.position.z+0.5 or position.z==item.position.z-0.5)

Jesli to ma byc sprawdzenie, czy sa na rownej wysokosci, to troche zle to wykombinowales bo warunek zwroci wartosc false jesli np bedzie position.z == item.position.z
_________________
 
 
     
Emxx52 
W istocie


Twoja ulubiona misja: Tropica
Dołączył: 04 Kwi 2010
Posty: 207
Skąd: Z istotnych pobudek
Wysłany: 10-11-2010, 20:55   

gdy wyłączyłem kompa to dopiero przypomniałem sobie o kilku błędach :mrgreen: Spróbuję jeszcze poprawić :-D

edit: No i poprawiony
_________________
Windows w szacie Linuxa
 
     
Wyświetl posty z ostatnich:   
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum

Wersja do druku

Skocz do:  

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