记得之前,我曾经写过一个欧冠抽签的小程序
不过之前写的那个程序其实还是有一点小bug
让我们回顾一下
不过之前的程序还是有一点小bug的
经过十一的调试
终于祭出了修订版
这次可以满足先抽球队再抽小组了
也能实现俄罗斯球队与乌克兰球队
二者之间的回避
如果运行报错
没关系,再尝试运行一下就行了
先贴上代码
var foo = 'bar';
import random
d1=(('切尔西','英格兰'),('比利亚雷亚尔','西班牙'),('曼城','英格兰'),('马德里竞技','西班牙'),('国际米兰','意大利'),('葡萄牙体育','葡萄牙'),('里尔','法国'),('拜仁慕尼黑','德国'))
d2=(('巴塞罗那','西班牙'),('皇家马德里','西班牙'),('多特蒙德','德国'),('曼联','英格兰'),('利物浦','英格兰'),('巴黎圣日耳曼','法国'),('塞维利亚','西班牙'),('尤文图斯','意大利'))
d3=(('亚特兰大','意大利'),('RB莱比锡','德国'),('萨尔茨堡红牛','奥地利'),('波尔图','葡萄牙'),('阿贾克斯','荷兰'),('顿涅茨克矿工','乌克兰'),('本菲卡','葡萄牙'),('泽尼特','俄罗斯'))
d4=(('AC米兰','意大利'),('沃尔夫斯堡','德国'),('布鲁日','比利时'),('贝西克塔斯','土耳其'),('基辅迪纳摩','乌克兰'),('马尔默','瑞典'),('伯尔尼年轻人','瑞士'),('谢里夫','摩尔多瓦'))
f1=list(d1)
f2=list(d2)
f3=list(d3)
f4=list(d4)
fenzu=[]
for i in range(8):
fenzu.append([])
random.shuffle(f1)
random.shuffle(f2)
random.shuffle(f3)
random.shuffle(f4)
#抽第一档球队
for m in range(8):
fenzu[m].append(f1[m])
#抽第二档球队
for n in range(8):
availgroup=[]
drawteam=f2[n]
for j in range(8):
if len(fenzu[j])<2:
fircountry=fenzu[j][0][1]
seccountry=drawteam[1]
if fircountry != seccountry:
if fircountry =='俄罗斯' and seccountry=='乌克兰':
continue
elif fircountry =='乌克兰' and seccountry=='俄罗斯':
continue
else:
availgroup.append(j)
else:
continue
random.shuffle(availgroup)
fenzu[availgroup[0]].append(drawteam)
#抽第三档球队
for n in range(8):
availgroup=[]
drawteam=f3[n]
for j in range(8):
if len(fenzu[j])<3:
fircountry=fenzu[j][0][1]
seccountry=fenzu[j][1][1]
thircountry=drawteam[1]
if thircountry != fircountry and thircountry != seccountry:
if thircountry =='俄罗斯':
if fircountry =='乌克兰' or seccountry=='乌克兰':
continue
else:
availgroup.append(j)
elif thircountry =='乌克兰':
if fircountry =='俄罗斯' or seccountry=='俄罗斯':
continue
else:
availgroup.append(j)
else:
availgroup.append(j)
else:
continue
random.shuffle(availgroup)
fenzu[availgroup[0]].append(drawteam)
#抽第四档球队
for n in range(8):
availgroup=[]
drawteam=f4[n]
for j in range(8):
if len(fenzu[j])<4:
fircountry=fenzu[j][0][1]
seccountry=fenzu[j][1][1]
thircountry=fenzu[j][2][1]
fourcountry=drawteam[1]
if fourcountry != fircountry and fourcountry != seccountry and fourcountry != thircountry:
if fourcountry =='俄罗斯':
if fircountry =='乌克兰' or seccountry=='乌克兰' or thircountry=='乌克兰':
continue
else:
availgroup.append(j)
elif fourcountry =='乌克兰':
if fircountry =='俄罗斯' or seccountry=='俄罗斯' or thircountry=='俄罗斯':
continue
else:
availgroup.append(j)
else:
availgroup.append(j)
else:
continue
random.shuffle(availgroup)
fenzu[availgroup[0]].append(drawteam)
for n in range(8):
print(fenzu[n])
尝试用本赛季欧冠分档试了一下
不知道你支持的球队被我试进死亡之组了吗
附上两个程序运行结果
[('比利亚雷亚尔', '西班牙'), ('尤文图斯', '意大利'), ('波尔图', '葡萄牙'), ('伯尔尼年轻人', '瑞士')]
[('拜仁慕尼黑', '德国'), ('曼联', '英格兰'), ('阿贾克斯', '荷兰'), ('马尔默', '瑞典')]
[('葡萄牙体育', '葡萄牙'), ('巴黎圣日耳曼', '法国'), ('亚特兰大', '意大利'), ('布鲁日', '比利时')]
[('国际米兰', '意大利'), ('利物浦', '英格兰'), ('萨尔茨堡红牛', '奥地利'), ('谢里夫', '摩尔多瓦')]
[('切尔西', '英格兰'), ('塞维利亚', '西班牙'), ('泽尼特', '俄罗斯'), ('沃尔夫斯堡', '德国')]
[('里尔', '法国'), ('皇家马德里', '西班牙'), ('RB莱比锡', '德国'), ('AC米兰', '意大利')]
[('马德里竞技', '西班牙'), ('多特蒙德', '德国'), ('顿涅茨克矿工', '乌克兰'), ('贝西克塔斯', '土耳其')]
[('曼城', '英格兰'), ('巴塞罗那', '西班牙'), ('本菲卡', '葡萄牙'), ('基辅迪纳摩', '乌克兰')]
[('切尔西', '英格兰'), ('巴塞罗那', '西班牙'), ('亚特兰大', '意大利'), ('布鲁日', '比利时')]
[('国际米兰', '意大利'), ('利物浦', '英格兰'), ('泽尼特', '俄罗斯'), ('马尔默', '瑞典')]
[('拜仁慕尼黑', '德国'), ('巴黎圣日耳曼', '法国'), ('波尔图', '葡萄牙'), ('谢里夫', '摩尔多瓦')]
[('曼城', '英格兰'), ('皇家马德里', '西班牙'), ('RB莱比锡', '德国'), ('AC米兰', '意大利')]
[('马德里竞技', '西班牙'), ('多特蒙德', '德国'), ('本菲卡', '葡萄牙'), ('贝西克塔斯', '土耳其')]
[('葡萄牙体育', '葡萄牙'), ('曼联', '英格兰'), ('顿涅茨克矿工', '乌克兰'), ('沃尔夫斯堡', '德国')]
[('里尔', '法国'), ('塞维利亚', '西班牙'), ('阿贾克斯', '荷兰'), ('伯尔尼年轻人', '瑞士')]
[('比利亚雷亚尔', '西班牙'), ('尤文图斯', '意大利'), ('萨尔茨堡红牛', '奥地利'), ('基辅迪纳摩', '乌克兰')]