Article 1742 of rec.games.corewar: Newsgroups: rec.games.corewar Path: hellgate.utah.edu!caen!zaphod.mps.ohio-state.edu!hobbes.physics.uiowa.edu!news.iastate.edu!dunix.drake.edu!acad.drake.edu!pk6811s From: pk6811s@acad.drake.edu Subject: Eclipse II (with comments) Message-ID: <1993Apr13.091531.1@acad.drake.edu> Lines: 171 Sender: news@dunix.drake.edu (USENET News System) Nntp-Posting-Host: acad.drake.edu Organization: Drake University, Des Moines, Iowa, USA Date: Tue, 13 Apr 1993 15:15:31 GMT Since Eclipse II has been knocked off the Hill twice recently, I guess it's time to publish. (I did describe parts of it while it was successful :) Eclipse II went up and down KotH like a yo-yo, not so much depending on _what_ was put up as _who_ was putting it up. The theory behind it is simple: if you could find a piece of the opponent, what would you want to do to kill or stun the whole thing. For imps of any size, that would be taking the mov 0,xxxx instruction as a bombing increment and bomb until zero is found. For imps connected to their bombers, follow that step with a right-to-left bombing run, dropping to the next trail as each is finished. During this step, bomb 'through' (like Ike) to kill anything that was boot-strapped away. Even better, use a spl-minusone bomb in this step, if you can't kill all components, you might stun enough of them to make a difference. After the bombing runs, launch a set of small bombers tailored to deal with 2667-imps in case you missed them. If your opponent is a stone, he will be out-numbered by these bombers. As Eclipse II evolved, I added bits to deal with difficult opponents. Paratroops uses an initial scan phase also, and carpet-bombs right-to-left on discovery. So I added code to detect bombs in my next-phase code, and go to mouse if necessary. The spl-minusone bomb has a <57 b-operand which prevents Imprimis 6 from launching its second set of imps. I ran dozens of runs against Leprechaun and Herem to get the placement of the bomb-thru just right. There are three partial reflections at 12 which once gave some protection (but not anymore). Eclipse II beat most of the stone-imps, all of the vampires, some of the stones, and depending on the author - anything else. I have warned about leaving pointers to your active code laying around before. If you boot-strap your program away from a decoy, but leave pointers in the decoy, :-) The decoy is easy to find, so it doesn't take long to find your active code. Here is the (commented) source. Try starting at 'next': ;redcode quiet ;name Eclipse II ;kill Eclipse ;author P.Kline ;strategy bscan, ringkiller, avamp, clear->gate's ;strategy including ideas from Plasma, Paratroops, and old Eclipse ;strategy added mouse for emergencies (Paratroops attack) ;strategy small change in anti-vamp step equ 3094 hold equ scan-250 ptr equ scan-120 ptr2 equ ptr+1 minone equ scan-4000 splmin1 spl -1,<57 ; <57 is to keep Imprimis from launching 7-imp start sub #1,minone ; create a dat 0,7999 for comparison jmp next ; begin initial scan ref3 add @7933,7934 ; partial reflection mov 7984,<7933 mov 7983,@7931 cmp 7950,<7930 jmp 7995 jmn 7994,<7928 sub @52,@48 djn 7992,#8 spl 6 p2ck spl 26 jmp 16 clrback mov ptr,ptr2 ; using a spl-minusone bomb add @ptr,ptr2 ; bomb right to left mov splmin1,