体育竞技分析

                                              体育竞技分析

一、模拟体育竞技比赛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、比赛规则:

  

  

 

转载于:https://www.cnblogs.com/sun0618-/p/10868603.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值