模拟体育竞技分析
import math
def is_win_game(a, b):
"""判断单局是否结束,返回获胜方 1/2,未结束返回0"""
diff = abs(a - b)
if diff < 2:
return 0
if a >= 11 or b >= 11:
if a > b:
return 1
else:
return 2
return 0
def play_match(match_type):
"""
模拟整场比赛
match_type: 1=单打七局四胜,2=双打/团体五局三胜
"""
win_limit = 4 if match_type == 1 else 3
player1_win = 0
player2_win = 0
game_num = 1
print("开始比赛")
print("1-单打七局四胜 | 2-双打/团体五局三胜")
print("输入每局两人得分,输入负数结束本局\n")
while player1_win < win_limit and player2_win < win_limit:
print(f"---第{game_num}局---")
score1, score2 = 0, 0
while True:
try:
s1 = int(input("选手1本局得分:"))
s2 = int(input("选手2本局得分:"))
except ValueError:
print("请输入数字!")
continue
if s1 < 0 or s2 < 0:
break
score1 = s1
score2 = s2
res = is_win_game(score1, score2)
if res != 0:
break
print("本局未结束,分差不足2分或未到11分,请继续输入分数\n")
# 判断本局胜者
winner = is_win_game(score1, score2)
if winner == 1:
player1_win += 1
print(f"第{game_num}局:选手1胜,比分{score1}:{score2}")
else:
player2_win += 1
print(f"第{game_num}局:选手2胜,比分{score1}:{score2}")
print(f"当前大比分:选手1 {player1_win} - {player2_win} 选手2\n")
game_num += 1
# 整场结果
if player1_win == win_limit:
print(f"整场比赛结束!选手1获胜,总比分{player1_win}:{player2_win}")
else:
print(f"整场比赛结束!选手2获胜,总比分{player1_win}:{player2_win}")
if name == "main":
print("请选择比赛类型:")
t = int(input("1 单打淘汰赛(七局四胜) | 2 双打/团体赛(五局三胜):"))
play_match(t)
print("学号后两位:02")

浙公网安备 33010602011771号