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 |
|
|
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)
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ą.
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 ). |
_________________ 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. |
_________________ 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 |
_________________ 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 )
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 Spróbuję jeszcze poprawić
edit: No i poprawiony |
_________________ Windows w szacie Linuxa
|
|
|
|
|
|
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
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|