Skip to content

Commit e0d4307

Browse files
authored
Add files via upload
1 parent 3ae2c0d commit e0d4307

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

SoyuzDocking.py

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
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

Comments
 (0)