diff --git a/game_task/game_task_encyclopedia.py b/game_task/game_task_encyclopedia.py index 9791d15..2eb53d1 100644 --- a/game_task/game_task_encyclopedia.py +++ b/game_task/game_task_encyclopedia.py @@ -220,7 +220,7 @@ def submit_answer(group_id, player_id, task_id, answer): return ( f"😔 哎呀,小伙伴\n" f"🌼 群 {group_id} 的任务 task_{active_task_id} 不见了\n" - f"🎀 可能已经被抢答啦!" + f"🎀 可能已经被抢答或过期啦!" ) if task_data['status'] == 'completed': @@ -245,8 +245,9 @@ def submit_answer(group_id, player_id, task_id, answer): description = result["description"] is_correct = points > 0 - # 记录历史并更新积分 + # 处理答案提交逻辑 if is_correct: + # 答对 situation cursor.execute( "UPDATE t_encyclopedia_players SET points = points + %s WHERE group_id = %s AND player_id = %s", (points, group_id, player_id) @@ -255,22 +256,24 @@ def submit_answer(group_id, player_id, task_id, answer): "UPDATE t_encyclopedia_active_tasks SET status = 'completed' WHERE group_id = %s AND active_task_id = %s", (group_id, active_task_id) ) - message = ( - f"🎉 {player_name} 太棒啦!\n" - f"🌟 任务:{question}\n" - f"🎈 答对了,真厉害!\n" - f"🌈 奖励:{points} 分\n" - f"🎀 提示:{description}" - if player_id == holder_id - else - f"🎉 {player_name} 抢答成功!\n" - f"🌟 任务:{question}\n" - f"🎈 原主:{holder_name}\n" - f"🌈 获得 {points} 分,太棒了!\n" - f"🎀 提示:{description}" - ) + if player_id == holder_id: + message = ( + f"🎉 {player_name} 太棒啦!\n" + f"🌟 任务:{question}\n" + f"🎈 答对了,真厉害!\n" + f"🌈 奖励:{points} 分\n" + f"🎀 提示:{description}" + ) + else: + message = ( + f"🎉 {player_name} 抢答成功!\n" + f"🌟 任务:{question}\n" + f"🎈 原主:{holder_name}\n" + f"🌈 获得 {points} 分,太棒了!\n" + f"🎀 提示:{description}" + ) else: - # 错误扣1分,确保积分不低于0 + # 答错 situation,任务保持 pending 状态,允许其他玩家继续抢答 cursor.execute( "UPDATE t_encyclopedia_players SET points = GREATEST(points - 1, 0) WHERE group_id = %s AND player_id = %s", (group_id, player_id) @@ -282,9 +285,11 @@ def submit_answer(group_id, player_id, task_id, answer): f"🎈 你答:{answer}\n" f"🌟 正确答案:{correct_answer_db}\n" f"🌈 扣 1 分,别灰心!\n" - f"🎀 提示:{description}" + f"🎀 提示:{description}\n" + f"🌟 任务 task_{active_task_id} 仍可抢答哦!" ) + # 记录提交历史 cursor.execute( "INSERT INTO t_encyclopedia_task_history (group_id, active_task_id, player_id, answer, is_correct, points_earned) VALUES (%s, %s, %s, %s, %s, %s)", (group_id, active_task_id, player_id, answer, is_correct, points) @@ -458,18 +463,9 @@ def setup_schedule(): # 主程序 if __name__ == "__main__": - # # 初始化群聊 - # print(add_group("group1", "admin1")) - # print(add_group("group2", "admin1")) - # - # # 初始化玩家 - # print(game_process_message("group1", "player1001", "/start", "玩家1")) - # print(game_process_message("group1", "player1002", "/start", "玩家2")) - # print(game_process_message("group2", "player2001", "/start", "玩家A")) - # print(game_process_message("group2", "player2002", "/start", "玩家B")) - # - # # 设置调度 - # setup_schedule() - - # 测试 /gettask - print(game_process_message("47530198896@chatroom", "player1001", "/gettask")) \ No newline at end of file + # 测试抢答功能 + print(game_process_message("47530198896@chatroom", "player1001", "/start", "玩家1")) + print(game_process_message("47530198896@chatroom", "player1002", "/start", "玩家2")) + print(game_process_message("47530198896@chatroom", "player1001", "/gettask")) + # 玩家2 抢答玩家1的任务 + print(game_process_message("47530198896@chatroom", "player1002", "/answer 1 珠穆朗玛峰")) \ No newline at end of file