Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save RimMirK/a18e4435f62f90b3bc66c4e8e1c08da5 to your computer and use it in GitHub Desktop.

Select an option

Save RimMirK/a18e4435f62f90b3bc66c4e8e1c08da5 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():
global balance, floors, num_floors, name
balance = 1000
floors = []
num_floors = 0
name = None
print("Игра перезапущена! Ваш баланс обнулен, и этажи очищены.")
wait_seconds(2)
def menu():
global balance, name, num_floors, floors
if load_game():
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(
["Продуктовый Магазин", "Обувной Магазин", "Ювелирный Магазин", "Магазин Электроники",
"Детский Магазин", "Банк", "Магазин Алкоголя"])
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_item()
elif choice == "6":
sell_item()
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_item():
global balance
if not floors:
print("У вас нету этажей для закупки товара!")
else:
floor_to_buy = input("На каком этаже вы хотите купить товар? ")
if floor_to_buy in floors:
if floor_to_buy == "Ювелирный Магазин":
tovar = input(
"Какой товар вы хотите купить? Платиновое кольцо, Серебряное кольцо, Колье, Кольцо с бриллиантом, Цепочка ")
if tovar == "Платиновое кольцо":
print("Данный товар обошелся вам в 75")
do_payment(75)
bought_item_jewerly.append("Платиновое кольцо")
if tovar == "Серебряное кольцо":
print("Данный товар обошелся вам в 125")
do_payment(125)
bought_item_jewerly.append("Серебряное кольцо")
if tovar == "Колье":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_jewerly.append("Колье")
if tovar == "Кольцо с бриллиантом":
print("Данный товар обошелся вам в 175")
do_payment(175)
bought_item_jewerly.append("Кольцо с бриллиантом")
if tovar == "Цепочка":
print("Данный товар обошелся вам в 150")
do_payment(150)
bought_item_jewerly.append("Цепочка")
if floor_to_buy == "Магазин Электроники":
tovar = input("Какой товар вы хотите купить? Ноутбук, Монитор, Мышка, Клавиатура, Наушники ")
if tovar == "Ноутбук":
print("Данный товар обошелся вам в 400")
do_payment(400)
bought_item_electronic.append("Ноутбук")
if tovar == "Монитор":
print("Данный товар обошелся вам в 350")
do_payment(350)
bought_item_electronic.append("Монитор")
if tovar == "Мышка":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_electronic.append("Мышка")
if tovar == "Клавиатура":
print("Данный товар обошелся вам в 300")
do_payment(300)
bought_item_electronic.append("Клавиатура")
if tovar == "Наушники":
print("Данный товар обошелся вам в 250")
do_payment(250)
bought_item_electronic.append("Наушники")
if floor_to_buy == "Продуктовый Магазин":
tovar = input("Какой товар вы хотите купить? Мясо говяжье, Хлеб, Колбаса, Йогурт, Чай ")
if tovar == "Мясо говяжье":
print("Данный товар обошелся вам в 200")
do_payment(200)
bought_item_food.append("Мясо говяжье")
if tovar == "Чай":
print("Данный товар обошелся вам в 100")
do_payment(100)
bought_item_food.append("Чай")
if tovar == "Йогурт":
print("Данный товар обошелся вам в 50")
do_payment(50)
bought_item_food.append("Йогурт")
if tovar == "Хлеб":
print("Данный товар обошелся вам в 30")
do_payment(30)
bought_item_food.append("Хлеб")
if tovar == "Колбаса":
print("Данный товар обошелся вам в 150")
do_payment(150)
bought_item_food.append("Колбаса")
if floor_to_buy not in floors:
print("У Вас нету этого этажа / его не существует!")
def sell_item():
global balance
if not floors:
print("У вас нет построенных этажей для продажи товаров.")
return
print("Выберите этаж, на котором хотите выставить товар:")
for index, floor in enumerate(floors):
print(f"{index + 1}: {floor}")
floor_choice = int(input("Введите номер этажа: ")) - 1
if floor_choice < 0 or floor_choice >= len(floors):
print("Некорректный выбор этажа.")
return
item_type = input("Какой товар вы хотите продать? (ювелирные изделия/обувь/еда/электроника): ").strip().lower()
item_price = random.randint(50, 500) # Генерируем случайную цену для товара.
item_quantity = int(input("Введите количество товаров для продажи: "))
if item_type == "ювелирные изделия":
bought_item_jewerly.append((item_quantity, item_price))
elif item_type == "обувь":
bought_item_shoe.append((item_quantity, item_price))
elif item_type == "еда":
bought_item_food.append((item_quantity, item_price))
elif item_type == "электроника":
bought_item_electronic.append((item_quantity, item_price))
else:
print("Неизвестный тип товара.")
return
print(f"{item_quantity} единиц(ы) {item_type} выставлено на продажу на {floors[floor_choice]}.")
def collect_money():
global balance
collected_money = 0
items_info = []
if bought_item_jewerly:
total_jewerly = sum(quantity * price for quantity, price in bought_item_jewerly)
collected_money += total_jewerly
items_info.append(f"Ювелирные изделия: {total_jewerly}")
if bought_item_shoe:
total_shoe = sum(quantity * price for quantity, price in bought_item_shoe)
collected_money += total_shoe
items_info.append(f"Обувь: {total_shoe}")
if bought_item_food:
total_food = sum(quantity * price for quantity, price in bought_item_food)
collected_money += total_food
items_info.append(f"Еда: {total_food}")
if bought_item_electronic:
total_electronic = sum(quantity * price for quantity, price in bought_item_electronic)
collected_money += total_electronic
items_info.append(f"Электроника: {total_electronic}")
if collected_money == 0:
print("Нет товаров для сбора.")
else:
balance += collected_money
print("Вы собрали:", collected_money)
print("Деньги были собраны с следующих товаров:")
for info in items_info:
print(info)
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['balance']
floors = game_data['floors']
num_floors = game_data['num_floors']
name = game_data['name']
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