鱼C论坛

 找回密码
 立即注册
查看: 6436|回复: 10

[作品展示] 用TK写的一个纸牌游戏

[复制链接]
发表于 2016-8-12 01:41:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 kio 于 2016-8-12 17:47 编辑

poke.png
分两个模块写,一个是TK的主界面,一个是写游戏规则的.
贴出来,主要是希望和大家多交流,指正修改,欢迎批评.
主代码:
  1. # -*- coding: utf-8 -*-
  2. import get_sock
  3. from tkinter import *

  4. root = Tk()
  5. root.title('poke game')
  6. root.geometry('695x400')

  7. class Poke_game:
  8.     def __init__(self,master,name,path,site):
  9.         self.name = name
  10.         self.path = path.getpath()
  11.         self.type = path.getsock()[0]
  12.         self.sock = path.getsock()[1]
  13.         self.site = site
  14.         self.labelframe=LabelFrame(master,text="玩家:%s"%self.name,width=50)
  15.         
  16.         if self.site <= 3 :            
  17.             self.labelframe.grid(row=0,column=self.site-1,padx=10,pady=10)  
  18.         else:
  19.             self.labelframe.grid(row=1,column=self.site-4)

  20.         self.f0=Frame(self.labelframe)
  21.         self.f0.pack()
  22.         
  23.         self.f1=Frame(self.f0)
  24.         self.f1.pack(side=LEFT)
  25.         self.f2=Frame(self.f0)
  26.         self.f2.pack(side=LEFT)
  27.         self.f3=Frame(self.f0)
  28.         self.f3.pack(side=LEFT)

  29.         self.f4=Frame(self.labelframe)
  30.         self.f4.pack()

  31.         self.vtype=StringVar()
  32.         
  33.         self.typelabel=Label(self.f4,textvariable=self.vtype,justify=LEFT)
  34.         self.typelabel.grid(row=0,column=0)

  35.         self.btext = StringVar()
  36.         self.btext.set("看牌")
  37.         self.b = Button(self.f4,textvariable=self.btext,command=self.show_poke)
  38.         self.b.grid(row=0,column=1)

  39.         self.vsock=StringVar()
  40.         
  41.         self.socklabel=Label(self.f4,textvariable=self.vsock,justify=LEFT)
  42.         self.socklabel.grid(row=0,column=2)

  43.         self.ready()

  44.     def ready(self):        
  45.         self.photo0 = PhotoImage(file='joker.png')

  46.         self.path1='%s.png'%self.path[0]
  47.         self.path2='%s.png'%self.path[1]
  48.         self.path3='%s.png'%self.path[2]
  49.         self.photo1 = PhotoImage(file=self.path1)
  50.         self.photo2 = PhotoImage(file=self.path2)
  51.         self.photo3 = PhotoImage(file=self.path3)
  52.         
  53.         self.l1a = Label(self.f1,image=self.photo0)
  54.         self.l1a.pack()
  55.         self.l1b = Label(self.f1,image=self.photo1)
  56.         self.l1b.forget()

  57.         self.l2a = Label(self.f2,image=self.photo0)
  58.         self.l2a.pack()
  59.         self.l2b = Label(self.f2,image=self.photo2)
  60.         self.l2b.forget()

  61.         self.l3a = Label(self.f3,image=self.photo0)
  62.         self.l3a.pack()
  63.         self.l3b = Label(self.f3,image=self.photo3)
  64.         self.l3b.forget()
  65.         
  66.         
  67.         
  68.     def show_poke(self):        
  69.         if self.l1a.winfo_viewable():
  70.             self.l1a.forget()
  71.             self.l1b.pack()
  72.                                 
  73.             self.l2a.forget()
  74.             self.l2b.pack()

  75.             self.l3a.forget()
  76.             self.l3b.pack()

  77.             self.vtype.set("类型:%s"%self.type)
  78.             self.vsock.set("分数:%s"%self.sock)
  79.             self.btext.set("弃牌:")

  80.         else:
  81.             self.l1a.pack()
  82.             self.l1b.forget()
  83.                        
  84.             self.l2a.pack()
  85.             self.l2b.forget()

  86.             self.l3a.pack()
  87.             self.l3b.forget()

  88.             self.btext.set("看牌:")

  89. tom = Poke_game(root,'tom',get_sock.Play(),1)
  90. john = Poke_game(root,'john',get_sock.Play(),2)
  91. bob = Poke_game(root,'bob',get_sock.Play(),3)
  92. jobs = Poke_game(root,'jobs',get_sock.Play(),4)
  93. steven = Poke_game(root,'steven',get_sock.Play(),5)
  94. rose = Poke_game(root,'rose',get_sock.Play(),6)

  95. mainloop()
复制代码


