Subject: IMPs/multi-process programs From: blojo@xcf.berkeley.edu (Jon Blow) Organization: WINDOM BIFF FAN CLUB!!!!!!!!!!!!!! Date: 15 Nov 91 21:35:58 GMT Message-ID: Chris Beauregard writes: > One really neat slave driver concept is the use of the imp. If you can turn > the oponent into an imp, he normally runs through memory and really causes > damage. The only major problem is killing off the enemy process... Ya know, it's really cool to talk to people out there who write neat Redcode programs. This idea is sort of similar to one that I had. Of course, if you can turn the enemies into imps, they spend their CPU time destroying each other instead of you having to use so much of yours. I find this fairly effective against programs like MICE. The following program that I wrote a while ago, SLUICEGATE, works like that. Basically, it bombs the core at a fairly spaced interval (currently set to 12). Instead of dropping zero bombs, though, it drops IMPS. Once it has made one round of the core, it starts bombing again, but with a bit of an offset so that it doesn't bomb the same addresses. At the same time the bombing is going on, there is an IMP STOMPER protecting its top end. After SLUICEGATE has made a certain number of bombing rounds (Currently set to 5), the bombing process stops bombing and jumps to the IMP conveniently placed at the tail of the program. Since there are only two processes running, the IMP zooms through the core at half light-speed, hopefully transfixing any programs which have survived the bombing. When SLUICEGATE's IMP reaches its IMP STOMPER, the IMP is destroyed. This leaves SLUICEGATE with only one process running-- the IMP STOMPER. Since this IMP STOMPER is running at lightspeed, it cannot fail to destroy the enemy IMPs which will eventually reach it. When SLUICEGATE fails, it is often because it takes too much time bombing the core, and thus is still running two processes when the last enemy IMP hits the IMP STOMPER. SLUICEGATE does not move. It would be really interesting to see an example of a program like this that does move. The code below was written in Redcode '86 and translated to '88. Because of that, it is probably a bit inefficient in ways it doesn't have to be. ;;; SLUICEGATE ;;; hit: dat #0 pad: dat #0 stomp: jmp stomp,