From news-rocq.inria.fr!univ-lyon1.fr!ghost.dsi.unimi.it!batcomputer!cornell!uw-beaver!cs.washington.edu!jayhan Tue Apr 12 16:12:21 1994 Article: 627 of rec.games.corewar Newsgroups: rec.games.corewar Path: news-rocq.inria.fr!univ-lyon1.fr!ghost.dsi.unimi.it!batcomputer!cornell!uw-beaver!cs.washington.edu!jayhan From: jayhan@cs.washington.edu (Jay "Thierry" Han) Subject: Scanalyzer-V.3a Message-ID: Lines: 100 Sender: news@beaver.cs.washington.edu (USENET News System) Organization: Computer Science & Engineering, U. of Washington Date: 11 Apr 1994 17:24:53 GMT I made several attempts at making a decent scanner for a long time. My previous Scanalyzers were just scanners, and I'd tried different bombing patterns and scanning patterns, but none had achieved a very good score. Maybe I should learn to use the Optima program! :-) Anyway, encouraged by the success of my simple vampire, named The Count, I decided to combine a vampire and a scanner. The idea is to have a regular scanner, and when something is detected, drop a tailored fang on the target location, and continue scanning. After a while, start a core-clear that ends by killing of the pit, then become a perfect gate (we never know, those spirals survive anything!). The "fang" is just a JMP, and we first move it to the target, then substract the target's offset from "scan" from the fang's A-operand. The fang now points to "pit". One of the problems (as in any scanner) is that there's only a single process, and I can't have a spiral for life insurance, much less a wimp. However, my future plans include a combination stone/spiral/vampire/wimp. The vampire would cast fangs in a loop similar to ExtraExtra, while the stone trashes the core in parallel. That way, I can start a spiral and even a wimp without too much penalty in terms of bombing speed. The one big problem with ExtraExtra vampire is how to stop them. For a stone, it's simple, you just lay out replacement instruction varefully at predetermined locations, and voila, you have a self-modifying program. A vampire, however, only knows fangs. One solution is to set up the stone to kill off the vampire after a while. The problem is that your choice of constants is getting real narrow, because you have to make it so that it hits three core locations at predetermined time. Another solution is to have a wimp to kill your vampire. Also, you mustn't let the vampire hit your stone. That's even trickier, and involves a careful choice of the constant. As I mentioned before, I use a spiral primarily as a life insurance. As long as the tail process is not killed, a spiral survives most anything, except a perfect gate. And the tail process is darn hard to find in the big core. Only stone-type warriors benefit from this, though, because you can pour thousands of processes in a stone or a vampire, but not in a scanner. How about papers? I don't think there's any paper on the 94x hill right now (my puny attempt, The Hunt, was quickly discarded). Why is that so? I remember some discussion before the big hill was set up where we said paper-type fast-replicating warriors would have an advantage in the big core. Apparently that is not so, at least at the current state of the art. As usual, all comments are welcome. I am fervent believer in the '94 Big hill standard (mainly because that's the rules under which I have been the most successful! :-) ). ;redcode-94x ;name Scanalyzer-V.3a ;author Jay Han ;strategy Scanner/Vampire ;macro org scan start equ loop-3 step equ -34 loop add.f inc, scan scan cmp.i start+step, start slt.ab #tail+200, scan count djn.b loop, #27719 mov.i fang, @scan sub.ba scan, @scan add.f half, scan p jmn.b scan, count half spl.b #step,