规则代码:
  1. import random

  2. class Play:
  3.     def __init__(self):
  4.         self.poke=[]
  5.         self.h=['f','m','t','s']*13
  6.         self.n=list(range(1,14))*4
  7.         self.n.sort()
  8.         self.k = zip(self.h,self.n)
  9.         for i,j in self.k:
  10.             self.poke.append(i+str(j))
  11.             
  12.         self.f=list(range(101,1401,100))
  13.         self.m=list(range(102,1402,100))
  14.         self.t=list(range(103,1403,100))
  15.         self.s=list(range(104,1404,100))
  16.         self.num=[]
  17.         self.num.extend(self.f)
  18.         self.num.extend(self.m)
  19.         self.num.extend(self.t)
  20.         self.num.extend(self.s)
  21.         self.num.sort()
  22.         self.dic=dict(zip(self.num,self.poke))
  23.         random.shuffle(self.num)

  24.         self.getpoke()

  25.         
  26.     def getpoke(self):
  27.         self.socklist=[]
  28.         for item in range(3):
  29.             self.socklist.append(self.num.pop(0))
  30.         self.socklist.sort()        
  31.         return self.socklist        
  32.      
  33.     def getpath(self):
  34.         self.mypath=[]
  35.         for each in self.socklist:
  36.             self.mypath.append(self.dic[each])
  37.         return self.mypath
  38.    
  39.     def getsock(self):
  40.          self.sock=0
  41.          
  42.          if self.socklist[2]//100 == 1:
  43.              self.sock+=0.01
  44.          elif self.socklist[2]//100 == 2:
  45.              self.sock+=0.02
  46.          elif self.socklist[2]//100 == 3:
  47.              self.sock+=0.03
  48.          elif self.socklist[2]//100 == 4:
  49.              self.sock+=0.04
  50.          elif self.socklist[2]//100 == 5:
  51.              self.sock+=0.05
  52.          elif self.socklist[2]//100 == 6:
  53.              self.sock+=0.06
  54.          elif self.socklist[2]//100 == 7:
  55.              self.sock+=0.07
  56.          elif self.socklist[2]//100 == 8:
  57.              self.sock+=0.08
  58.          elif self.socklist[2]//100 == 9:
  59.              self.sock+=0.09
  60.          elif self.socklist[2]//100 == 10:
  61.              self.sock+=0.1
  62.          elif self.socklist[2]//100 == 11:
  63.              self.sock+=0.11
  64.          elif self.socklist[2]/100 == 12:
  65.              self.sock+=0.12
  66.          else:
  67.              self.sock+=0.13
  68.          
  69.          
  70.          if self.socklist[0]//100 == self.socklist[1]//100 and self.socklist[0]//100 == self.socklist[2]//100:
  71.              self.sock+=5
  72.              return ('豹子',self.sock)

  73.          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:
  74.              self.sock+=4
  75.              return ('同花顺',self.sock)
  76.            
  77.          elif self.socklist[0]%100 == self.socklist[1]%100 and self.socklist[0]%100 == self.socklist[2]%100:
  78.              self.sock+=3
  79.              return ('同花',self.sock)

  80.          elif self.socklist[0]//100 == self.socklist[1]//100-1 and self.socklist[0]//100 == self.socklist[2]//100-2:
  81.              self.sock+=2
  82.              return ('顺子',self.sock)

  83.          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:
  84.              self.sock+=1
  85.              return ('对子',self.sock)

  86.          elif self.socklist[0]//100 == 2 and self.socklist[1]//100 == 3 and self.socklist[2]//100 == 5:
  87.              self.sock-=1
  88.              return ('豹子杀手',self.sock)
  89.          else:
  90.          
  91.              return ('散牌',self.sock)
  92.             
  93. if __name__ == '__main__':
  94.     Play()
复制代码


还有些图片:
可以了,打好包了
QQ截图20160812013706.png

poke.zip

655.56 KB, 下载次数: 83

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-12 06:10:06 | 显示全部楼层
把扑克图片用rar打包,上传
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-12 10:02:29 | 显示全部楼层
SixPy 发表于 2016-8-12 06:10
把扑克图片用rar打包,上传

上传次数用完了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 10:21:47 | 显示全部楼层
kio 发表于 2016-8-12 10:02
上传次数用完了

你把附件给@SixPy ,然后叫他编辑你的帖子加一个附件上去不就完啦
或者放到百度云 360云 迅雷快传 微云 但是不要城通
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 10:36:20 | 显示全部楼层
图片可以放到网盘里分享。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 10:36:21 | 显示全部楼层
kio 发表于 2016-8-12 10:02
上传次数用完了

把图片传到微博相册,然后贴网络图片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-12 11:54:24 | 显示全部楼层
最好直接网盘
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-15 15:36:35 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-11-17 09:26:09 | 显示全部楼层
顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-2 15:32:45 | 显示全部楼层
牛B
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-12 19:04:25 | 显示全部楼层
挺不错,学习中……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-26 02:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表