iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
自我挑戰組

Python Discord Bot(DC機器人)系列 第 26

Python Discord Bot#26 - 做中學 - 做個終極密碼(一)

  • 分享至 

  • xImage
  •  

想簡單做一個互動遊戲,
目前定了一個遊戲叫「終極密碼」,
而因為需要花些時間規劃並平日還是需要上班,
所以會直接寫研究的進度,
無法在一天內或二篇內寫完這個功能...

發想

由 發起者 使用slash_command 開啟新增遊戲場,
並 設定一個範圍N的數字,
而讓玩家們在 1~N 間,開始猜測的遊戲。

開場功能

需先建立一個 Slash_command 功能,
並讓其可以輸入 number 內容,
而輸出為 兩個按鈕與場次內容,
個人會想顯示 參加人員。

預設畫面:

/終極密碼 最大值(int)

XXX 已開啟了一場「終極密碼」
已參加 : XXX XXX OOO
確認好人數後,發起者按下開始
(Butoon)參加 (Button)開始


code

class GameNumberView(discord.ui.View):
        def __init__(self, author, maxValue):
          super().__init__(timeout=60)
          self.answer = random.randint(1, maxValue) # 答案
          self.author = author # 發起者
          self.playerList = [] # 參加人
          self.playerList.append(author.id)


        @discord.ui.button(label="點擊參加", style=discord.ButtonStyle.primary)
        async def button_callback(self, button:discord.ui.Button, interaction:discord.Interaction):
        
            message = f"<@{self.author.id}>已開啟了一場「終極密碼」"
            await interaction.response.edit_message(content=message)

        @discord.ui.button(label="開始", style=discord.ButtonStyle.success)
        async def button_start_callback(self, button:discord.ui.Button, interaction:discord.Interaction):
          if interaction.user.id == self.author.id:
              await interaction.response.send_message(content="開始!!")
          else:
              channel = Bot.get_channel(interaction.channel_id)
              await interaction.channel.send("發起者按下開始")
    

@Bot.slash_command(name=name, description="建立一個猜數字遊戲")
    async def create_game(ctx, 
                   number: Option(int, "猜數字的最大範圍1~N", name="最大值", min_value=2, required=True)):
        await ctx.send_response(f"<@{ctx.author.id}>已開啟了一場「終極密碼」\n 已參加 : <@{ctx.author.id}> \n確認好人數後,發起者按下開始w", view=GameNumberView(ctx.author, number))

https://ithelp.ithome.com.tw/upload/images/20230925/20106071l6ORPztVac.png


上一篇
Python Discord Bot#25 - Tasks 排程
下一篇
Python Discord Bot#27 - 做中學 - 做個終極密碼(二)
系列文
Python Discord Bot(DC機器人)31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言