Last active
July 2, 2025 10:57
-
-
Save Kotokola/e05c5561f7fdae16686c71af52e41343 to your computer and use it in GitHub Desktop.
Game
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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