Skip to content

Instantly share code, notes, and snippets.

@Kotokola
Last active July 2, 2025 10:57
Show Gist options
  • Select an option

  • Save Kotokola/e05c5561f7fdae16686c71af52e41343 to your computer and use it in GitHub Desktop.

Select an option

Save Kotokola/e05c5561f7fdae16686c71af52e41343 to your computer and use it in GitHub Desktop.
Game
import random
import time
import json
floors_counter = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', "11", "12", "13", "14", "15"]
balance = 1000
floors = []
name = None
bought_item_jewerly = []
bought_item_shoe = []
bought_item_electronic = []
bought_item_food = []
shop_item_jewerly = {"Платиновое кольцо":"100",
"Серебряное кольцо":"150",
"Колье":"125",
"Кольцо с бриллиантом":"200",
"Цепочка":"175"}
shop_item_shoe = {"Каблуки":"150",
"Кроссовки Adidas":"200",
"Кроссовки Nike":"200",
"Резиновые сапоги":"175",
"Галоши":"125"}
shop_item_food = {"Мясо говяжье":"300",
"Хлеб":"50",
"Колбаса":"200",
"Йогурт":"100",
"Чай":"150"}
shop_item_electronics = {"Ноутбук":"500",
'Монитор':"400",
"Мышка":"200",
"Клавиатура":"350",
"Наушники":"300"}
num_floors = 0
def wait_seconds(seconds=3):
time.sleep(seconds)
def restart_game():
with open("data.json", "w") as file:
file.truncate()
print("Игра перезапущена! Ваш баланс обнулен, и этажи очищены.")
wait_seconds(2)
def menu():
global balance, name, num_floors, floors
load_game()
if name is None:
name = input("Добро пожаловать! Введите своё имя: ")
else:
print(f"С возвращением, {name}! ")
wait_seconds(3)
while True:
menu_text = (
f"Добро пожаловать в игру 'Небоскреб', {name}! "
f"Возможные действия: "
f"1. Проверить баланс, "
f"2. Построить этаж, "
f"3. Показать этажи, "
f"4. Работать лифтером, "
f"5. Закупка товара, "
f"6. Выложить товар, "
f"7. Проверить на каком этаже какой товар, "
f"8. Собрать выручку, "
f"9. Перезапустить игру, "
f"10. Выход. "
"Каков ваш выбор? "
)
choice = input(menu_text)
if choice == "1":
print("Ваш баланс составляет:", balance)
elif choice == "2":
floor_cost = build_floor()
if balance >= floor_cost:
floor_name = random.choice(
["Продуктовый Магазин", "Обувной Магазин", "Ювелирный Магазин", "Магазин Электроники",
"Детский Магазин", "Банк", "Магазин Алкоголя"])
isinstance(floors, list)
floors.append(f"{floors_counter[num_floors]}. {floor_name}")
balance -= floor_cost
num_floors += 1
print("Этаж обошелся вам в", floor_cost, ". Вы построили этаж", floor_name)
else:
print("Недостаточно средств для постройки этажа.")
elif choice == "3":
view_floors()
elif choice == "4":
if not floors:
print("У вас недостаточно этажей")
else:
print("Вы везете пассажира. Время на поездку 30 секунд")
time.sleep(30)
income_lift = income_lifter()
balance += income_lift
print("Вы доставили пассажира, он заплатил Вам", income_lift)
elif choice == "5":
buy_product()
elif choice == "6":
upload_the_product()
elif choice == "7":
view_floors()
elif choice == "8":
collect_money()
elif choice == "9":
restart_game()
elif choice == "10":
print("До свидания!")
save_game()
break
else:
print("Я не знаю, о чем вы говорите")
def build_floor():
return random.randint(100, 500)
def income_lifter():
return random.randint(10, 200)
def view_floors():
if not floors:
print("У вас нет построенных этажей.")
else:
print("Построенные этажи:",floors)
def buy_product():
global balance
if not floors:
print("У вас нету этажей для закупки товара!")
else:
floor_to_buy = input("На каком этаже вы хотите купить товар? ")
if floor_to_buy in floors:
if floor_to_buy == "Ювелирный Магазин":
product = input(
"Какой товар вы хотите купить? Платиновое кольцо, Серебряное кольцо, Колье, Кольцо с бриллиантом, Цепочка ")
if product == "Платиновое кольцо":
print("Данный товар обошелся вам в 75")
do_payment(75)
bought_item_jewerly.append("Платиновое кольцо")
if product == "Серебряное кольцо":
print("Данный товар обошелся вам в 125")
do_payment(125)
bought_item_jewerly.append("Серебряное кольцо")
if product == "Колье":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_jewerly.append("Колье")
if product == "Кольцо с бриллиантом":
print("Данный товар обошелся вам в 175")
do_payment(175)
bought_item_jewerly.append("Кольцо с бриллиантом")
if product == "Цепочка":
print("Данный товар обошелся вам в 150")
do_payment(150)
bought_item_jewerly.append("Цепочка")
if floor_to_buy == "Магазин Электроники":
product = input("Какой товар вы хотите купить? Ноутбук, Монитор, Мышка, Клавиатура, Наушники ")
if product == "Ноутбук":
print("Данный товар обошелся вам в 400")
do_payment(400)
bought_item_electronic.append("Ноутбук")
if product == "Монитор":
print("Данный товар обошелся вам в 350")
do_payment(350)
bought_item_electronic.append("Монитор")
if product == "Мышка":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_electronic.append("Мышка")
if product == "Клавиатура":
print("Данный товар обошелся вам в 300")
do_payment(300)
bought_item_electronic.append("Клавиатура")
if product == "Наушники":
print("Данный товар обошелся вам в 250")
do_payment(250)
bought_item_electronic.append("Наушники")
if floor_to_buy == "Продуктовый Магазин":
product = input("Какой товар вы хотите купить? Мясо говяжье, Хлеб, Колбаса, Йогурт, Чай ")
if product == "Мясо говяжье":
print("Данный товар обошелся вам в 200")
do_payment(200)
bought_item_food.append("Мясо говяжье")
if product == "Чай":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_food.append("Чай")
if product == "Йогурт":
print("Данный товар обошелся вам в 50")
do_payment(50)
bought_item_food.append("Йогурт")
if product == "Хлеб":
print("Данный товар обошелся вам в 30")
do_payment(30)
bought_item_food.append("Хлеб")
if product == "Колбаса":
print("Данный товар обошелся вам в 150")
do_payment(150)
bought_item_food.append("Колбаса")
if floor_to_buy not in floors:
print("У Вас нету этого этажа / его не существует!")
def upload_the_product():
global balance
if not floors:
print("У вас нет построенных этажей для продажи товаров.")
return
else:
upload_the_product_on_floor = input("На каком этаже вы хотите выложить товар? ")
if upload_the_product_on_floor in floors:
if upload_the_product_on_floor == "Ювелирный Магазин":
if bought_item_jewerly:
print("Не доделал")
def collect_money():
global balance
collected_money = 0
def do_payment(amount):
global balance
if balance >= amount:
balance -= amount
print("Вы приобрели товар")
return True
else:
print("На вашем балансе недостаточно денег")
return False
def save_game():
game_data = {
'balance': balance,
'floors': floors,
'num_floors': num_floors,
'name': name
}
with open('data.json', 'w') as f:
json.dump(game_data, f)
print("Игра сохранена!")
def load_game():
global balance, floors, num_floors, name
try:
with open('data.json', 'r') as f:
game_data = json.load(f)
balance = game_data.get("balance", 1000)
floors = game_data.get("floors", [])
num_floors = game_data.get("num_floors", 0)
name = game_data.get("name", None)
print("Игра загружена!")
except FileNotFoundError:
print("Нет сохраненной игры.")
except json.JSONDecodeError:
print("Ошибка при загрузке игры. Файл поврежден.")
menu()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment