RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

全部问题

Martin Hope
Данил
Asked: 2024-08-18 22:14:22 +0000 UTC

请建议选择项目的正确架构。统一

  • 6

我已经绞尽脑汁想了两天了。简而言之,我正在制作一款游戏,并且针对武器和生命值实现了 2 个独立的逻辑。 (我试图使它们通用)这个概念是不存在这样的设备。该武器有一定数量的弹药,仅此而已。使用后,它会被扔掉,你会寻找另一件。我遵循这个逻辑。有一把武器,只有武器知道里面有多少子弹;玩家不应该知道任何事情;玩家的任务是在拿起武器并且有子弹的情况下重现射击。因此,任务是通过选择将哪些弹药筒添加到所使用的武器中来增加奖金。问题听起来是这样的。我不知道如何向武器添加弹药,以便拾取的弹药事先不知道武器(其他一切都一样)。我不想违反 SRP。请给我一些建议,让我朝哪个方向前进。我尝试应用访客模式并意识到它不属于这里。我也考虑过事件总线,但在我看来,它会导致同样的 SRP 违规,或者我在错误的方向上思考。

c#
  • 2 个回答
  • 68 Views
Martin Hope
Dima
Asked: 2024-08-18 17:52:35 +0000 UTC

如何将 AJAX 请求中的附加参数传递给 php

  • 4

大家好,我正在写一个社保的技术任务,遇到了无法向handler.php传递额外参数的问题

在此输入图像描述

我正在编写以下请求,如何在那里传递另一个自定义键参数:$arResult['APIKEY'],以便我可以在处理程序中使用它?

javascript
  • 1 个回答
  • 26 Views
Martin Hope
gth-other
Asked: 2024-08-18 16:57:24 +0000 UTC

C++二进制数据变化的优化表示

  • 6

服务器存储大约二十KB大小的字符串。该行定期被类似的行替换,变化可能是:

  1. 如有必要,添加一个小片段,将所有内容向右移动
  2. 删除一个小片段,如有必要,向左移动,所有内容都向左移动
  3. 将小片段中的数据替换为其他数据

及其各种组合。我们所说的小片段通常是指不超过五十字节。


服务器需要在每次更新此行后向所有善意客户端提供最新版本。由于更改相对于行的大小来说很小并且频繁发生,因此发送整行在流量消耗方面过于浪费。连接可确保所有数据包均按相同顺序无损坏、丢失、重复地传送。


我认为这个问题可以通过以下方式解决。除了线路的当前状态之外,服务器还将存储发送给客户端的最后一个数据包到达时应在客户端中的线路状态。在这种情况下,不必重新发送全部 20 KB,而只需重新发送特殊编码的更改即可。关于从新旧版本的二进制数据生成这种特殊编码的更改的主题,我可以查看哪些算法或实现?

c++
  • 1 个回答
  • 39 Views
Martin Hope
Asdasik
Asked: 2024-08-17 22:07:50 +0000 UTC

远程机器人。如何通过单击按钮,用户可以输入更多仅在所选按钮中触发的消息

  • 5

