[英]How to get user input in discord.py
@client.command()
async def blackjack(ctx):
y= random.choice(deck)
x=random.choice(deck)
z=random.choice(deck)
a=random.choice(deck)
await ctx.send(f'{x, y}')
await ctx.send(f'{a, z}')
m = await client.wait_for("message", check=None)
if m == "Stand":
B = x+y
S = a+z
if S < B:
while S < B or S < 21:
await ctx.send(S= a+z+random.choice(deck))
if S > 21:
ctx.send("You win")
else:
ctx.send("You Lose")
else:
ctx.send("You Lose")
這是我的代碼片段,我試圖讓用戶輸入他是想站立還是抽另一張牌。 我還沒有實現繪圖功能,因為支架功能似乎不起作用。 我的牌組被正確定義為數字和。
我認為問題出在用戶輸入上,因為我對 discord.py 中的輸入不是很熟悉
如果程序可以工作,它會等待用戶的響應,如果他們想站起來抽牌,直到超過 21 或超過玩家,並打印出玩家是輸還是贏。
任何幫助,將不勝感激
我認為您沒有添加支票,您將其保留為 NONE。
所以你應該這樣做:
@client.command()
async def blackjack(ctx):
y= random.choice(deck)
x=random.choice(deck)
z=random.choice(deck)
a=random.choice(deck)
await ctx.send(f'{x, y}')
await ctx.send(f'{a, z}')
def check(msg):
return msg.author == ctx.author and msg.channel == ctx.channel and msg.content.lower().startswith()
msg = await client.wait_for("message", check=check)
if msg.content.lower().startswith("Stand"):
B = x+y
S = a+z
if S < B:
while S < B or S < 21:
await ctx.send(S= a+z+random.choice(deck))
if S > 21:
ctx.send("You win")
else:
ctx.send("You Lose")
else:
ctx.send("You Lose")
startswith() 純粹是可選的,但我建議您添加它!
您可以像這樣添加事件超時:
msg = await bot.wait_for("message", check=check, timeout=<anything you want in {int}>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.