# -*- coding: utf-8 -*-
# Time : 2019/6/11 13:52
# Author : Eric
# FileName: 模拟投币试验.py
# Software: PyCharm
#-----------------------------------------------------------------------------------------------------------------------
import random
from tkinter import *
class Window:
def __init__(self, title='游戏', width=300, height=120, staFunc=bool, stoFunc=bool):
self.w = width
self.h = height
self.stat = True
self.staFunc = staFunc
self.stoFunc = stoFunc
self.staIco = None
self.stoIco = None
self.root = Tk(className=title)
def drawCenter(self):
ws = self.root.winfo_screenwidth() # 用户屏幕宽度
hs = self.root.winfo_screenheight() # 用户屏幕高度
x = int((ws / 2) - (self.w / 2)) # 距屏幕左边框的像素点数
y = int((hs / 2) - (self.h / 2)) # 距屏幕上边框的像素点数
self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
def createWidgets(self):
Label(self.root, text="实验次数:").grid(row=0, sticky=E)
Label(self.root, text="正面出现的次数:").grid(row=1, sticky=E)
Label(self.root, text="出现正面频率:").grid(row=2, sticky=E)
self.e1 = Entry(self.root)
self.hc = StringVar()
self.e2 = Entry(self.root, textvariable=self.hc)
self.p = StringVar()
self.e3 = Entry(self.root, textvariable=self.p)
self.e1.grid(row=0, column=1)
self.e2.grid(row=1, column=1)
self.e3.grid(row=2, column=1)
self.btnSer = Button(self.root, command=self.click, width=3, height=1, text='运行')
self.btnSer.grid(row=3, column=1, sticky=E)
btnQuit = Button(self.root, text='关闭窗口', command=self.root.quit, width=8, height=1)
btnQuit.grid(row=3, column=2)
def click(self):
h = 0 # 正面次数
t = 0 # 反面次数
allcount = 0
count = int(self.e1.get())
for i in range(count):
num = random.randint(0, 1)
if num == 0:
h = h + 1
else:
t = t + 1
allcount = allcount + 1
print(allcount)
self.hc.set(str(h)) # 正面次数
self.p.set(str(h / count)) # 正面概率
def loop(self):
self.root.resizable(False, False) # 禁止修改窗口大小
self.createWidgets()
self.drawCenter() # 窗口居中
self.root.mainloop()
# 你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行
if __name__ == '__main__':
w = Window(width=350, height=150)
w.loop()