HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Python
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 14.10.2024, 18:36
rvg.dll
Познающий
Регистрация: 18.04.2024
Сообщений: 56
С нами: 1092028

Репутация: 8
По умолчанию

Писал бота тг

Простая развивалка

Майнинг Ферма / Дача / Информация

Код очень простой лень его доделывать такой можно взять под основу бота

И доделать его, и получить хорошего бота



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
(
)
)


Не пишите что код дерьмо я сказал что это легкий скрипт и под предназначен как под основоу его надо делать чтоб он был нормальный
 
Ответить с цитированием

  #2  
Старый 16.10.2024, 09:25
stool
Постоянный
Регистрация: 06.03.2024
Сообщений: 482
С нами: 1153270

Репутация: 68
По умолчанию

Цитата:
Сообщение от rvgvkk46.dll  

Не пишите что код дерьмо я сказал что это легкий скрипт и под предназначен как под основоу его надо делать чтоб он был нормальный
код дерьмо, скрипт написала нейросеть (что само по себе вроде и не плохо, но), практичность скрипта - нулевая, похожих существующих ботов целая куча, игры на тележных кнопках давно в прошлом с тех пор, как в телеге появились веб-приложения. бд нет, механизма конечного автомата нет, сохранения прогресса нет (после перезапуска бота все данные аннулируются), ниче кроме инкрементальной фигни в скрипте нет. выложил ради внимания и положительных реакций, не задавшись вопросом "а нужно ли это хоть кому-нибудь?" - фатальная ошибка.

 
Ответить с цитированием

  #3  
Старый 16.10.2024, 17:03
XRLM
Познавший АНТИЧАТ
Регистрация: 06.09.2021
Сообщений: 1,646
С нами: 2466635

Репутация: 133


По умолчанию

Установив питон, я почувствовал, что деградирую...
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.