/* ZZZZZZZZZZZZZZZZZZZZZZZZZZZOZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZOZZZZZZZOOZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZOOOOOOOOOZOOZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$ZZZZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZOOOOOOOOOOOZOZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$ZZZZZZZZZZZZZZ ZZZZZZZZZOZZZZZZZOOOOOOOOOOOOOOOOZZZZZZZZZZZZZZZZZZZZZZ$$$777I77$$$ZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZOOOOOOOOOOZZOZZZZZZZZZZZZZZZZZZZZ$$77I?=?I7$$ZZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZOZOOOOOOOOOOZZZZZZZZZZZZZZZZZZZZZZZZ$$$7I?..+I7$$$ZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZOOOOOOOOOOOOOOZZZZZZZZZZZZZZZZZZZZZ$$77I= .?I7$$$ZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZOOOOOZZZZZZZZZZZZZZZZZZZZZZZZZ$$$7I?,.~?I7$$$ZZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZOZZZZZZZZZZZZZZZZZZZZZZZZZZ$$77I+..+I77$$$$ZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZOZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$7I?~.,?I77$$$$ZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$77I+..=?I7$$$$$ZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$7I?=..+I77$$$$$$ZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$77I?,.~?I77$$$$$$$$ZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$7I?=..+I77$$$$$$ZZZZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$77I?:.,?I77$$$$$$$Z$ZZZ$ZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$77I+..=?I77$$$$$$Z$$ZZZZZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$77I?~..+II77$$$$$$$$$$$$$ZZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$77I+..:?I777$$$$$$$$$$$$$$$ZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$77I?=..=?I77$$$$$$$$$$$$$$$ZZZ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$777I?,.,+I777$$$$$$$$$$$$$$$$$Z ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$77II+..=?I777$$$$$$$$$$$$$$Z$Z$ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$77I?~..+II77$$$$$$$$$$$$$$$$$Z$ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$$$7II+..:?I77$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$Z$$$$$$$$$$77I?=..=?I77$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$$$$$$777I+:..+II77$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZZZZZZZZ$Z$$$$$$$$$$$$$$$$$$$$$77I?+..~?I77$$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$$$$$$$$$$$$$$777I?~..=?I77$$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$$$$$$$$$$$$$$$$77II+,.:+II77$$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZZ$$$$$$$$$$$$$$8MMMMM$$$$$$$$$77I?=..=?I777$$$$$$$$$$$$$$$$$$$$$ ZZZZZZZZZZZZZZZZ$$$$$$$$$$$$DNNNMNMNDDNN$$$$$77II+:..+?I777$$$$$$$$$$$$$$$$$$$$$ ZZZZZ$ZZZZ$ZZZZZ$$$$$$$$$$$MMNNZM$ONZOMMNO$$$77I?=..:?II777$$$$$$$$$$$$$$$$$$$$$ ZZZZZZZ$ZZZZZ$$$$$$$$$$$$$MMO$NND8O$+D8NZDZ777II+:..=?II777$$$$$$$$$$$$$$$$$$$$$ ZZZ$$ZZZ$$$$$$$$$$$$$$$$$NMZII?+=+===+OO7Z8777I?+..,+II777$$$$$$$$$$$$$$7$$$$$$$ $$$ZZ$Z$$$$$$$$$$$$$$$$$$D87???++~~==+IZM8D$77I?~..~+II777$$$$$$$$$$$$$$77$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$ZN$7I??+=~~~=+=ZDNDD7I?+,..=?I777$7$$$$$$$$$$$$7777777$$ $Z$$$$$$$$$$$$$$$$$$$$$$$II7II++=+==++?OMD88II?=..:+?I777$$$$$$$$$$$$$777777777$ $$$$$$$$$$$$$$$$$$$$$$$$$$ND7ZZIII?=++?8DDOOII+: .=?II777$7$$$$$$$$$$77777777777 $$$$$$$$$$$$$$$$$$$$$$$$$$ZNN+?ODMD??++$Z?I8I?=. .+?II777$$$$$$$$$77$77777777777 $$$$$$$$$$$$$$$$$$$$$$$$77ZZ$~==7?===++$O+?7I+~ .~+II777777$$$77$$$7777777777777 $$$$$$$$$$$$$$$$$$$$$$$$$7O$+=+==+==++??~=OI?=, .=?II777$7$77$777$77777777777777 $$$$$$$$$$$$$$$$$$$$$$$$$$NO$N$++==?+I$==ZII+~. ,+?II7777777$$77$$77777777777777 $$$$$$$$$$$$$$$$$$$$$$$$7Z7IZ77+=+=?77$OO7I?+:..~?II77777$7$$$777777777777777777 $$$$$$$$$$$$$$$$$$$7$7$778DO88$7?+??77$IIII?=. .+?II7777777777777777777777777777 $$$$$$$$$$$$$$$$$77777777O$77I+7Z7$Z$Z?OII?+~..:+?II7777777777777777777777777777 $$$$$$$$$$$$$$$$$77777777Z$Z777ZO8ZOO?OZ=I?=,..=?II77777777777777777777777777777 $$$$$$$$$$$$$$$77777$7$77Z8OO$ZDNDD$8OZ=~~+:..,+?II777777$$777777777777777777777 $$$$$$$$$$$$$7777777$O8DMM8MDDD8$ND8OZ?=~:~,..:==~=?77777$$777777777777777777777 $$$$$$$$$$$$$$7$===++7$OMNN8NMMDDD8OOD=~~=:. .~~~=~~~==77$$77$777777777777777777 $$$$$$$$$$$$++===~=~~=Z?O8DD8ZNDOOOZ8==~~~,..:~~~~~~~~~==77777777777777777777777 $$$$$$$$$$$8I++=~~~~~~~=+Z?7$++8OOOZ+=~~~:...:+~~=~~~~~==+I$$7777777777777777777 $$$$$$$$$$8MZI+==~~~~::?:?=+7++7OOZ8=~~~=,...=~~~+~~~~==+~~$$$777777$77777777777 $$$$$$$$7$D7ON??=+=~:~~I:=?~+I+=8OZ+=~~:~...,+~:===~~=+=~~?$$$7$7$$$777777777777 $$$$$$77$$=II=I+=~==::~7~~+==?=~+ZD=~~:+:...:~~:I~~===~~~::$$$$$$$7777777$7777$7 $$$$$$$$$$=$?=~:+=~?=:~+=~?+?+~~+7==~~~=,..,~~:7=~==+~:+~?:$$$$$$777777$777$$$77 $$$$$$$$$$8I~7=~=8+=D=::=~==+~:~===~=~:~...,~~=~~==+~==::=I$$$$$777777$7777$$777 $$$$$$$$$OOZ$+~I=~I+~7~:~~~+=?~~~===~~~:...:::+==+~==~~:::7$$$$$$7777$$777777777 $$$$$$$$$$=DZI=~~~=~?=~:=:~==Z~~$=~~~:~,..,:~~=+=~~~=:=~:~7$$$$$7777777777777777 $$$$$$$$$$O7I=~=~~~~~:=:Z~~I++I=7=~~~=:...:::~?=~~=~~+:::~7$$$$$777777$777777777 $$$$$$$$7788$7?++:~::~:~I~:+I=?Z=~~~~~,..,::~=7~=I~~~::::~$$$$$$$$7777777777$777 $$$$$$$$$78OZ$7II+=~:~~=?~~+I=$==~~:::. .,::++~+~~=~:~:~:~7$$$$$$$$7$77$$7$$$7$7 $$$$$$$$77$87I?I?I++=~~~7+~+7=I==~~:=,...:::Z+I~~~::::::::$$$$$$$$$$7$7$$$$$7$$7 $$$$$$$$$7==?=?+=+=++~~~~?~+I?====~=:, .,::~Z$=~~~:~~:~:~~7$$$$$$$$$$777$7$$7$$7 $$$$$$$$$$~=?Z$===~~~=+~~~==7++===~=:. .,::?$~+~=:~=~::~:~7$$$$$$$$$$77$$$$7$$$$ $$$$$$$$$OZ~=$OO=?+==~====~~~+===~?7=..:?:+$=?==~===~::~:~$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$Z$$+IOOO=??++++++=++=~~~I~+=~+?++Z+~~===I~:::~::~$$$$$$$$$$$$$$$$$$$$$7 $$$$$$$$$OZIII+OO8O7+?I$NNDDNDDI+++Z7??I+Z?~==~?+~~::::::~$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$Z7+?II7=887$8ZMNNMDNNMNNOD88IOIO=~~~=++==::~:::~~$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$O$?I7?$Z?DO8NMMNMNNN8Z?~=D888+~=~~=~=+==~:~:::~~=$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$ZZII7I7ZOO8MNMMNMMND8OI==:8?O?~~=+=+==::::::::~~=$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$OOO?77I$O88=MMMMNMM87=?OI=~:7N====++~~::~::~:::~=$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$ODZ$7ZOOOO?MMMMMM8Z==+D7+~====+:~::::~~::::::~+$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$8?78D8ZZO8OOOO?MMMM8=I$Z7I$==~=~~~:::~~~::::::~~?$$$$$$$$$$$$$$$$$$$$$$ ZZZ$$$$$$OZIZDDDZZ8DO88O88NOOZ7$++O7??=:::::::~~::::::::~I$$$$$$$$$$$$$$$$$$$$$$ ZZZ$$Z$$$$OOI$8NNDDDOOO8DNNMN8$+8Z?=+I==+~::::::::~::::~~7$$$$$$$$$$$$$$$$$$$$$$ $$??Z??+?7+?O?OIOZNOI=O$$ZO88DMN$+?======?~::::::::::::~~$$$$$$$$$$$$$$$$$$$$$$$ OZZZZZZ$$$$$$$MNMDOMDDMDD8OOO8D8O+==++?~~=M=~::::::::::~~$$$$$$$$$$$$$$$$77$$$7$ ====== ====== ==== == == == == == == == == == == == == ==== == == == == == == == == == == == == == === ====== ======== == Crobot : Jedi Type : Macro Version : 15.05 Author : Maurizio Camangi Begin : 30-09-2024 Revision : 31-10-2025 As usual, this robot is an older version of a Jedi (in this case, 14) with its fire routines replaced and a different F2F, obviously, inspired by the leaders of the KoTH. 3vs3 and 4vs4 phases are practically unchanged. It is customary to have a Jedi robot enlisted... 1. A robot may not injure a human being or, through inaction, allow a human being to come to harm. 2. A robot must obey orders given to it by human beings, except where such orders would conflict with the First Law. 3. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law. Zeroth Law. A robot cannot cause harm to humanity or, by inaction, allow humanity to come to harm. ATTENTION THIS C-ROBOT IS MADE OF 100% BITS IN THE UNLIKELY EVENT THAT IT COMES INTO CONTACT WITH ANTI-BITS OF ANY KIND, AN EXPLOSION WILL OCCUR WARNING THE ENTIRE UNIVERSE (INCLUDING THIS C-ROBOT) MIGHT SOMEDAY COLLAPSE INTO AN INFINITELY SMALL POINT IF ANOTHER UNIVERSE WERE TO EMERGE, THE EXISTENCE (AND FUNCTIONING) OF THIS C-ROBOT IN THAT UNIVERSE CANNOT BE GUARANTEED */ int ang,range,d,dir,posx,posy,flag,timer, enemies,t,b,deg1,deg2,fp,skip; stop() { qfire(dir,skip=t=0); /*while(speed()>59) ;*/ } fastradar() /* Count enemies */ { return enemies=3 -(scan(deg1+100,10)!=0) -(scan(deg1+80, 10)!=0) -(scan(deg1+60, 10)!=0) -(scan(deg1+40, 10)!=0) -(scan(deg1+20, 10)!=0) -(scan(deg1, 10)!=0) ; } runX() { dir=180*!posx; if(posx) { xmin(); } else { xmax(); } } runY() { dir=270-180*posy; if(posy) { ymin(); } else { ymax(); } } corner() { stop(); if (flag^posx^posy) runY(runX()); else runX(runY()); } xmax() { while(loc_x()>88) qfire(dir,100); while(loc_x()>50) drive(dir,100); stop(); } xmin() { while(loc_x()<912) qfire(dir,100); while(loc_x()<950) drive(dir,100); stop(); } ymax() { while(loc_y()>88) qfire(dir,100); while(loc_y()>50) drive(dir,100); stop(); } ymin() { while(loc_y()<912) qfire(dir,100); while(loc_y()<950) drive(dir,100); stop(); } move() { if (range>710) { ang=deg1; } qfire(dir,100); if (damage()<60) fire(); qfire(dir,100); qfire(dir+=180,0); } fire() { int orange,oang; drive(dir,100); if (scan(ang,10)); else if (scan(ang-=21,10)); else if (scan(ang+=42,10)); else if (scan(ang+=21,10)); else return search(); if (scan(ang-17,10)) ang-=6; if (scan(ang+17,10)) ang+=6; if (orange=refine()) { if (range=refine(oang=ang)) cannon(ang+(ang-oang)*((1200+range)>>9)-(sin(ang-dir)>>14), range*192/(192+orange-range-(cos(ang-dir)>>12))); else if(range=scan(ang-=21,10)) cannon(ang,range); else if(range=scan(ang+=42,10)) cannon(ang,range); else ang+=41; } else if(orange=scan(ang-=21,10)) cannon(ang,orange); else if(orange=scan(ang+=42,10)) cannon(ang,orange); else ang+=41; } refine() { if (scan(ang+13,10)) ang+=4; if (scan(ang-13,10)) ang-=4; if (scan(ang+12,10)) ang+=2; if (scan(ang-12,10)) ang-=2; if (scan(ang+10,10)) ++ang; if (scan(ang-10,10)) --ang; return scan(ang,10); } search() { if ((range=scan(ang-=84,10))) return cannon(ang,range); else if ((range=scan(ang-=21,10))) return cannon(ang,range); else if ((range=scan(ang+=126,10))) return cannon(ang,range); else if ((range=scan(ang+=21,10))) return cannon(ang,range); else if ((range=scan(ang-=168,10))) return cannon(ang,range); else if ((range=scan(ang-=21,10))) return cannon(ang,range); else if ((range=scan(ang+=210,10))) return cannon(ang,range); else if ((range=scan(ang-=231,10))) return cannon(ang,range); else if ((range=scan(ang+=252,10))) return cannon(ang,range); else ang+=41; } qfire(d,v) int d,v; { int orange; drive(d,v); if ((orange=scan(ang, 10)) ) { if (scan(ang-9,4)) { if (scan(ang-=13,4)) { if(scan(ang-6,fp)) ang-=6; } else if (scan(ang-fp,fp)) --ang; } else if(scan(ang+9,fp)) { if (scan(ang+=13,fp)) ang+=fp; } else if(scan(ang+4,fp)) ang+=fp; else ang-=2; } else if ((orange=scan(ang-=21,10))) { if (scan(ang-9,10)) { if (scan(ang-=13,fp)) ang-=fp; } else if(scan(ang+9,10)) ang+=6; } else if ((orange=scan(ang+=42,10))) { if (scan(ang+9,10)) ang+=12; } else if ((orange=scan(ang+=21,10))); else if(skip) return search(); else { if ((orange=scan(ang+=21,10))) return cannon(ang,range=orange); range=0; return ang+=41; } if (range=scan(ang,10)){ cannon (ang, range*145/(145+orange-range) ); } else if(range=scan(ang-=21,10)) cannon(ang,range); else if(range=scan(ang+=42,10)) cannon(ang,range); else ang+=41; } int look(a) int a; { if (range=scan(a,10)) ; else if (range=scan(a+=20,10)); else return 0; ang=a; return range>820; } slowradar(s) int s; { int deg,brange; if (s) return; deg=deg1-20; brange=1500; enemies=3; while( (deg<=deg2) && enemies) if (range=scan(deg+=20, 10)) { --enemies; if (range500))>500; skip=( fastradar(corner(deg2=(deg1=(90*(heading=(posy<<1)|(posx^posy))))+100)) < 1); while (1) { if (enemies>1) { skip=fp=5; fire(qfire(dir=deg1+40,100)); while(1) /* F2F inspired by loneliness and carillon */ { if(range>459) fire(); if (((posx=loc_x(posy=loc_y()))%840)<160) dir=20+320*(posy>=500)+180*(posx>=500); else if ((posy%840)<160) dir=70+40*(posx>=500)+180*(posy>=500); else if (range<149) dir=((ang/90)+(b^=1))*90+180*(dam>85); else if (range<640) dir=ang+80+(b^=1)*200+180*(dam>79); else dir=ang+24+(b^=1)*(299-dam); dam=damage(qfire(dir,100)); if(scan(ang-15,10)) ang-=4; if(scan(ang+15,10)) ang+=4; qfire(dir,100); } } while(enemies==1) /* 3vs3 */ { if (look(deg1)) { dir=deg1+(30<680) fire(); corner(); flag^=1; } else if (scan(dir,10)) { ang=dir; fire(); while(scan(ang,10)>640) fire(); corner(); flag^=1; } else { while(++t<4) fire(); corner(); if (damage()>d) { flag^=1; } d=damage()+4; } if ((++timer%2)&&(range>400)) { if ((timer>64)&&(damage()<40)) enemies=2; else slowradar(skip); } } else { dir=deg1; while(t<4) { if (heading&1) xy=loc_y(); else xy=loc_x(); if (heading&2) safe=xy>180; else safe=xy<820; if (safe) fire(); else { qfire(dir+=90,0); if (scan(dir,10)) ang=dir; ++heading; timer+=++t; } } fastradar(t=0); } } while (enemies<1) /* 4vs4 */ { if (scan(deg1,10)||scan(deg1+90,10)) { if (posy) { ymin(move(dir=300-60*(posx))); } else { ymax(move(dir=60+60*(posx))); } if (posx) { xmin(move(dir=150+60*(posy))); } else { xmax(move(dir=30-60*(posy))); } } else { if (posy) { ymin(move(dir=270)); } else { ymax(move(dir=90)); } if (posx) { xmin(move(dir=180)); } else { xmax(move(dir=0)); } } if ((++timer%4 == 1)&&(range>400)) { if ((timer>32)&&(damage()<40)) enemies=1; else slowradar(0); } } } } /* May the Force be with you! */