A while ago I asked about the possible origin of a Russian version of the "Lunar Lander" game. No definitive answers were given.
Meanwhile, I was able to decompile the binary into a semi-readable form (search for "landing", near line 300). A few variable names had been guessed, some incorrectly or in a misleading fashion, as some of the variables were reused for unrelated purposes. This is still a work in progress. Caveat lector.
The game asked, WHAT IS YOUR EXPERIENCE? 0 1 2(STANDARD) 3 4 5 6 7 8 9(NO EXPERIENCE)
The amount of fuel was computed as fuel := round(15000 + level * 500);
, then mass := 32500; drymass := mass - fuel;
When specifying the burn rate, it was possible to change the time step from the default 10 seconds to a lower number, down to 1 second.
A typical technique to do the landing is to free-fall for about 70 seconds, then to burn the maximum possible 200 lb/sec for about 65-70 seconds, then to start performing a more controlled descent.
I was able to write a simple program which has found winning sequences of burn rates for levels from 9 down to 2 (the standard 16000 lb), the latter using the 5-second interval, but nothing worked so far for harder levels (15500 or 15000 lb).
Assuming that BASIC versions of the game allowing to select the initial amount of fuel existed, and people have experience with them, my question is:
Was it at all possible to perform a successful landing using 15500 or less pounds of fuel, in any of such programs? The formulas in all of them are pretty much identical (*); the differences, if any, would be caused by variations in floating point representations, thus if a technique works in one of them, it should work in all.
Searching for "lunar lander best strategy" yields results related to other games.
As suggested by @lvd in the comments, the "launch" test results in (negative speeds are upwards):
ТIМЕ(SЕС) АLТ(МILЕS + FЕЕТ) VЕLОСIТУ(FРS) FUЕL(LВS)
0 0 5 0 16000
80 40 717 -6019 1
153 120 3679 -5633 1
With the standard fuel load, the initial altitude is reached with the speed comfortably exceeding 1 mps (5280 fps).
With 15500 lb of fuel, it's getting close:
ТIМЕ(SЕС) АLТ(МILЕS + FЕЕТ) VЕLОСIТУ(FРS) FUЕL(LВS)
0 0 5 0 15500
78 37 4707 -5745 1
157 120 3960 -5328 1
And with 15000 lb, it looks like a lost cause:
ТIМЕ(SЕС) АLТ(МILЕS + FЕЕТ) VЕLОСIТУ(FРS) FUЕL(LВS)
0 0 5 0 15000
75 34 3642 -5486 1
115 75 2410 -5275 1
It looks like the level 0 was deliberately unwinnable.
(*) It appears that a term in the rocket equation, log(Minit/Mfinal) = -log(Mfinal/Minit) = -log((Minit-Mspent)/Minit) = -log(1-Mspent/Minit), may be expressed incorrectly as log(1+Mspent/Minit), resulting in progressively imprecise calculations.