Redcoders Frenzy   

Capture The Flag '88

Organiser: Lukasz Adamowski


Rules:

Hi, people! This is a robin-round round without self-fighting. Once again we have three warriors in the core, but this time nothing is so clear as it was in round 17th. Only one of them is known: The Flag. The other two are opponents. The task of each of them is to eliminate the other warrior and (even more important) to keep The Flag alive to the end of fight. The problem is The Flag is suicidal warrior, it dies after CORESIZE cycles. The code of The Flag looks like this:

;redcode-88
;name The Flag '88
;assert 1

flag	djn	$0,	#0

	end	flag

Can you see these two magic cyphers? "88" I mean. Yes, yes, ICWS'88 is obliging. Your warriors are to be written according to this standard too. Modifiers are disallowed, P-space also. This means no PINs, no LDPs and no STPs, no handshaking and no adaptative strategies (unless you know how to do it without P-space, all ideas are welcome). There are no other limits except usual pMARS settings:

CORESIZE 8000
MAXPROCESSES 8000
MAXCYCLES 80000
MAXLENGTH 100
MINDISTANCE 100
other parameters:
ROUNDS 2x1000
VERSION 0.8.0
In other words:
pmars -8 -s 8000 -c 80000 -p 8000 -l 100 -d 100 -r 1000

For people that are too lazy to look for ICWS'88 specification (copied from redcode.ref):

ICWS'88 Standard:
No modifiers allowed.
No P-space.
Allowed opcodes:
	DAT	[#<],	[#<]
	MOV	[#$@<],	[$@<]
	ADD	[#$@<],	[$@<]
	SUB	[#$@<],	[$@<]
	JMP	[$@<],	[#$@<]
	JMZ	[$@<],	[#$@<]
	JMN	[$@<],	[#$@<]
	DJN	[$@<],	[#$@<]
	SLT	[#$@<],	[#$@<]
	CMP	[#$@<],	[$@<]
	SPL	[$@<],	[#$@<]

Scoring rules:

How to calculate score without modified pMARS? Thanks to LAchi idea of calculating score I've found better way to do it (my previous idea was to run each fight separetely and use an Excel chart). It goes like this: if you run pMARS with standard rules and parameters like this:
pmars -bk -8 -r 1000 flag.red warrior1.red warrior2.red
you should get 3 rows with 5 number in each. If not, there is probably something wrong with pMARS you use (version?). As LAchi wrote the first row is The Flag, the second is Warrior1 and the third is Warrior2. Last number in each row says how many times this warrior has lost, previous says how many fights were three-way ties (they should be the same in all rows). The most interesting for us scores are in the middle of each row. These numbers say how many times each warrior (The Flag or one of opponents) was one of two survivors. But what was the other one? Now (what LAchi cleverly found out) we can use these three equation to calculate scores of each warrior:

WF2 +   0 + WF1 = A 
  0 + W12 + WF1 = B
WF2 + W12 +   0 = C

where A, B and C are the third numbers from each row, Wxy means survivers were x and y (1 means Warrior1, 2 means Warrior2 and F means The Flag). Three simple equations with three variables. I think everyone knows a hundred of ways to solve this kind of problem. We are interested in WF1 and WF2 values, which are equal:

WF1 = (A + B - C).1/2 
WF2 = (A + C - B).1/2

Now, how to compute total score? Once again, if you execute pMARS in this way:

pmars -bk -8 -r 1000 flag.red warrior1.red warrior2.red
you will get something like (x means any number, A, B, C as above, D is the number of three-way ties):
x x A D x
x x B D x
x x C D x
Points earned by Warrior1 are:
(A + B - C).3/2 + D
and points earned by Warrior2 are:
(A + C - B).3/2 + D
That's all! It's easy, isn't it?

You can also execute pMARS in that way:

pmars -bk -8 -r 1000 warrior1.red flag.red warrior2.red
and use LAchi's calculating system assuming that The Bully is unknown opponent (warrior1), Little Sibling is The Flag and Big Sibling is your warrior. But what's the use to calculate score with unknown opponent??? I think this is more helpful for me than you, my dear participants. Thank you once again, LAchi! I will have much less of work hosting this round.

Oh, wait! I forgot I am participating too! My warriors are already ready and I have sent it to Lukasz Grabun (don't be too suspicious, there is nothing to do with our first names or the fact we are both from Poland, THERE IS NO CONSPIRACY IN HERE! ;). Lukasz Grabun is not participating, but please don't ask him how my warriors do work, OK? ;]

Please send your entries (2 entries per player are allowed) to the address: corewars@wp.pl with "RF18 entry" as a title. Deadline is June 1st, midnight (or rather 23:59, Greenwich time). This is Saturday. All the battles will be performed on Sunday June 2nd and the scores will be published on Monday June 3rd, I think. That's all! Questions, remarks and black-mail please send to the newsgroup rec.games.corewar. Good luck to you all! ;]
Lukasz Adamowski



Results:

Ten warriors written by six players took a part in Redcoders' Frenzy Round 18th. Most of them were scanners, there were also some stones/stunners and two (and a half ;) imps. It was robin-round tour, so particular results are shown below in table (I hope it's readable).

warrior's name author's name vs John Wayne vs Imperfect vs Capturer'88 vs Overwhelming power vs Imp vs Hunter Killer vs Scan for Fan vs Wanna be a porn star vs Stunner vs Dwarfie score [pts] score [%]
John Wayne Chip Wendell 608 1723 2458 2407 2469 4380 3088 1040 25 18198 100.0
Imperfect Achille Astolfi 2423 2425 2021 1996 2347 2740 695 441 991 16079 88.4
Capturer'88 Lukasz Adamowski 1165 1195 2000 2000 2926 2200 2449 1320 394 15649 86.0
Overwhelming power German Labarga 1465 1682 2000 2000 1465 2002 1758 1229 1216 14817 81.4
Imp Lukasz Adamowski 1468 1654 2000 2000 1454 2004 1752 1206 1202 14740 81.0
Hunter Killer Joshua Hudson 1164 670 2791 1465 1454 2776 2821 332 44 13517 74.3
Scan for Fan Achille Astolfi 447 466 1672 1999 1998 1927 2291 268 59 11127 61.1
Wanna be a porn star German Labarga 103 728 1309 2253 2274 676 2519 306 74 10242 56.3
Stunner Zul Nadzri 5 441 2046 1331 1347 1655 307 795 0 7927 43.6
Dwarfie Zul Nadzri 16 991 1675 1306 1277 887 110 26 3 6291 34.6

As you can see the winner of "Capture The Flag '88" round is Chip Wendell and his the only one entry "John Wayne". He has showed strategy "Shoot first, and ask questions later" is the best solution for such kind of problem. The 2nd is Achille "LAchi" Astolfi and his Imperfect. That's suprise, because Imperfect is only suicidal .5c bomber plus two imps. What's the idea of saving the flag? I think LAchi expected a lot of scanners, that's why he had entered with stone. Stone is expected to eliminate the opponennt, and these two imps' aim is to keep the flag alive. Clever! The 3rd place is for Lukasz Adamowski (that's me ;). Capturer'88 is simple 1c stunner which scans for dying body of the opponent after stunning. If it finds something alive, it will deal a death-blow, but it will omit one cell in which is supposed to be prisoned Flag process.

A "black sheep" of this round was Dwarfie by Zul Nadzri. :] Dwarfie usually doesn't let The Flag to survive, so fighting against Dwarfie warriors had less chance to score well.

That's all! Thank you guys for participating! Thanks to you I've earned 86 points in ranking. ;]]]