我想让用户选择一个按钮,然后可以写入数据,然后由特定代码处理。就我而言,当用户选择一个按钮时,立即触发在所选按钮中写入数据后应触发的代码。我不知道该怎么做((

短代码:

bot.message_handler(commands=['start'])
def first_message(message):
    bot.send_message(message.chat.id, f"Привет {message.from_user.first_name}. Этот бот считает прогресс дневной нормы калорий и белка(может и не считает)")
    markup = ReplyKeyboardMarkup(row_width=2)
    for button_name in FUNC_BUTTON:
        item_button = KeyboardButton(button_name)
        markup.add(item_button)
    bot.send_message(message.chat.id, "Кнопочку нажмите", reply_markup=markup)

@bot.message_handler(func= lambda call:True)
def send_kall_status(message):
    if message.text == "Записать че сьел":
        # тот самый код который должен ожидать информацию от пользователя
    elif message.text == "Посмотреть че сьел":
        pass

完整代码:

import os
from telebot import TeleBot
from dotenv import load_dotenv
from db_postgres import BotDB
from telebot.types import ReplyKeyboardMarkup, KeyboardButton
load_dotenv()

BotDB = BotDB()
bot = TeleBot(os.getenv('API_KEY'))

class Data:
    state = 'none'
    all_calories = 0
    protein = 0
    writen_calories = 0
FUNC_BUTTON = ["Посмотреть че сьел", "Записать че сьел"]

data = Data()

def calc_info(message):
    message_kall_info = message.text
    if message_kall_info.isdigit() == True:
        if data.state == 'kallories':
            data.writen_calories = int(message_kall_info)
            data.all_calories += data.writen_calories
            bot.send_message(message.chat.id, "Введите количество белка")
            data.state = 'protein'
        elif data.state == 'protein':
            count_protein = int(message_kall_info)
            data.protein += count_protein
            # bot.send_message(message.chat.id, f"Калории: {data.all_calories}, Белок: {data.protein}")

            # asdas = cursor.execute("SELECT * FROM bzu_info")
            # print(asdas)
    else:
        data.state = "none"
        bot.send_message(message.chat.id, "Вы ввели не цифрууууууууууууууууууууууу")


@bot.message_handler(commands=['start'])
def first_message(message):
    if (not BotDB.user_exsistis(message.from_user.id)):
        BotDB.add_user(message.from_user.id, message.from_user.first_name)
    else:
        BotDB.user_update_last_time(message.from_user.id)
    bot.send_message(message.chat.id, f"Привет {message.from_user.first_name}. Этот бот считает прогресс дневной нормы калорий и белка(может и не считает)")
    markup = ReplyKeyboardMarkup(row_width=2)
    for button_name in FUNC_BUTTON:
        item_button = KeyboardButton(button_name)
        markup.add(item_button)
    bot.send_message(message.chat.id, "Кнопочку нажмите", reply_markup=markup)

@bot.message_handler(func= lambda call:True)
def send_kall_status(message):
    if message.text == "Записать че сьел":
        if data.state == 'none':
            data.state = 'kallories'
            calc_info(message)
        elif data.state == 'protein':
            calc_info(message)
            data.state = 'none'
            BotDB.add_bzu_info(message.from_user.id, data.protein, data.all_calories)
            user_bzu_info = BotDB.get_bzu_info(message.from_user.id)

            bot.send_message(message.chat.id, f"Количество калории: {user_bzu_info[1]}, Количество белка: {user_bzu_info[0]}")
    elif message.text == "Посмотреть че сьел":
        pass
bot.infinity_polling()
python
  • 1 个回答
  • 32 Views
Martin Hope
Nazar
Asked: 2024-08-17 21:22:01 +0000 UTC

Telegram 机器人不回复群组中的消息。蟒蛇 aiogram

  • 5

机器人通过按钮向群组发送消息。单击此按钮后,它会要求您输入订单的全价。但由于某种原因它没有响应。该状态已声明并且机器人移动到该状态,但处理功能不起作用。代码:

async def handle_enter_price(self, callback_query: types.CallbackQuery, state: FSMContext):
    order_id = callback_query.data.split('_')[2]
    await state.update_data(order_id=order_id)

    await callback_query.message.answer("Введіть загальну ціну збірки для всіх товарів:")
    await state.set_state(Form.waiting_for_total_price_input)

    current_state = await state.get_state()
    print(f"Поточний стан: {current_state}")

async def process_total_price_input(self, message: types.Message, state: FSMContext):
    try:
        total_assembly_price = float(message.text.strip())
    except ValueError:
        await message.answer("Некоректне значення ціни. Введіть число.")
        return

    data = await state.get_data()
    order_id = data['order_id']
    print(order_id)

    # Оновлення загальної ціни в базі даних
    sql_requests.update_total_order_price(order_id, total_assembly_price)

    # Надсилання підсумкового повідомлення замовнику
    contractor_chat_id = sql_requests.get_contractor_chat_id(order_id)
    products_info = "\n".join(
        [f"Товар: {p['product']}, Артикул: {p['article']}, Вартість збірки: {total_assembly_price} грн" for p in
         data['products']]
    )

    await self.bot.send_message(contractor_chat_id,
                                f"Ціна на збірку оновлена:\n"
                                f"{products_info}\n"
                                f"Загальна вартість збірки: {total_assembly_price} грн"
                                )

    # Надсилання повідомлення в канал
    await self.send_to_channel(data, order_id)
    await state.clear()

注册状态:

self.dp.message.register(self.process_total_price_input, Form.waiting_for_total_price_input)
python
  • 1 个回答
  • 18 Views
上一页
下一页

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5