|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kio 于 2016-8-12 17:47 编辑
分两个模块写,一个是TK的主界面,一个是写游戏规则的.
贴出来,主要是希望和大家多交流,指正修改,欢迎批评.
主代码:
- # -*- coding: utf-8 -*-
- import get_sock
- from tkinter import *
- root = Tk()
- root.title('poke game')
- root.geometry('695x400')
- class Poke_game:
- def __init__(self,master,name,path,site):
- self.name = name
- self.path = path.getpath()
- self.type = path.getsock()[0]
- self.sock = path.getsock()[1]
- self.site = site
- self.labelframe=LabelFrame(master,text="玩家:%s"%self.name,width=50)
-
- if self.site <= 3 :
- self.labelframe.grid(row=0,column=self.site-1,padx=10,pady=10)
- else:
- self.labelframe.grid(row=1,column=self.site-4)
- self.f0=Frame(self.labelframe)
- self.f0.pack()
-
- self.f1=Frame(self.f0)
- self.f1.pack(side=LEFT)
- self.f2=Frame(self.f0)
- self.f2.pack(side=LEFT)
- self.f3=Frame(self.f0)
- self.f3.pack(side=LEFT)
- self.f4=Frame(self.labelframe)
- self.f4.pack()
- self.vtype=StringVar()
-
- self.typelabel=Label(self.f4,textvariable=self.vtype,justify=LEFT)
- self.typelabel.grid(row=0,column=0)
- self.btext = StringVar()
- self.btext.set("看牌")
- self.b = Button(self.f4,textvariable=self.btext,command=self.show_poke)
- self.b.grid(row=0,column=1)
- self.vsock=StringVar()
-
- self.socklabel=Label(self.f4,textvariable=self.vsock,justify=LEFT)
- self.socklabel.grid(row=0,column=2)
- self.ready()
- def ready(self):
- self.photo0 = PhotoImage(file='joker.png')
- self.path1='%s.png'%self.path[0]
- self.path2='%s.png'%self.path[1]
- self.path3='%s.png'%self.path[2]
- self.photo1 = PhotoImage(file=self.path1)
- self.photo2 = PhotoImage(file=self.path2)
- self.photo3 = PhotoImage(file=self.path3)
-
- self.l1a = Label(self.f1,image=self.photo0)
- self.l1a.pack()
- self.l1b = Label(self.f1,image=self.photo1)
- self.l1b.forget()
- self.l2a = Label(self.f2,image=self.photo0)
- self.l2a.pack()
- self.l2b = Label(self.f2,image=self.photo2)
- self.l2b.forget()
- self.l3a = Label(self.f3,image=self.photo0)
- self.l3a.pack()
- self.l3b = Label(self.f3,image=self.photo3)
- self.l3b.forget()
-
-
-
- def show_poke(self):
- if self.l1a.winfo_viewable():
- self.l1a.forget()
- self.l1b.pack()
-
- self.l2a.forget()
- self.l2b.pack()
- self.l3a.forget()
- self.l3b.pack()
- self.vtype.set("类型:%s"%self.type)
- self.vsock.set("分数:%s"%self.sock)
- self.btext.set("弃牌:")
- else:
- self.l1a.pack()
- self.l1b.forget()
-
- self.l2a.pack()
- self.l2b.forget()
- self.l3a.pack()
- self.l3b.forget()
- self.btext.set("看牌:")
- tom = Poke_game(root,'tom',get_sock.Play(),1)
- john = Poke_game(root,'john',get_sock.Play(),2)
- bob = Poke_game(root,'bob',get_sock.Play(),3)
- jobs = Poke_game(root,'jobs',get_sock.Play(),4)
- steven = Poke_game(root,'steven',get_sock.Play(),5)
- rose = Poke_game(root,'rose',get_sock.Play(),6)
- mainloop()
复制代码
规则代码:
- import random
- class Play:
- def __init__(self):
- self.poke=[]
- self.h=['f','m','t','s']*13
- self.n=list(range(1,14))*4
- self.n.sort()
- self.k = zip(self.h,self.n)
- for i,j in self.k:
- self.poke.append(i+str(j))
-
- self.f=list(range(101,1401,100))
- self.m=list(range(102,1402,100))
- self.t=list(range(103,1403,100))
- self.s=list(range(104,1404,100))
- self.num=[]
- self.num.extend(self.f)
- self.num.extend(self.m)
- self.num.extend(self.t)
- self.num.extend(self.s)
- self.num.sort()
- self.dic=dict(zip(self.num,self.poke))
- random.shuffle(self.num)
- self.getpoke()
-
- def getpoke(self):
- self.socklist=[]
- for item in range(3):
- self.socklist.append(self.num.pop(0))
- self.socklist.sort()
- return self.socklist
-
- def getpath(self):
- self.mypath=[]
- for each in self.socklist:
- self.mypath.append(self.dic[each])
- return self.mypath
-
- def getsock(self):
- self.sock=0
-
- if self.socklist[2]//100 == 1:
- self.sock+=0.01
- elif self.socklist[2]//100 == 2:
- self.sock+=0.02
- elif self.socklist[2]//100 == 3:
- self.sock+=0.03
- elif self.socklist[2]//100 == 4:
- self.sock+=0.04
- elif self.socklist[2]//100 == 5:
- self.sock+=0.05
- elif self.socklist[2]//100 == 6:
- self.sock+=0.06
- elif self.socklist[2]//100 == 7:
- self.sock+=0.07
- elif self.socklist[2]//100 == 8:
- self.sock+=0.08
- elif self.socklist[2]//100 == 9:
- self.sock+=0.09
- elif self.socklist[2]//100 == 10:
- self.sock+=0.1
- elif self.socklist[2]//100 == 11:
- self.sock+=0.11
- elif self.socklist[2]/100 == 12:
- self.sock+=0.12
- else:
- self.sock+=0.13
-
-
- if self.socklist[0]//100 == self.socklist[1]//100 and self.socklist[0]//100 == self.socklist[2]//100:
- self.sock+=5
- return ('豹子',self.sock)
- elif self.socklist[0]%100 == self.socklist[1]%100 and self.socklist[0]%100 == self.socklist[2]%100 and self.socklist[0]//100 == (self.socklist[1]//100)-1 and self.socklist[0]//100 == (self.socklist[2]//100)-2:
- self.sock+=4
- return ('同花顺',self.sock)
-
- elif self.socklist[0]%100 == self.socklist[1]%100 and self.socklist[0]%100 == self.socklist[2]%100:
- self.sock+=3
- return ('同花',self.sock)
- elif self.socklist[0]//100 == self.socklist[1]//100-1 and self.socklist[0]//100 == self.socklist[2]//100-2:
- self.sock+=2
- return ('顺子',self.sock)
- elif self.socklist[0]//100 == self.socklist[1]//100 or self.socklist[0]//100 == self.socklist[2]//100 or self.socklist[1]//100 == self.socklist[2]//100:
- self.sock+=1
- return ('对子',self.sock)
- elif self.socklist[0]//100 == 2 and self.socklist[1]//100 == 3 and self.socklist[2]//100 == 5:
- self.sock-=1
- return ('豹子杀手',self.sock)
- else:
-
- return ('散牌',self.sock)
-
- if __name__ == '__main__':
- Play()
复制代码
还有些图片:
可以了,打好包了
|
|