模拟体育竞技分析

def is_win_game(score_a: int, score_b: int) -> bool:
"""判断单局是否结束,True代表本局打完,False继续打球"""
diff = abs(score_a - score_b)
max_score = max(score_a, score_b)
if (max_score >= 11) and (diff >= 2):
return True
return False

def play_one_game() -> int:
"""模拟打一局,返回本局胜者:1代表选手A胜,2代表选手B胜"""
import random
a = 0
b = 0
while not is_win_game(a, b):

point = random.choice([1, 2])
if point == 1:
a += 1
else:
b += 1
print(f"本局比分 A:{a} - B:{b}", end=" ")
return 1 if a > b else 2

def play_match(match_type: str):
"""
打一整场比赛
:param match_type: 'single'单打(七局四胜), 'double'双打/团体(五局三胜)
"""
win_a = 0
win_b = 0
target_win = 4 if match_type == "single" else 3
print(f"\n===== {'单打七局四胜' if match_type=='single' else '双打/团体五局三胜'}比赛开始 =====")

round_cnt = 1
while win_a < target_win and win_b < target_win:
winner = play_one_game()
if winner == 1:
win_a += 1
print(f"第{round_cnt}局 选手A获胜")
else:
win_b += 1
print(f"第{round_cnt}局 选手B获胜")
round_cnt += 1

print(f"\n===== 整场比赛结束 =====")
if win_a > win_b:
print(f"最终比分 A:{win_a} - B:{win_b} 胜者:选手A")
else:
print(f"最终比分 A:{win_a} - B:{win_b} 胜者:选手B")

if name == "main":
print("1. 单打淘汰赛(七局四胜)")
print("2. 双打/团体淘汰赛(五局三胜)")
choice = input("请输入序号选择比赛类型:")
if choice == "1":
play_match("single")
elif choice == "2":
play_match("double")
else:
print("输入错误,程序退出")

posted @ 2026-07-03 14:34  Lin03  阅读(1)  评论(0)    收藏  举报