Tkinter Canvas 将随机数应用于多个球体的移动
在拉斯维加斯或是澳门赌场,常可以看到机器赛马的赌具,其实我们若是将球改成赛马其意义是相同的。
观念1:赌场作弊方式
假设想让黄色球跑的速度快一些,它赢的概率是70%,可以利用randint( )产生1~100的随机数,让随机数在1~70间移动黄球,在71~100间移动水蓝色球,这样可以作弊了。
观念2:赌场作弊现形
玩赛马赌具时必须下注,赌场作弊的最佳方式是,让下注最少的马匹有较高概率的移动机会,这样钱就滚滚而来了。
观念3:不作弊
我们可以设计随机数在1~50间移动黄球,在51~100间移动水蓝色球。
示例1
循环跑100次看哪一个球跑得快,让黄色球有70%赢的机会。
from tkinter import *
import time
from random import *
tk = Tk()
tk.title("apidemos.com")
canvas = Canvas(tk,width=500, height=250) # 建立画布
canvas.pack()
id1 = canvas.create_oval(10,50,60,100,fill="yellow")
id2 = canvas.create_oval(10,150,60,200,fill="aqua")
for x in range(0,100):
if randint(1,100) > 70:
canvas.move(id2,5,0)
else:
canvas.move(id1,5,0) # ID=1 x轴移动5像素,y轴移动2像素
tk.update() # 强制tkinter重绘
time.sleep(0.05)
# tk.mainloop()
输出: