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使用asyncio包处理并发详解
Sep 09 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
python模拟事件触发机制详解
Jan 19 Python
python for循环输入一个矩阵的实例
Nov 14 Python
Python编程深度学习计算库之numpy
Dec 28 Python
关于python3中setup.py小概念解析
Aug 22 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
Python 动态变量名定义与调用方法
Feb 09 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
无需压缩软件,用python帮你操作压缩包
Aug 17 Python
python 用opencv实现霍夫线变换
Nov 27 Python
Elasticsearch 索引操作和增删改查
Apr 19 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
基于php伪静态的实现详细介绍
2013/04/28 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
jQuery 1.0.2
2006/10/11 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
javascript按位非运算符的使用方法
2013/11/14 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
vue底部加载更多的实例代码
2018/06/29 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
[01:16:16]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第二场 1月8日
2021/03/11 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
java关于string最常出现的面试题整理
2021/01/18 Python
渗透攻击的测试步骤
2014/06/07 面试题
函授大专自我鉴定
2013/11/01 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
小露珠教学反思
2014/04/30 职场文书
应届生找工作求职信
2014/06/24 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
增值税发票丢失证明
2015/06/19 职场文书