def match_task(self):
self.match_message = await self.bot.send_embed(self.text_channel, "Loading..")
await self.update_match_embed()
while True:
player = [self.black_player, self.white_player][int(self.turn)]
if player == self.bot.user:
await self.bot.edit_message(self.match_message, embed = self.match_embed.set_footer(text = "I'm thinking.."))
self.chess_engine.position(self)
self.chess_engine.go(movetime = 2000, async_callback = self.process_chess_engine_command)
await self.generated_move.wait()
self.generated_move.clear()
self.push(self.best_move)
await self.update_match_embed(footer_text = "I moved {}".format(self.best_move))
else:
message = await self.bot.wait_for_message(author = player, channel = self.text_channel, check = lambda msg: self.valid_move(msg.content))
await self.bot.edit_message(self.match_message, embed = self.match_embed.set_footer(text = "Processing move.."))
self.make_move(message.content)
footer_text = discord.Embed.Empty if self.is_game_over() else "It is {}'s ({}'s) turn to move".format(["black", "white"][int(self.turn)], [self.black_player, self.white_player][int(self.turn)])
await self.update_match_embed(footer_text = footer_text)
try:
await self.bot.delete_message(message)
except discord.errors.Forbidden:
pass
评论列表
文章目录