You need to enable JavaScript to run this app. discord.py开发实现支持多用户参与的无限次猜数字功能问题
优惠活动
大模型
产品
解决方案
定价
更多

discord.py开发实现支持多用户参与的无限次猜数字功能问题

discord.py 多用户无限次猜数字功能实现方案

注意:使用前请确保代码头部已导入random模块

核心修改逻辑

  • 游戏启动时一次性生成随机目标数字,不会每次猜测都重置
  • 消息监听增加过滤规则,仅响应当前频道内用户发送的纯数字内容,不限制用户身份,所有频道内用户都可以参与
  • 移除原有5次猜测的次数限制,改用无限循环,只有用户猜中正确数字才结束游戏
  • 增加非数字输入的容错处理,避免用户发送非数字内容导致程序报错

完整实现代码

@commands.command()
async def gtn(self, ctx):
    # 游戏启动时仅生成一次1-10的目标数字
    target_num = random.randint(1, 10)
    await ctx.send("猜数字游戏开始!大家可以输入1-10之间的数字参与猜测,猜中即结束游戏")
    
    def check(msg):
        # 过滤规则:仅接收当前频道的纯数字消息
        return msg.channel == ctx.channel and msg.content.isdigit()
    
    while True:
        # 等待符合规则的用户消息
        response = await self.client.wait_for('message', check=check)
        guess = int(response.content)
        
        if guess == target_num:
            await ctx.send(f"恭喜 {response.author.mention} 猜对了!正确数字是 {target_num}")
            # 猜中后跳出循环,结束游戏
            break
        elif guess < target_num:
            await ctx.send("猜小了,再试试~")
        else:
            await ctx.send("猜大了,再试试~")

可选优化点

  • 可新增游戏状态标记,避免同一频道同时启动多局猜数字游戏
  • 可在check规则中增加终止指令判断,支持管理员手动提前结束游戏

内容的提问来源于stack exchange,提问作者Trayzr6746

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 05:39:02