From news-rocq.inria.fr!irisa.fr!univ-rennes1.fr!univ-angers.fr!ciril.fr!cnusc.fr!eerie.fr!news.maxwell.syr.edu!newsxfer3.itd.umich.edu!newbabylon.rs.itd.umich.edu!toastman.us.itd.umich.edu!not-for-mail Wed Oct 1 11:35:44 1997 Article: 7876 of rec.games.corewar Path: news-rocq.inria.fr!irisa.fr!univ-rennes1.fr!univ-angers.fr!ciril.fr!cnusc.fr!eerie.fr!news.maxwell.syr.edu!newsxfer3.itd.umich.edu!newbabylon.rs.itd.umich.edu!toastman.us.itd.umich.edu!not-for-mail From: John K. Lewis Newsgroups: rec.games.corewar Subject: inteligent system Date: 30 Sep 1997 17:41:13 GMT Organization: University of Michigan ITD News Server Lines: 95 Message-ID: <60rdjp$k30$1@newbabylon.rs.itd.umich.edu> NNTP-Posting-Host: toastman.us.itd.umich.edu Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit X-Newsreader: TIN [UNIX 1.3 unoff BETA 970307; sun4m SunOS 4.1.4] Okay, here is the basic engine for Aikido. It's currently very beta. The idea is that if you can figure out what you are fighting by how it attacks, you can use a silver bullet to fight it. This beta only checks for scanners or bombers. I haven't had the cycles to put into this, but it's a first step. I want to dress up the code some. Currently this system is VERY vulnerable to Quick Scans. ;redcode-94 ;name Aikido.beta ;strategy wait till @date@ and see. ;author John K. Lewis ;kill Aikido ;assert 1 throw equ -600 step equ 95 count equ 533 gate equ start-1 org start dat 1,1 ;membrane start dat 1,2 dat 1,3 dat 1,4 dat 0,1 dat 0,2 dat 0,3 ;The membrane helps check for scanners dat 0,4 dat 0,5 head dat 0,6 dat 0,7 ;membrane end top dat 0,-100 seq head,butt ;checks the membrane jmp scan ;goto anti-scanner tactic start sne bottom ;check outside world for contact jmp -3 ; sne bottom ;if skipped then coreclear ; jmp bomber,bottom ;anti bomber tactic mov jill+1,@bottom spl @bottom,>top mov jack,>top mov jack+1,@top spl @top spl @bottom jmp @top jill mov -1,>2 jmp -1,>1 jack mov -1,<-2 jmp -1,<-3 scan mov ton,throw ;anti scanner tactic mov ton+1,throw mov ton+2,throw mov ton+3,throw mov ton+4,throw mov ton+5,throw mov ton+6,throw jmp throw+scan ; I think this is the tornado engine. ton mov bombd, @stone stone mov step+2, @(2*step)+2 add incr, stone jump djn.b ton, #count incr spl #3*step,#3*step clr mov bombd, >gate bombd dat step, step bottom dat 0,100 dat 0,7 ;membrane start butt dat 0,6 dat 0,5 dat 0,4 dat 0,3 dat 0,2 dat 0,1 dat 1,1 dat 1,2 dat 1,3 dat 1,4 ;membrane end