#初始化开奖号码
import random
kaijiang_red=[x for x in range(1, 21)]
kaijiang_red_ball=random.sample(kaijiang_red, 5)
kaijiang_blue = [x for x in range(1, 11)]
kaijiang_blue_ball=random.choice(kaijiang_blue)
# 双色球说明
print("星宇双色球
n双色球投注规则具体规定如下:
n需要投注5个红色球号码和1个蓝色球号码,提示输入后输入5个红球号码(5个号码各不相同)和1个蓝球号码,"
"红球输入数值为1~20,蓝球输入数值为1~10,每两个号码之间用逗号隔开。
n双色球中奖规则具体规定如下:
n一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;
n二等奖:投注号码与当期开奖号码中的5个红色球号码相同,即中奖;
n三等奖:投注号码与当期开奖号码中的任意4个红色球号码和1个蓝色球号码相同,即中奖;
n四等奖:投注号码与当期开奖号码中的任意3个红色球号码和1个蓝色球号码相同,即中奖;
n例:假如当期开奖号码为:红球为1,8,13,15,18,蓝球为10,"
"小明投注号码为:红球为1,8,13,15,18,蓝球为10。则与当期号码全部相同,中一等奖。")
#计算排列情况(包括红球中五个,红球中四个以上,红球中三个以上这三种情况)
from itertools import permutations
jiang12=[]
for jiang12_permutation in permutations(kaijiang_red_ball, 5):
jiang12.append(jiang12_permutation)
jiang3_4=[]
for jiang3_4_permutation in permutations(kaijiang_red_ball,4):
jiang3_4.append(jiang3_4_permutation)
jiang3=[]
for i in range(1,6):
for j in range(1,21):
for x in range(0,len(jiang3_4)-1):
list1=list(jiang3_4[x])
list1.insert(i-1,j)
jiang3.append(list1)
jiang4_3=[]
for jiang4_3_permutation in permutations(kaijiang_red_ball,3):
jiang4_3.append(jiang4_3_permutation)
jiang4_4=[]
for i in range(1,5):
for j in range(1,21):
for x in range(0,len(jiang4_3)-1):
list1=list(jiang4_3[x])
list1.insert(i-1,j)
jiang4_4.append(list1)
jiang4=[]
for i in range(1,6):
for j in range(1,21):
for x in range(0,len(jiang4_4)-1):
list1=list(jiang4_4[x])
list1.insert(i-1,j)
jiang4.append(list1)
# 用户输入
import sys
x=input('请输入红球号码')
user_red_number = x.split(",")
user_red = [int(user_red_number[i]) for i in range(len(user_red_number))]
if (len(user_red)!=5 or len([x for x in user_red if x>20 or x<1]) or len(user_red) != len(set(user_red))):
print("您输入的值不符合规定")
sys.exit()
else:print("成功输入红球号码")
y=int(input('请输入蓝球号码'))
if (y>10|(y<1)):
print("您输入的值不符合规定")
sys.exit()
else:print("成功输入蓝球号码")
# 判断是否中奖
user_red_tuple = tuple(user_red)
if y==kaijiang_blue_ball:
if user_red_tuple in jiang12:
print("恭喜您中了一等奖")
elif user_red_tuple in jiang3:
print("恭喜您中了三等奖")
elif user_red_tuple in jiang4:
print("恭喜您中了四等奖")
elif user_red_tuple in jiang12:
print("恭喜您中了二等奖")
else:
print("很遗憾,您没有中奖")
print("本期红球号码为")
print(kaijiang_red_ball)
print("本期蓝球号码为")
print(kaijiang_blue_ball)
#用all列表模拟在数据库中删除用户买过的彩票(因为不是真的数据库,所以再次运行会重置all列表)
blue = []
red = [x for x in range(1, 21)]
for rad_ball_permutation in permutations(red, 5):
blue.append(rad_ball_permutation)
all = [blue,blue,blue,blue,blue,blue,blue,blue,blue,blue]
index_one = all[y - 1].index(user_red_tuple)
del all[y-1][index_one]