利⽤python开发游戏_利⽤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)
excel如何编辑下拉清单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:
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的图⽚,依次类推。 发牌后,根据每位牌⼿(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):
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')) for x in range(13):
m=x*4
p1.append(pocker[m])
p2.append(pocker[m+1])
p3.append(pocker[m+2])
p4.append(pocker[m+3])
p1.sort()
p2.sort()
arraylist为什么查询快p3.sort()
p4.sort()
for x in range(0,13):
游戏辅助框架免rootimg=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=[]
for i in range(9):
filename="woman_"+str(i)+".png"
Pics.append((PhotoImage(file=filename)))
WIDTH=312
oracle可以连接sqlyog吗HEIGHT=450
IMAGE_WIDTH=WIDTH//3
IMAGE_HEIGHT=HEIGHT//3
ROWS=3
COLS=3
steps=0
board=[
>input here是什么意思
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论