1
+ class SoyuzDocking :
2
+ def __init__ (self ):
3
+ self .distance = 500 # Расстояние до "Салют 7" в метрах
4
+ self .speed = 50 # Скорость к "Салют 7" в м/с
5
+ self .fuel = 100 # Количество топлива
6
+
7
+ # Сжечь топливо для замедления корабля
8
+ def perform_burn (self , burn_amount ):
9
+ self .speed = max (self .speed - burn_amount , 0 )
10
+ self .fuel = max (self .fuel - burn_amount , 0 )
11
+
12
+ # Обновить расстояние на основании текущей скорости
13
+ def update_distance (self ):
14
+ self .distance = max (self .distance - self .speed , 0 )
15
+
16
+ # Проверить, состыковался-ли корабль к Салют-7
17
+ def has_docked (self ):
18
+ return self .distance <= 0
19
+
20
+ # Создать последовательность стыковки
21
+ docking_sequence = SoyuzDocking ()
22
+
23
+ # Показать инструкции к игре
24
+ print ("Добро пожаловать в симуляцию стыковки Союз Т-6!" )
25
+ print ("Ваша миссия - стыковка со станцией Салют-7." )
26
+ print ("Вы можете управлять скоростью космического корабля сжигая топливо." )
27
+ print ("Каждая единица сожженного топлива замедляет космический корабль на 1 м/с." )
28
+ print ("Удачи экипажу!\n " )
29
+
30
+ # Главный игровой цикл
31
+ while not docking_sequence .has_docked ():
32
+ print (f"Расстояние до Салют-7: { docking_sequence .distance } метров" )
33
+ print (f"Скорость: { docking_sequence .speed } м/с" )
34
+ print (f"Топливо: { docking_sequence .fuel } кг" )
35
+
36
+ # Сообщение о провале миссии в случае если закончилось топливо
37
+ if docking_sequence .fuel <= 0 :
38
+ print ("Кончилось топливо!" )
39
+ break
40
+
41
+ # Запрос на активацию автопилота если расстояние до станции менее 11 м
42
+ if docking_sequence .distance < 11 :
43
+ autopilot = input ("До станции Салют-7 осталось менее 11 метров. Активировать режим автопилота для автоматической стыковки? (да/нет): " )
44
+ if autopilot .lower () == 'да' :
45
+ print ("Автопилот активирован." )
46
+ break
47
+
48
+ # Запрос и ввод количества топлива, которое нужно сжечь
49
+ burn_amount = input ("Сколько сжечь топлива для снижения скорости: " )
50
+ burn_amount = int (burn_amount )
51
+
52
+ # Сжигание топлива и обновление расстояния до космической станции
53
+ docking_sequence .perform_burn (burn_amount )
54
+ docking_sequence .update_distance ()
55
+
56
+ # Завершение процесса стыковки - проверить условия и вывести результат
57
+ if docking_sequence .distance <= 11 and docking_sequence .speed <= docking_sequence .distance :
58
+ print ("Стыковка подтверждена. Поздравляем экипаж!" )
59
+ else :
60
+ print ("Миссия провалена. Союз Т-6 не смог состыковаться с Салют-7." )
0 commit comments