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之编写类之三子类
Oct 11 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Python 字符串换行的多种方式
Sep 06 Python
Python UnboundLocalError和NameError错误根源案例解析
Oct 31 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
PyTorch的Debug指南
May 07 Python
Python Matplotlib绘制条形图的全过程
Oct 24 Python
python中出现invalid syntax报错的几种原因分析
Feb 12 Python
Python代码实现双链表
May 25 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
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
javascript prototype原型操作笔记
2009/12/07 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
js实现的在线调色板功能完整实例
2016/12/21 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python处理document文档保留原样式
2019/09/23 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
客户代表实习人员自我鉴定
2013/09/27 职场文书
竞选演讲稿范文
2013/12/28 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript