python实现扑克牌交互式界面发牌程序


Posted in Python onApril 22, 2020

本文实例为大家分享了python实现扑克牌交互式界面发牌程序的具体代码,供大家参考,具体内容如下

注:图片自行在网上下载、替换即可

#coding=utf-8

class Card(): #扑克牌类
  points=['1','2','3','4','5','6','7','8','9','10','11','12','13']
  suits=['1','2','3','4'] #花色
  def __init__(self,points,suits):
    self.points=points
    self.suits=suits
  def __str__(self):
    rep=self.suits+'-'+self.points
    return rep
class Hand():
  def __init__(self):
    self.cards=[]
  def add(self,card):
    self.cards.append(card)
  def __str__(self):
    rep=''
    for card in self.cards:
      rep+=str(card)+'\t'
    return rep

class Poke(Hand):
  def generate_poke(self):
    for point in Card.points:
      for suit in Card.suits:
        self.add(Card(point,suit))
  def random_poke(self):
    import random
    random.shuffle(self.cards)
  def deal(self,hands,limit_hand=13):
    for rounds in range (limit_hand):
      for hand in hands:
        if self.cards:
          top=self.cards[0]
          self.cards.remove(top)
          hand.add(top)

def print_poke(players):
  results=[player.__str__() for player in players]
  pk=[]
  for result in results:
    pk1=result.rstrip()
    pk2=pk1.split('\t')
    pk.append(pk2)
  image_name=[]
  for i in range(len(pk)):
    for j in pk[i]:
      str_name='D:\pukepai\images\\{}.gif'.format(j)
      image_name.append(str_name)
  wj=[image_name[i:i+13] for i in range(len(image_name)) if i%13==0]
  return wj

def restart():
  tk.messagebox.showinfo("hello python","sdfg")

players=[Hand(),Hand(),Hand(),Hand()]
pockers=Poke()
pockers.generate_poke()
pockers.random_poke()
pockers.deal(players,13)
wj=print_poke(players) 

import tkinter as tk
win=tk.Tk()
win.title("扑克牌程序")
win.geometry('800x600')
cv=tk.Canvas(win,bg='red',width=800,height=600)
from PIL import Image,ImageTk
imgs=[]
(p1,p2,p3,p4)=([],[],[],[])
for i in range(4):
  for j in range(13):
    img=Image.open(wj[i][j])
    imgs.insert(i*13+j,ImageTk.PhotoImage(img))
p1=imgs[0:13]  
p2=imgs[13:26]
p3=imgs[26:39]
p4=imgs[39:52]
for x in range(0,13):
  cv.create_image((200+20*x,80),image=p1[x])
  cv.create_image((100,150+20*x),image=p2[x])
  cv.create_image((200+20*x,500),image=p3[x])
  cv.create_image((560,150+20*x),image=p4[x])

#添加重新发牌按钮
from tkinter.messagebox import *
bt1=tk.Button(win,text='重新发牌',width=60,height=40,command=restart)
bt1.place(x=290,y=380,width=60,height=40)

cv.pack()
win.mainloop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现115网盘自动下载的方法
Sep 30 Python
Python set常用操作函数集锦
Nov 15 Python
简单了解Django模板的使用
Dec 20 Python
Python下载网络小说实例代码
Feb 03 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
python中sort和sorted排序的实例方法
Aug 26 Python
python如何控制进程或者线程的个数
Oct 16 Python
Python实现文本文件拆分写入到多个文本文件的方法
Apr 18 Python
Python图像处理库PIL详细使用说明
Apr 06 Python
文件上传服务器-jupyter 中python解压及压缩方式
Apr 22 #Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
Apr 22 #Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 #Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
Apr 22 #Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 #Python
jupyter lab文件导出/下载方式
Apr 22 #Python
python模拟实现分发扑克牌
Apr 22 #Python
You might like
Protoss建筑一览
2020/03/14 星际争霸
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
jquery.validate使用攻略 第一部
2010/07/01 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
python通过Windows下远程控制Linux系统
2018/06/20 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
英国高街电视:High Street TV
2018/05/22 全球购物
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
组织关系转移介绍信
2014/01/16 职场文书
出国考察邀请函
2014/01/21 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
python实现语音常用度量方法的代码详解
2021/05/25 Python
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android