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深入学习之对象的属性
Aug 31 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
windows上安装Anaconda和python的教程详解
Mar 28 Python
Python开发的实用计算器完整实例
May 10 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
浅谈Python type的使用
Nov 19 Python
Python Tkinter图形工具使用方法及实例解析
Jun 15 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
Python 快速验证代理IP是否有效的方法实现
Jul 15 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
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php编写一个简单的路由类
2011/04/13 PHP
php 字符串替换的方法
2012/01/10 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
javascript 操作cookies详解及实例
2017/02/22 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
python 实现红包随机生成算法的简单实例
2017/01/04 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
浅析python内置模块collections
2019/11/15 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
中文系师范生自荐信
2013/10/01 职场文书
乡村文明行动实施方案
2014/03/29 职场文书
勾股定理课后反思
2014/04/26 职场文书
中考标语大全
2014/06/05 职场文书
检讨书范文500字
2015/01/28 职场文书
python如何在word中存储本地图片
2021/04/07 Python