python实现转盘效果 python实现轮盘抽奖游戏


Posted in Python onJanuary 22, 2019

本文实例为大家分享了python实现转盘效果的具体代码,供大家参考,具体内容如下

#抽奖 面向对象版本
import tkinter
import time
import threading
 
class choujiang:
  #初始化魔术方法
  def __init__(self):
    #准备好界面
    self.root = tkinter.Tk()
    self.root.title('lowB版转盘')
    self.root.minsize(300, 300)
    # 声明一个是否按下开始的变量
    self.isloop = False
    self.newloop = False
    #调用设置界面的方法
    self.setwindow()
    self.root.mainloop()
 
 
 
  #界面布局方法
  def setwindow(self):
    #开始停止按钮
    self.btn_start = tkinter.Button(self.root, text = 'start/stop',command = self.newtask)
    self.btn_start.place(x=90, y=125, width=50, height=50)
 
    self.btn1 = tkinter.Button(self.root, text='赵', bg='red')
    self.btn1.place(x=20, y=20, width=50, height=50)
 
    self.btn2 = tkinter.Button(self.root, text='钱', bg='white')
    self.btn2.place(x=90, y=20, width=50, height=50)
 
    self.btn3 = tkinter.Button(self.root, text='孙', bg='white')
    self.btn3.place(x=160, y=20, width=50, height=50)
 
    self.btn4 = tkinter.Button(self.root, text='李', bg='white')
    self.btn4.place(x=230, y=20, width=50, height=50)
 
    self.btn5 = tkinter.Button(self.root, text='周', bg='white')
    self.btn5.place(x=230, y=90, width=50, height=50)
 
    self.btn6 = tkinter.Button(self.root, text='吴', bg='white')
    self.btn6.place(x=230, y=160, width=50, height=50)
 
    self.btn7 = tkinter.Button(self.root, text='郑', bg='white')
    self.btn7.place(x=230, y=230, width=50, height=50)
 
    self.btn8 = tkinter.Button(self.root, text='王', bg='white')
    self.btn8.place(x=160, y=230, width=50, height=50)
 
    self.btn9 = tkinter.Button(self.root, text='冯', bg='white')
    self.btn9.place(x=90, y=230, width=50, height=50)
 
    self.btn10 = tkinter.Button(self.root, text='陈', bg='white')
    self.btn10.place(x=20, y=230, width=50, height=50)
 
    self.btn11 = tkinter.Button(self.root, text='褚', bg='white')
    self.btn11.place(x=20, y=160, width=50, height=50)
 
    self.btn12 = tkinter.Button(self.root, text='卫', bg='white')
    self.btn12.place(x=20, y=90, width=50, height=50)
 
    # 将所有选项组成列表
    self.girlfrends = [self.btn1,self.btn2,self.btn3,self.btn4,self.btn5,self.btn6,self.btn7,self.btn8,self.btn9,self.btn10,self.btn11,self.btn12]
 
  def rounds(self):
    # 判断是否开始循环
    if self.isloop == True:
      return
 
    # 初始化计数 变量
    i = 0
    # 死循环
    while True:
      if self.newloop == True:
        self.newloop = False
        return
 
      # 延时操作
      time.sleep(0.1)
      # 将所有的组件背景变为白色
      for x in self.girlfrends:
        x['bg'] = 'white'
 
      # 将当前数值对应的组件变色
      self.girlfrends[i]['bg'] = 'red'
      # 变量+1
      i += 1
      # 如果i大于最大索引直接归零
      if i >= len(self.girlfrends):
        i = 0
 
  # 建立一个新线程的函数
  def newtask(self):
    if self.isloop == False:
      # 建立线程
      t = threading.Thread(target = self.rounds)
      # 开启线程运行
      t.start()
      # 设置循环开始标志
      self.isloop = True
    elif self.isloop == True:
      self.isloop = False
      self.newloop = True
 
 
c = choujiang()

小编再为大家分享一款python模拟轮盘抽奖的游戏

python3.x的版本测试中文的变量名

from random import random
#轮盘赌lpd,奖项分布jxfb,本次转盘读数bclpds,中奖情况zjqk,本次战况bczk,
def lpd(jxfb):
  bclpds = random()
  for k, v in jxfb.items():
    if v[0]<=bclpds<v[1]:
      return k

jxfb = {'一等奖':(0, 0.08),
          '二等奖':(0.08, 0.3),
          '三等奖':(0.3, 1.0)}

zjqk = dict()
#模拟玩10000次,统计中奖情况
for i in range(10000):
  bczk = lpd(jxfb)
  zjqk[bczk] = zjqk.get(bczk, 0) + 1

for item in zjqk.items():
  print(item)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
python多线程用法实例详解
Jan 15 Python
python实现将元祖转换成数组的方法
May 04 Python
python生成以及打开json、csv和txt文件的实例
Nov 16 Python
python用post访问restful服务接口的方法
Dec 07 Python
Python3模拟登录操作实例分析
Mar 12 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
学Python 3的理由和必要性
Nov 19 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
Jul 14 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 Python
Python必备技巧之函数的使用详解
Apr 04 Python
Python Pillow Image Invert
Jan 22 #Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 #Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 #Python
Python实现深度遍历和广度遍历的方法
Jan 22 #Python
Python遍历文件夹 处理json文件的方法
Jan 22 #Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
You might like
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
Vue通过input筛选数据
2020/10/26 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python通过邮件服务器端口发送邮件的方法
2015/04/30 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
生产主管岗位职责
2013/11/10 职场文书
酒店总经理欢迎词
2014/01/15 职场文书
学生干部培训方案
2014/06/12 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
事业单位个人总结
2015/02/12 职场文书
教师工作表现自我评价
2015/03/05 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang