Comment from Frank Buß: Looks like his original web page is no longer online, so I've copied my locally saved version here.

Mars mission contest

Minimum steps:
Source

66666220020000000220022002200220022002200220022002000200000000020000111110001333
32222222222220000000002000022222200200222222222222202261000444644240100000462222
22222222222220000000020200000002222222222223333120203131302020200000000020020022
002200220022002200220022002200020000000000

Minimum fuel:
Source

66666220020000000220022002200220022002200220022002200000000000000000000000001110
00000010000000000003333300200200022200020222002020202222222220242000000000000664
00000040000000000662222262220022020020000000002002222222200200000000000322222222
212020202031302020200000000200002200220022002200220022002200220020020000000000
Note that the only difference between the two is the cost function on line 280.

I found out about the contest a bit late (guess I don't read slashdot often enough!) but had great fun working on it :-).

It's pretty disgusting c/c++ code, but I was in a hurry, and now I'm going to go to sleep instead of cleaning it up!

Randy Sargent 11/21/2004


The next day I combined the functionality, and added a new set of optional rules for "safe" flying:

No wall-braking allowed (for normal spacecraft, that would be called a collision!). The only interaction with the ground that's allowed is a "safe landing", which means that -1 <= xvel <= 1 and 0 <= yvel <= 2 before collision (and after gravity, thrust added), xvel=yvel=0 after collision, and that after collision both the lower left and lower right corners of the vehicle are above rock (ie if x,y are the upper left, then (x,y+10) and (x+9,y+10) are both rock). Also, a safe landing is required after touching the start area (but not necessarily at the remote target). Combined source

Minimum steps, safe:

66666220020000000220022002200220022002200220022002200000000000000000111110000133
33222222222222000002000200000000222222222222222222060000014444446440400100026222
22222222202022200200000000200022222200222222333330302021332221200020000000020022
0022002200220022002200220022002000000200266666

Minimum fuel, safe:

66666220020000000220022002200220022002200220022002200000000000000000111111000100
00000101322222222222222202000000222002020202222222224200040000020664404440000000
00622222222222222222000000002020000000222222222222333312120203130203020000000002
0020022002200220022002200220022002200200000002066666