Посадка на Луну

Итак, для начала немного предистории. Я слышал, что давным-давно в журнале "Техника Молодежи" публиковался целый рассказ с программами для мк61 о полете с Земли на Луну. Так вот, эта прога не оттуда, я ее придумал сам, и не разу в жизни не видел оригинал. Кстати, тот кто видел пусть напишет.

Об игре.
Цель игры - посадить корабль на поверхность планеты, при этом удачной считается посадка со скоростью не больше 5 м/с. Корабль стартует с высоты 100 м с нулевой скоростью. На борту корабля есть 140 единиц топлива. Каждый ход игрок вводит расход топлива, при этом необоходимо знать, что для того, чтобы ускорение корабля равнялось нулю нужен расход в 9.8 ед/с.
Дозируя топливо необходимо сделать так, чтобы корабль сел на поверхность планеты со скоростью не более 5 м/с и чтобы вообще на это хватило топлива.
В начале каждого хода на индикатор выводится высота корабля, после этого надо нажать с/п и на индикатор выведется вертикальная скорось корабля в м/с, нажимаем с/п и видим количество оставшегося топлива, далее вводим расход и нажимаем с/п. Через несколько (около 20) секунд вы опять увидите высоту полета. Если на индикаторе появилось число 777, значит корабль сел успешно, если 666 то он разбился.

Очент удобно во время игры чертить график зависимости высоты от времени.
Регистры и соответствующие им величины:
R1 R2 R3 R4 R5 R6 R7 R8 R9
высота топливо скорость расход масса корабля ускорене g=9.8 м/с2 ускорение корабля время одного шага TEMP
В начале игры следует ввести 100 врегистр r1, 140 в r2,0 в r3, массу (например 10) r5, 9.8 в r6, время одного шага (например 1с) в r8.

Здесь лежит эта игра в формате эмулятора 3000
А теперь сама программа с комментариями.

ПХ1
с/п
ПХ3
с/п
ПХ2
с/п
ХП4
Блок ввода вывода, вывод регистров 1,3 и 2 и ввод расхода в регистр 4
1
0
*
ПХ5
/
ПХ6
-
ХП7
Подсчет ускорения корабля.
Вдется по формуле: (расход*10-mg)/m
ПХ8
*
ПХ3
+
ХП9
Подсчет скорости корабля по формуле: V=V0+at при этом подсчитанное V заносится в регистр R9
Fx2
В|
ПХ3
Fx2
-
ПХ7
/
2
/
Подсчет пройденного пути по формуле s=(v02-v12)/2a
Выдаст ЕГГОГ, если а=0 так что не допускайте этого. Под Fx2 подразумевается "в квадрате"
ПХ1
+
ХП1
Приращение высоты. h=h+s
ПХ9
ХП3
v0=v1
ПХ2
ПХ4
ПХ8
-
ХП2
Изменение запасов топлива по формуле: fuel=fuel-расход*t
K|x|
2
-
Fx>=0
46
БП
00
ПХ3
К|x|
5
-
Fx>=0
56
6
6
6
c/п
7
7
7
с/п
Блок проверки на приземление. Читается так:
if ((abs(h)-2)<=0)and((abs(v)-2)<=0) then и все такое...


назад
Я 2001
Hosted by uCoz