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 |
|
|
Przesunięty przez: Abadon 20-02-2010, 14:27 |
Sniffer |
Autor |
Wiadomość |
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 14-03-2009, 20:15 Sniffer
|
|
|
A to mój program do "wąchania" . idzie cały czas naprzód i "wącha" co 5 metrów. Gdy znajdzie jakieś złoże do "Znaleziono miejsce na kopalnię" dopisze, czy tytanu, czy uranu. Jak będzie miał przed sobą wodę(lub lawę) skręca, to samo z owadami i przedmiotami. Niestety nie jest doskonały, są sytuacje, kiedy głupieje(np.: owady+woda). Ale mam nadzieję, że się Wam spodoba .
Kod: | extern void object::Sniff()
{
point posprzod,posbokl,posbokr,start;
int alien[],a;
float orient;
a=0;
alien[a++]=AlienAnt;
alien[a++]=AlienSpider;
alien[a++]=AlienWorm;
alien[a++]=AlienWasp;
alien[a++]=AlienQueen;
errmode(0);
while(true)
{
posprzod.x = position.x + cos(orientation) * 8;
posprzod.y = position.y + sin(orientation) * 8;
if(topo(posprzod)<0)
{
posbokl.x = position.x + cos(orientation+90) * 8;
posbokl.y = position.y + sin(orientation+90) * 8;
posbokr.x = position.x + cos(orientation-90) * 8;
posbokr.y = position.y + sin(orientation-90) * 8;
if(topo(posbokl)>0)
{
turn(90);
move(5);
sniff();
}
if(topo(posbokr)>0)
{
turn(-90);
move(5);
sniff();
}
}
if(radar(0,0,50,0,5)!=null)
{
object proba=radar(0);
if(proba.category!=TitaniumSpot and proba.category!=UraniumSpot and proba.category!=PowerSpot)
{
if(radar(0,90,50,0,5)==null)
{
while(radar(0,0,50,0,5)!=null)
{
motor(-1,1);
}
}
if(radar(0,-90,50,0,5)==null)
{
while(radar(0,-90,50,0,5)!=null)
{
motor(1,-1);
}
}
}
}
if(radar(alien,0,180,0,50)!=null)
{
if(radar(alien,90,180,0,50)==null)
{
turn(90);
}
if(radar(alien,-90,180,0,50)==null)
{
turn(-90);
}
}
move(5);
sniff();
if(radar(TitaniumSpot,0,360,-1,5)!=null)message("...tytanu",DisplayInfo);
if(radar(UraniumSpot,0,360,-1,5)!=null)message("...uranu",DisplayInfo);
if(energyCell.energyLevel<0.5)
{
if(energyCell.category==PowerCell)
{
if(radar(PowerStation)!=null)
{
start=position;
orient=orientation;
object q=radar(PowerStation);
goto(q.position);
do
{
wait(0.1);
}
while(energyCell.energyLevel!=1);
goto(start);
}
}
message("Mam połowę atomowego ogniwa!",DisplayWarning);
}
}
} |
PS.: Zapomniałem dodać, że program sam ładuje baterię, tylko nie wiem jak po wróceniu do pozycji wyjściowej przywrócić dawną orientację, może Wy wiecie? |
|
|
|
|
Abadon
Administrator forum Administrator
Pomógł: 3 razy Dołączył: 11 Sie 2008 Posty: 586
|
Wysłany: 14-03-2009, 20:29
|
|
|
Bardzo przemyślany programik.
Cytat: | PS.: Zapomniałem dodać, że program sam ładuje baterię, tylko nie wiem jak po wróceniu do pozycji wyjściowej przywrócić dawną orientację, może Wy wiecie? |
Z tym to mogę podpowiedzieć (żebyś trochę pogłówkował) że odpowiedz znajdziesz w jednym z programów z SatComa. Jeden z nich właśnie dotyczy ładowania baterii i następnie robot po naładowaniu wraca do wcześniejszej pozycji (ale z tym to nie wiem dokładnie ponieważ mam problemu z uruchomieniem Colobota). |
_________________
|
|
|
|
|
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: 14-03-2009, 21:03
|
|
|
Tak, jest to program Recharge2, żeby jeszcze się obrócić w odpowiednie miejsce można użyć parametru this.orientation albo coś podobnego. |
_________________ Bykom STOP
A niechaj narodowie wżdy postronni znają, iż Polacy nie gęsi, iż swój język mają.
|
|
|
|
|
colobotwymiiata
Zjem cię
Twoja ulubiona misja: Swobodna na Krystalii
Pomógł: 6 razy Wiek: 20 Dołączył: 02 Lut 2009 Posty: 329 Skąd: Oleśnica
|
Wysłany: 14-03-2009, 22:28
|
|
|
próbowałem |
|
|
|
|
Knight_in_Fire
Wiek: 27 Dołączył: 29 Sie 2010 Posty: 19 Skąd: Rybnik
|
Wysłany: 29-08-2010, 20:41
|
|
|
Ma też coś na barierki? Bo chcę go odpalić na misji w Ceebocie. |
|
|
|
|
|
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 |
|
|