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中使用dom模块生成XML文件示例
Apr 05 Python
Python修改MP3文件的方法
Jun 15 Python
python开发之函数定义实例分析
Nov 12 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
Python与C++中梯度方向直方图的实现
Mar 17 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
支付宝接口开发集成支付环境小结
2015/03/17 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
js中有关IE版本检测
2012/01/04 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
极简主义法编写JavaScript类
2017/11/02 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
Python装饰器结合递归原理解析
2020/07/02 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
工厂保洁员岗位职责
2013/12/04 职场文书
学生实习介绍信
2014/01/15 职场文书
婚前财产公证书
2014/04/10 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
自我检讨书范文
2015/01/28 职场文书
教师求职简历自我评价
2015/03/10 职场文书