体育竞技分析

时间:2022-03-05 23:37:21

                                              体育竞技分析

一、模拟体育竞技比赛1(羽毛球)

1、比赛规则:

  体育竞技分析

 

2、实现代码:

  

 1 #体育竞技
 2 from random import random
 3 def printInfo():
 4     print("这个程序模拟两个选手A和B的羽毛球竞技比赛")
 5     print("程序需要两个选手的能力值0-1") 
 6     print("规则:三局两胜--21分制")
 7     print("作者:一枚小可爱--08")
 8 
 9 def getInput():
10     a = eval(input("请输入选手A的能力值(0-1):"))
11 
12     b = eval(input("请输入选手B的能力值(0-1):"))
13 
14     m=eval(input("比赛的局数:"))
15 
16     n = eval(input("模拟比赛的场次:"))
17     return a,b,m,n
18 
19 
20 def printSummary(winsA,winsB):
21 
22     n = winsA + winsB
23 
24     print("竞技分析开始,共模拟{}场比赛".format(n))
25 
26     print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
27           
28     print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))
29 
30 
31 def simNGames(m,n,probA,probB):
32 
33     winsA,winsB = 0,0
34     wa,wb=0,0
35 
36     for i in range(n):
37         for i in range(m):
38 
39             scoreA,scoreB = simOneGame(probA,probB)
40 
41             if scoreA > scoreB:
42                  wa += 1
43             else:
44                 wb += 1
45 
46             if wa==2:
47                 winsA+=1
48                 wa,wb=0,0
49                 break
50             if wb==2:
51                 winsB+=1
52                 wa,wb=0,0
53                 break
54  
55 
56     return winsA,winsB
57         
58     
59 def simOneGame(probA,probB):
60 
61     scoreA,scoreB = 0,0
62 
63     serving = "A"
64     while not gameOver(scoreA,scoreB):
65 
66         if serving == "A":
67 
68             if random() < probA:
69 
70                 scoreA += 1
71             else:
72                 serving = "B"
73         else:
74             if random() < probB:
75                 scoreB += 1
76             else:
77                 serving = "A"
78     return scoreA,scoreB
79 def gameOver(a,b):
80     if(a>=20 or b>=20):
81         if(abs(a-b)==2 and a<=29 and b<=29):
82             return True
83         else:
84             return a==30 or b==30
85     else:
86         return False
87     
88 def main():
89     printInfo()
90     probA,probB,m,n = getInput()
91     winsA,winsB = simNGames(m,n,probA,probB)
92     printSummary(winsA,winsB)
93  
94 main()    

 

 

运行结果如下:

  体育竞技分析

 

3、用pyinstaller打包文件

使用pyinstaller打包,把Python脚本打包成可执行的文件。即把.py文件打包成.exe文件

我的文件路径为: C:\Users\Administrator\.spyder-py3\temp.py

操作如下:

  1、通过cmd命令

  2、输入pyinstaller  C:\Users\Administrator\.spyder-py3\temp.py(即pyinstaller+文件路径)

运行结果如下:

  体育竞技分析

 

有运行结果知:生成的文件放在了"C:\Users\Administrator\dist\temp"中

如图所示:

    体育竞技分析

 

打开这个文件后,所示如下:

  体育竞技分析

 

可以在这个页面里输入哦~~~~

 

 

二、模拟体育竞技比赛2(篮球)

1、比赛规则: