首页 > 其他分享 >羽毛球比赛

羽毛球比赛

时间:2023-12-29 11:47:54浏览次数:30  
标签:羽毛球 比赛 wins score pow print return def

import random
import os


# 介绍比赛以及程序
def print_introduce():
print("This is a badminton game simulation program")
print("The program requires two players' ability values (expressed in decimals from 0 to 1)")
print("The last two student number: 49")
'''
羽毛球比赛规则
1. 21分制,3局2胜为佳
2. 每球得分制
3. 每回合中,取胜的一方加1分
4. 当双方均为20分时,领先对方2分的一方赢得该局比赛
5. 当双方均为29分时,先取得30分的一方赢得该局比赛
6. 一局比赛的获胜方在下一局率先发球
'''


# 获得输入
def get_inputs():
a = eval(input("Please enter the ability value of player A: "))
b = eval(input("Please enter the ability value of player B: "))
return a, b


# 模拟n场比赛
def sim_n_games(pow_a, pow_b):
a_wins, b_wins = 0, 0
while not race_over(a_wins, b_wins):
a_score, b_score = sim_one_game(pow_a, pow_b)
if a_score > b_score:
a_wins += 1
else:
b_wins += 1
return a_wins, b_wins


# 单局比赛结束
def game_over(a, b):
if (a == 21 and b < 20) or (b == 21 and a < 20):
return True
elif 20 <= a < 30 and 20 <= b < 30 and abs(a-b) == 2:
return True
elif a == 30 or b == 30:
return True


# 比赛结束
def race_over(a, b):
return a == 2 or b == 2


# 模拟单局比赛
def sim_one_game(pow_a, pow_b):
score_a, score_b = 0, 0
serving = 'A'
while not game_over(score_a, score_b):
if serving == 'A':
if random.random() < pow_a:
score_a += 1
else:
score_b += 1
serving = 'B'
else:
if random.random() < pow_b:
score_b += 1
else:
score_a += 1
serving = 'A'
return score_a, score_b


# 输出结果
def print_summary(a_wins, b_wins):
print(f"A : B --- {a_wins}:{b_wins}")
if a_wins > b_wins:
print("Player A took the lead in winning two games and won.")
else:
print("Player B took the lead in winning two games and won.")


def main():
print_introduce()
a_pow, b_pow = get_inputs()
wins_a, wins_b = sim_n_games(a_pow, b_pow)
print_summary(wins_a, wins_b)


main()

 

标签:羽毛球,比赛,wins,score,pow,print,return,def
From: https://www.cnblogs.com/ylnx/p/17934458.html

相关文章

  • 乒乓球比赛
    fromrandomimportrandom#打印程序介绍信息defprintIntro():print("这是单人赛模拟程序:")#获得程序运行参数defgetInputs():a=eval(input("请输入选手A的能力值(0-1):"))b=eval(input("请输入选手B的能力值(0-1):"))n=eval(input......
  • 羽毛球比赛规则
    fromrandomimportrandomprint('学号后两位:47')print('22信计1晁丽,2022310143047')deffirst():print("这个程序模拟两个选手A和B的羽毛球竞技比赛")print("程序运行需要A和B的能力值(以0到1之间的小数表示)")defsecond():a=float(input("请输入选手A的能力值(0-1):"......
  • 比赛模拟
    fromrandomimportrandom#打印程序介绍信息defprintIntro():print("22信计1班23号")print("这是单人赛模拟程序:")#获得程序运行参数defgetInputs():a=eval(input("请输入选手A的能力值(0-1):"))b=eval(input("请输入选手B的能力值(0-1):......
  • 羽毛球比赛
    fromrandomimportrandomdefprintIntro():print("学号09,题目为模拟羽毛球")defgetInputs():a=eval(input("请输入选手A的能力值(0—1):"))b=eval(input("请输入选手B的能力值(0—1):"))returna,bdefsimNgames(n,probA,probB):winsA......
  • py123——模拟体育竞技分析:乒乓球比赛
    模拟体育竞技分析:一.‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬采用乒乓球比赛规则一局比赛:‪‬......
  • 羽毛球比赛python
    importrandomimportosprint("2班17向悦")#介绍比赛以及程序defprint_introduce():print("Thisisabadmintongamesimulationprogram")print("Theprogramrequirestwoplayers'abilityvalues(expressedindecimalsfrom0to1)&q......
  • 排球比赛模拟
    importrandomdefprint_intro():print("排球比赛模拟程序")print("-------------------------------")definput_teams():team1_ability=float(input("请输入第一个球队的能力值:"))team2_ability=float(input("请输入第二个球队的能力值:"))returnteam1......
  • 记参加的第一次CTF比赛
    writeup战队:理大-立冬爱吃饺子队长:XY.伟文队员:浓雾KING邮箱:[email protected]队员:Y.小东北邮箱:[email protected]:1.WelcomeToISCTF2022关注公众号,发送ISCTF2022就会给你发送flag。flag为ISCTF{We1c0me_T0_ISCTF&BlueShark}2.简单社工找图片中的关键信息例......
  • 比赛模拟程序设计
    模拟体育竞技分析:a.采用乒乓球比赛规则(学号尾号为0,1,2,3同学必做及格题)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬......
  • 模拟体育竞技分析之采用排球比赛规则
    (1)模拟体育竞技分析:(不同学号选做不同题目,必做题)b.采用排球比赛规则(学号尾号为4,5,6同学必做及格题)。赛制规定:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪......