- 46
- 12
Писал бота тг
Простая развивалка
Майнинг Ферма / Дача / Информация
Код очень простой лень его доделывать такой можно взять под основу бота
И доделать его, и получить хорошего бота
Простая развивалка
Майнинг Ферма / Дача / Информация
Код очень простой лень его доделывать такой можно взять под основу бота
И доделать его, и получить хорошего бота
main:
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram import F
API_TOKEN = ''
# Логирование
logging.basicConfig(level=logging.INFO)
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
# Хранилище
users_data = {}
# Клавиатура
def get_main_menu():
keyboard = ReplyKeyboardBuilder()
keyboard.button(text='Моя информация')
keyboard.button(text='Майнинг ферма')
keyboard.button(text='Дача')
keyboard.button(text='Заработать деньги')
return keyboard.as_markup(resize_keyboard=True)
def init_user(user_id):
if user_id not in users_data:
users_data[user_id] = {
'balance': 1000,
'farms': 0,
'houses': 0,
'farm_income': 10,
'house_income': 50,
'farm_price': 500,
'house_price': 1000
}
@dp.message(Command("start"))
async def send_welcome(message: types.Message):
init_user(message.from_user.id)
await message.answer(f"Привет, {message.from_user.first_name}! Добро пожаловать в экономическую игру. У тебя на счету 1000 монет.", reply_markup=get_main_menu())
@dp.message(F.text == 'Моя информация')
async def show_info(message: types.Message):
user_id = message.from_user.id
init_user(user_id)
data = users_data[user_id]
await message.answer(
f"Твой баланс: {data['balance']} монет\n"
f"Майнинг ферм: {data['farms']} (доход {data['farm_income']} монет в час с каждой)\n"
f"Дач: {data['houses']} (доход {data['house_income']} монет в час с каждой)"
)
@dp.message(F.text == 'Майнинг ферма')
async def mining_farm(message: types.Message):
user_id = message.from_user.id
init_user(user_id)
data = users_data[user_id]
if data['balance'] >= data['farm_price']:
data['balance'] -= data['farm_price']
data['farms'] += 1
data['farm_price'] += 200 # Увеличиваем цену на следующую ферму
await message.answer(f"Ты купил майнинг ферму! Теперь у тебя {data['farms']} ферм(ы). Следующая ферма стоит {data['farm_price']} монет.")
else:
await message.answer(f"У тебя недостаточно средств для покупки фермы. Текущая цена фермы: {data['farm_price']} монет.")
@dp.message(F.text == 'Дача')
async def buy_house(message: types.Message):
user_id = message.from_user.id
init_user(user_id)
data = users_data[user_id]
if data['balance'] >= data['house_price']:
data['balance'] -= data['house_price']
data['houses'] += 1
data['house_price'] += 500 # Увеличиваем цену на следующую дачу
await message.answer(f"Ты купил дачу! Теперь у тебя {data['houses']} дач(и). Следующая дача стоит {data['house_price']} монет.")
else:
await message.answer(f"У тебя недостаточно средств для покупки дачи. Текущая цена дачи: {data['house_price']} монет.")
@dp.message(F.text == 'Заработать деньги')
async def earn_money(message: types.Message):
user_id = message.from_user.id
init_user(user_id)
data = users_data[user_id]
income = data['farms'] * data['farm_income'] + data['houses'] * data['house_income']
if income > 0:
data['balance'] += income
await message.answer(f"Ты заработал {income} монет! Твой текущий баланс: {data['balance']} монет.")
else:
await message.answer("У тебя пока нет ни ферм, ни дач для получения дохода.")
async def main():
await dp.start_polling(bot)
if __name__ == '__main__':
import asyncio
asyncio.run(main())
Не пишите что код дерьмо я сказал что это легкий скрипт и под предназначен как под основоу его надо делать чтоб он был нормальный