Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет arvi ([info]arvi)
@ 2006-05-25 11:56:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Классические игры: «Маскон»,
   Фантастический сюжет и описание игры по программе «Маскон» — всё тот же ТМ-1985 №9.
' Маскон
' Публикация: ТМ-1985 N9
' Версия для ПМК (c) Михаил Пухов и Сергей Волков

' Маскон v1o
' Публикация: LJR, 25 мая 2006
' Точный перевод на QBasic (c) Илья Васильев
' Распространяется под GPL v2 или старше

CLS
PRINT " +++ Маскон +++"
PRINT

' Блок ввода исходных данных
PI# = 3.1415926#
G = 1.62: M = 2250: C = 3660: R = 1738000: RR = R
V = 0: U = 0: MM = 3500

' Данные "Маскона"
D = 50000: Q = .02: X = -400000

VK = SQR(R * G)
H = RR - R

DO
' Блок проверки: положительность высоты
  IF H < 0 THEN
    DO
     ' Полноценный посадочный блок из "Вершины":
     '   в "Масконе" использовался упрощённый посадочный блок T=-H/U
     T = ABS(T) / 2 * SGN(H)
     GOSUB P
    LOOP WHILE ABS(H) < .001
    H = 0
  END IF

' Рычаги управления

'   Расход топлива при манёвре не должен превышать 5% от полной массы корабля
' (для лунолётов класса "Кон-Тики" это составляет 100-200 кг, в зависимости
' от наличного запаса топлива).
'   Не рекомендуется также задавать время манёвра больше 100 с.  Последнее
' ограничение снимается лишь в свободном полёте, после выхода на орбиту;
' но и в этом случае следует анализировать ситуацию хотя бы каждые 1000 с.

 DO
   PRINT "Расстояние до центра:"; RR; "м",
   PRINT "Первая космическая:"; VK; "м/с"
   PRINT "Вертикальная скорость:"; U; "м/с",
   PRINT "Горизонтальная скорость:"; V; "м/с"
   PRINT "Запас топлива:"; MM; "кг", "Реактивное ускорение:"; A; "м/с^2"
   PRINT "Высота:"; H; "м",
   PRINT "Расстояние до маскона:"; X; "м"
   INPUT "угол, градусы; расход топлива, кг; время, с"; AL, DM, T
   AL = AL * PI# / 180

   ' Блок проверки: перерасход топлива
 LOOP WHILE DM > MM

' Блок вычисления: реактивное ускорение
 MM = MM - DM
 A = DM * C / ((M + MM) * T)
 GOSUB P

LOOP 'Главный игровой цикл

P:
' "Припев"
'   Определяет значения текущих переменных.
'   В программе "Маскон" гравитационное, кориолисово и центробежное
' ускорения не зависят от высоты.

  ' тяга, кориолисова сила
  T1 = V + (A * SIN(AL) - U * V / R - COS(ATN(X / D)) ^ 3 * Q * X / D) * T
  X = X + (V + T1) * T / 2
  V = T1

  ' тяга, тяготение, центробежная сила
  T1 = U + (A * COS(AL) - G + V * V / R - COS(ATN(X / D)) ^ 3 * Q) * T
  RR = RR + (U + T1) * T / 2
  U = T1

  H = RR - R
RETURN