|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Programy - Boto-zabijacz(swobodna gra)
colobotwymiiata - 20-02-2009, 22:52 Temat postu: Boto-zabijacz(swobodna gra) Bot, który zabija inne paj±kiem. Uwaga, flagę stawiać z dala od innych botów i od niego samego!
Polecany do swobodnej gry, gdy znudzi nam się jaki¶ robot
Kod:
Kod: | //Program służy do niszczenia botów.
//Wymagane jest postawienie żółtej flagi w pobliżu bota(ale nie za blisko!)
//Trzeba też wrzucić ten program do folderu "script"
extern void object::Zabij()
{
if(this.category==AlienSpider)fire();
object flag,bot;
int to[],t;
flag=radar(YellowFlag);
t=0;
to[t++]=WheeledGrabber;
to[t++]=TrackedGrabber;
to[t++]=WingedGrabber;
to[t++]=LeggedGrabber;
to[t++]=WheeledShooter;
to[t++]=TrackedShooter;
to[t++]=WingedShooter;
to[t++]=LeggedShooter;
to[t++]=WheeledOrgaShooter;
to[t++]=TrackedOrgaShooter;
to[t++]=WingedOrgaShooter;
to[t++]=LeggedOrgaShooter;
to[t++]=WheeledSniffer;
to[t++]=TrackedSniffer;
to[t++]=WingedSniffer;
to[t++]=LeggedSniffer;
to[t++]=Subber;
to[t++]=Shielder;
to[t++]=PhazerShooter;
to[t++]=Thumper;
to[t++]=Recycler;
while(true)
{
turn(direction(flag.position));
if(czyjest(flag)==true)
{
wait(1);
if(czyjest(flag)==true)
{
message("Za 5 sekund zginiesz, albo zejdziesz z flagi.",DisplayWarning);
if(czyjest(flag)==true)wait(2);
if(czyjest(flag)==true)message("Zastanów się",DisplayWarning);
if(czyjest(flag)==true)wait(3);
if(czyjest(flag)==true)message("Zaczynam odliczanie.",DisplayWarning);
if(czyjest(flag)==true)wait(2);
if(czyjest(flag)==true)if(odlicz(flag)==true)
{
bot=radar(to,0,1,distance(position,flag.position)-0.1,distance(position,flag.position)+0.1);
if(bot.energyCell!=null)
{
if(bot.energyCell.category==NuclearCell)zmienmu(flag);
}
produce(flag.position,0,AlienSpider,"Killbot.txt");
while(czyjest(flag)!=false)wait(1);
}
}
}
}
}
bool object::odlicz(object f)
{
if(czyjest(f)==true)odlicz(5);
else return false;
if(czyjest(f)==true)odlicz(4);
else return false;
if(czyjest(f)==true)odlicz(3);
else return false;
if(czyjest(f)==true)odlicz(2);
else return false;
if(czyjest(f)==true)odlicz(1);
else return false;
if(czyjest(f)==true)odlicz(0);
else return false;
return true;
}
void object::odlicz(int ile)
{
message(""+ile,DisplayWarning);
if(ile>0)wait(1);
}
bool object::czyjest(object f)
{
int to[],t;
float od,od2;
object b;
t=0;
to[t++]=WheeledGrabber;
to[t++]=TrackedGrabber;
to[t++]=WingedGrabber;
to[t++]=LeggedGrabber;
to[t++]=WheeledShooter;
to[t++]=TrackedShooter;
to[t++]=WingedShooter;
to[t++]=LeggedShooter;
to[t++]=WheeledOrgaShooter;
to[t++]=TrackedOrgaShooter;
to[t++]=WingedOrgaShooter;
to[t++]=LeggedOrgaShooter;
to[t++]=WheeledSniffer;
to[t++]=TrackedSniffer;
to[t++]=WingedSniffer;
to[t++]=LeggedSniffer;
to[t++]=Subber;
to[t++]=Shielder;
to[t++]=PhazerShooter;
to[t++]=Thumper;
to[t++]=Recycler;
b=radar(to,0,5,distance2d(position,f.position)-0.5,distance2d(position,f.position)+0.5);
if(b!=null)return true;
else return false;
}
void object::zmienmu(object f)
{
point start;
start=position;
int to[],t;
t=0;
to[t++]=WheeledGrabber;
to[t++]=TrackedGrabber;
to[t++]=WingedGrabber;
to[t++]=LeggedGrabber;
to[t++]=WheeledShooter;
to[t++]=TrackedShooter;
to[t++]=WingedShooter;
to[t++]=LeggedShooter;
to[t++]=WheeledOrgaShooter;
to[t++]=TrackedOrgaShooter;
to[t++]=WingedOrgaShooter;
to[t++]=LeggedOrgaShooter;
to[t++]=WheeledSniffer;
to[t++]=TrackedSniffer;
to[t++]=WingedSniffer;
to[t++]=LeggedSniffer;
to[t++]=Subber;
to[t++]=Shielder;
to[t++]=PhazerShooter;
to[t++]=Thumper;
to[t++]=Recycler;
object bt=radar(to,0,1,distance2d(position,f.position)-0.5,distance2d(position,f.position)+0.5);
wait(1);
message("Hej, masz Atomowe Ogniwo, może się przydać!");
goto(bt.position);
grab();
goto(start);
turn(direction(f.position));
turn(180);
drop();
turn(direction(f.position));
}
|
Edit:
Wprowadziłem drobn± poprawkę, teraz powinno działać
PS.: Dzięki za wiadomo¶ć
Abadon - 21-02-2009, 09:43
Ciekawe jaki nadać przydomek robotowi... może Predator .
P.S Dobry program.
DeiDara - 22-02-2009, 13:36
nie lepiej nazwać go robot
lukas_j - 23-02-2009, 10:34
lol, niezle ale wywali blad jak podjedzie on po atomowe ogniwo.... lepiej mu dac errmode(0); na poczatku
|
|