用python做一个简单的双色球系统

#初始化开奖号码
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。则与当期号码全部相同,中一等奖。")

#计算排列情况(计算出jiang12,jiang3,jiang4这三个列表,三个列表模拟随机双色球在摇出五个球后红球中五个,红球中四个以上,红球中三个以上这三种情况的所有情况)
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]
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值