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中yaml配置文件模块的使用详解
Apr 27 Python
Python实现注册、登录小程序功能
Sep 21 Python
Python之时间和日期使用小结
Feb 14 Python
python画图的函数用法以及技巧
Jun 28 Python
Python绘制股票移动均线的实例
Aug 24 Python
python计算二维矩形IOU实例
Jan 18 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
基于python实现操作redis及消息队列
Aug 27 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python中pow函数用法及功能说明
Dec 04 Python
python 爬取腾讯视频评论的实现步骤
Feb 18 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
Zend公司全球首推PHP认证
2006/10/09 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
JsDom 编程小结
2011/08/09 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
koa源码中promise的解读
2018/11/13 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
python getopt详解及简单实例
2016/12/30 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
对Python3中的input函数详解
2018/04/22 Python
python模拟表单提交登录图书馆
2018/04/27 Python
浅述python2与python3的简单区别
2018/09/19 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
python输入错误后删除的方法
2019/10/12 Python
Python log模块logging记录打印用法解析
2020/01/20 Python
Django choices下拉列表绑定实例
2020/03/13 Python
python dict如何定义
2020/09/02 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
实习自我鉴定模板
2013/09/28 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
班风学风建设方案
2014/05/06 职场文书
广播体操口号
2014/06/18 职场文书
博士导师推荐信
2015/03/25 职场文书
2015年全民创业工作总结
2015/07/23 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书