pythontkinter游戏界⾯_利⽤python的tkinter来制作简易的⼩游
今天我们利⽤python的tkinter来制作⼏个简单⼩游戏
⾸先我们了解下tkinter
Tkinter: Tkinter模块(TK接⼝)是Python的标准Tk GUI⼯具包的接⼝。Tkinter可以在⼤多数的UNIX平台下使⽤,同样可以应⽤在Windows和Macintosh系统⾥。Tk 8.0的后续版本可以实现本地窗⼝风格,并良好地运⾏在绝⼤多数平台中。Tkinter是Python的标准GUI库。由于Tkinter内置在Python的安装包中,因此,只要安装好Python就能导⼊Tkinter库,⽽且IDLE也是⽤Tkinter编写⽽成。对于简单的图形界⾯Tkinter能应付⾃如,使⽤Tkinter可以快速地创建GUI应⽤程序。
接下来就是开发了
1.猜数字游戏
游戏内容:电脑随机⽣成1024以内的数字,让玩家去猜,并且会给与⼀定提升,最后统计猜测次数。
那么开始编程
1.⾸先我们要先导⼊我们的库
import tkinter as tk
import sys
import random
import re
2.接下来我们先进⾏定义
number =random.randint(0,1024)
running = True
num =0
nmax=1024
nmin=0
3.利⽤tk来布置界⾯
root=tk.Tk(className="猜数字游戏")
line_a_tip =tk.Frame(root)
lable_tip_max =tk.Label(line_a_tip,text=nmax)
lable_tip_min =tk.Label(line_a_tip,text=nmin)
lable_tip_max.pack(side="top",fill="x")
lable_tip_min.pack(side="bottom",fill="x")
line_a_tip.pack(side="left",fill="y")
line_question = tk.Frame(root)
lable_val_q = tk.Label(line_question,width="80")
lable_val_q.pack(side="left")
line_question.pack(side="top",fill="x") line_input=tk.Frame(root)
entry_a=tk.Entry(line_input,width="80") btnGuess=tk.Button(line_input,text="猜") entry_a.pack(side="left")
entry_a.bind('',eBtnGuess)
btnGuess.bind('',eBtnGuess)
btnGuess.pack(side="left")
line_input.pack(side="top",fill="x")
line_btn= tk.Frame(root)
btnClose= tk.Button(line_btn,text="关闭") btnClose.bind('',eBtnClose)
btnClose.pack(side="left")
line_btn.pack(side="top")
labelqval("请输⼊0-1024之间的任意数") entry_a.focus_set()
print(number)
root.mainloop()
4.开始编写随机数函数
def eBtnGuess(event):
global nmax
global nmin
global num
global running
if running:
val_a=int(())
if val_a ==number:
num+=1
running=False
Numguess()
elif val_a
if val_a>nmin:
nmin=val_a
num+=1
lable_fig(lable_tip_min, text=nmin)
labelqval("⼩了")
elif val_a>number:
excel数字格式代码
if val_a
nmax=val_a
num+=1
lable_fig(lable_tip_max, text=nmin)
labelqval("⼤了")
else:
labelqval("你已经答对了")
5.最后我们来写⼀些辅助函数
次数判断函数
def Numguess():
if num ==1:
labelqval("我靠!⼀次答对")
elif num<10 :
labelqval("⼗次以内就答对了尝试次数:"+str(num))
else :
labelqval("尝试次数")
清理函数
def eBtnClose(event):
root.destroy()
输出函数
def labelqval(vText):
lable_fig(lable_val_q,text=vText)
运⾏截图
2.图形版发牌程序
程序功能介绍:机随机将52张牌(不含⼤王和⼩王)发给四位牌⼿,在屏幕上显⽰每位牌⼿的牌,程序的运⾏效果如图5-1所⽰。接下来,我们以使⽤Canvas绘制Tkinter模块图形为例,介绍建⽴简单GUI(图形⽤户界⾯)游戏界⾯的⽅法。
.程序设计思路
将要发的52张牌,按梅花0~12,⽅块13- 25,红桃26- 38,⿊桃39- 51的顺序编号并存储在pocker列表c未洗牌之前l,列表元素存储的是某张牌c实际上是牌的编号)。同时,按此编号将扑克牌图⽚顺序存储在imgs列表中。也就是说,imgs[0]存储梅花A的图⽚,imgs[1]存储梅花2的图⽚,imgs[14]存储⽅块2的图⽚,依次类推。
75kw三相异步电机价格发牌后,根据每位牌⼿(pl,p2,p3,p4)各⾃牌的编号列表,从imgs获取对应牌的图⽚,并使⽤create- image《x坐标,y坐标),image=图像⽂件)将牌显⽰在指定位置。
from tkinter import *
import random
n=52
def gen_pocker(n):
x=100
while(x>0):
x=x-1正则表达式测试网站
p1=random.randint(0,n-1)
p2=random.randint(0,n-1)
t=pocker[p1]
pocker[p1]=pocker[p2]
pocker[p2]=t
return pocker
pocker=[i for i in range(n)]
pocker=gen_pocker(n)
print(pocker)
(player1,player2,player3,player4)=([],[],[],[])
(p1,p2,p3,p4)=([],[],[],[])
root=Tk()
cv=Canvas(root,bg='white',width=700,height=600)
imgs=[]
for i in range(1,5):
for j in range(1,14):
imgs.insert((i-1)*13+(j-1),PhotoImage(file='images\\'+str(i)+'-'+str(j)+'.gif'))
带jsp是什么for x in range(13):
m=x*4
p1.append(pocker[m])
p2.append(pocker[m+1])
异步fifo的读写时序
p3.append(pocker[m+2])
p4.append(pocker[m+3])
p1.sort()
p2.sort()
p3.sort()游戏辅助框架免root
p4.sort()
for x in range(0,13):
img=imgs[p1[x]]
player1.ate_image((200+20*x,80),image=img))
img = imgs[p2[x]]
player2.ate_image((100,150+20*x),image=img))
img = imgs[p3[x]]
player3.ate_image((200+20*x,500),image=img))
img = imgs[p4[x]]
player4.ate_image((560,150+20*x),image=img))
print("player1:",player1)
print("player2:",player2)
print("player3:",player3)
print("player4:",player4)
cv.pack()
root.mainloop()
运⾏截图
3.⼈物拼图游戏
游戏介绍:拼图游戏将⼀幅图⽚分割咸若⼲拼块并将它们随机打乱顺序,当将所有拼块都放回原位置时,就完成了拼图(游戏结束)。本⼈物拼图游戏为3⾏3列,拼块以随机顺序排列,玩家⽤⿏标单击空⽩块四周的交换它们位置,直到所有拼块都回到原位置。拼图游戏运⾏界⾯
程序设计思路:
游戏程序⾸先将图⽚分割成相应3⾏3列的拼块,并按顺序编号。动态地⽣成⼀个\为3x3的列表board,⽤于存放数字0⼀8,其中,每个数字代表⼀个拼块,8号拼块不显⽰。
游戏开始时,随机打乱这个数组board根据玩家⽤⿏标单击的拼块和空⽩块所在位置,来交换该board数组对应的元素,最后通过元素排列顺序来判断是否已经完成游戏。
打乱前
打乱后
from tkinter import *
ssagebox import *
import random
root =Tk('拼图游戏')
root.title("拼图")
Pics=[]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。