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:35 |
Nowi, lepsi przeciwnicy. |
Autor |
Wiadomość |
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: 25-03-2009, 18:25 Nowi, lepsi przeciwnicy.
|
|
|
Jak juz kazdy zauwazyl wszyscy miela tego colobota na czesci i skladaja z niego czesc druga. W drugiej czesci raczej przeciwnicy nie powinni byc zaprogramowani "Znajdz i zostan zniszczonym". Wiec moze by jakies programy napisac dla mrowek etc?
Kod: | extern void object::Attack( )
{
int list[], i;
object p,pp;
float dist,dir,r;
point dest,lastPos;
errmode(0); // ne stoppe pas si erreur
while ( ismovie() != 0 ) wait(1);
i = 0;
list[i++] = WingedGrabber;
list[i++] = TrackedGrabber;
list[i++] = WheeledGrabber;
list[i++] = LeggedGrabber;
list[i++] = WingedShooter;
list[i++] = TrackedShooter;
list[i++] = WheeledShooter;
list[i++] = LeggedShooter;
list[i++] = WingedOrgaShooter;
list[i++] = TrackedOrgaShooter;
list[i++] = WheeledOrgaShooter;
list[i++] = LeggedOrgaShooter;
list[i++] = WingedSniffer;
list[i++] = TrackedSniffer;
list[i++] = WheeledSniffer;
list[i++] = LeggedSniffer;
list[i++] = Thumper;
list[i++] = PhazerShooter;
list[i++] = Recycler;
list[i++] = Shielder;
list[i++] = Me;
list[i++] = Derrick;
list[i++] = BotFactory;
list[i++] = PowerStation;
list[i++] = Converter;
list[i++] = RepairCenter;
list[i++] = DefenseTower;
list[i++] = ResearchCenter;
list[i++] = RadarStation;
list[i++] = ExchangePost;
list[i++] = PowerPlant;
list[i++] = AutoLab;
list[i++] = NuclearPlant;
list[i++] = Titanium;
list[i++] = NuclearCell;
while ( true )
{
if ( load == null ) // ne porte rien ?
{
p = radar(OrgaMatter); // cherche matičre
if ( p == null )
{
float p;// puissance max des moteurs
float r;// nombre aléatoire
point c;// centre de la zone permise
c.x = 0;
c.y = 0;
c.z = 0;
p = 1;
jet( rand()*4 + 1);
{
if (distance(position, c) > 275)
{
if (direction(c) > 0) motor(0.7*p, p); else motor(p, 0.7*p);
while (abs(direction(c)) > 30) wait(1);
}
motor(p,p);
r = rand();
if (r < 0.4)
{
motor(p, p-rand()*0.8);
}
if (r > 0.6)
{
motor(p-rand()*0.8, p);
}
if (r <= 0.7 and r >= 0.3) jet(rand()*4 + 1);
wait(1);
}
}
else
{
dest = p.position;
dest.z = position.z;
dist = distance(dest, position);
if ( dist > 1.25 )
{
jet(1); // monte
goto(p.position); // va sur la matičre
}
else
{
jet(-1); // descend
while ( altitude > 0 );
grab(); // prend la matičre
jet(1);
}
}
}
else // porte matičre ?
{
jet(1); // monte
p = radar(list, 0, 360, 0, 6000, 1, FilterOnlyLanding);
if ( p == null )
{
jet(1); // monte
dest = position;
dest.x += (rand()-0.5)*10;
dest.y += (rand()-0.5)*10;
goto(dest); // va n'importe oů
wait(2);
}
else
{
dest = p.position;
dest.z = position.z;
dist = distance(dest, position);
if ( dist > 1.25 )
{
dir = direction(p.position);
motor(1-dir/90, 1+dir/90);
}
else
{
drop(); // lâche la mat
wait(2);
}
}
}
}
}
|
Program dla osy ktora juz nie bedzie jak glupia modlic sie nad celem tylko zrzuci materie i poleci dalej. |
|
|
|
|
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: 25-03-2009, 18:32
|
|
|
Hmm.. myślę, że troche nie w tym dziale. Zrób temat w dziale "Colobot 2" i tam ewentualnie wrzucaj takie programy. |
|
|
|
|
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: 25-03-2009, 19:20
|
|
|
Ciezko mi bylo zdecydowac, z jednej strony tematem glownym jest colobot 2, ale z drugiej te programy w koncu do wykorzystania sa w pierwszej czesci i istnieje opcja, ze beda tylko w pierwszej czesci. Ostatecznie zalozylem go tutaj, jak cos to ktos go przeniesie. |
_________________
|
|
|
|
|
Abadon
Administrator forum Administrator
Pomógł: 3 razy Dołączył: 11 Sie 2008 Posty: 586
|
Wysłany: 27-03-2009, 21:31
|
|
|
Dobra z tym programem to niech tutaj już będzie. Gdy będą jakieś konkrety odnośnie Colobota 2 to zapewnię wybierze się programy z tego działu do jakiegoś pakietu podstawowych programów do Colobota 2, oczywiście pytając się wcześniej o zgodę autora, ale póki co nie wyprzedzajmy przyszłości.
No właśnie wszyscy tylko programy dla robotów robią a o mrówkach i spółce zapomniało się. Sam też muszę wkrótce coś wymyślić. |
_________________
|
|
|
|
|
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: 27-03-2009, 23:12
|
|
|
Daje funkcje tutaj i w temacie z funkcjami, gdyz napisalem ja z mysla o obcych.
Funkcja oblicza najmniejsza mozliwa odleglosc miedzy dwoma rodzajami obiektow.
Kod: | bool object::Dist(object obj1, object obj2, float len)
{
int i1, i2;
float dist;
object alien, bot;
i1 = 1;
i2 = 1;
dist = 1000;
while(i2 < 1000 and i1 < 1000)
{
if(i1 == i2)
{
i2++;
}
alien = retobject(i1++);
if(alien == null)
{
continue;
}
bot = retobject(i2++);
if(bot == null)
{
i1--;
continue;
}
if(alien.category != obj1.category)
{
i2--;
continue;
}
if(bot.category != obj2.category)
{
i1--;
continue;
}
if(distance2d(bot.position, alien.position) < dist)
{
dist = distance2d(bot.position, alien.position);
}
}
if(dist > len)
{
return false;
}
else
{
return true;
}
} |
Uwazam, ze moze to sie przydac do pewnego zorganizowania obcych, ktorzy beda atakowac jak na komende "OGNIA!" ;]
Lub tez wprowadzic element ochrony czegos przez owady (np materii organicznej) - dopoki sie nie zblizymy sa spokojne. |
|
|
|
|
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
|
|
|
|
|
|
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 |
|
|