扑克牌算是老少皆宜的经典款游戏之一,玩法多样,但万变不离其宗,想要编写扑克牌类游戏,首先得整理清楚发牌的逻辑。

1. 游戏介绍

4名牌手打牌,电脑随机將52张牌(不合大、小王)发给4名牌手,并在屏幕上显示每位牌手的牌。

2. 面向对象程序设计

既然只做发牌,那么我们就只需要整理清楚发牌的过程中所牵涉到的对象即可。其实整个发牌的过程中,所牵扯到的只有牌,但分三种不同的情况显示,第一个是单张牌(Card),第二个是一整副牌(Poke),第三个是玩家手里的牌(Hand),三个对象类编写出来,我们就可以很清晰地完成整个发牌的过程。

3. 程序设计步骤

设计类:发牌程序设计出三个类:Card类、Hand类和Poke类。

Card类:Card类代表一张牌,其中,FaceNum字段指的是牌面数字1~13,Suit字段指的是花色,”梅”为梅花,”方”为方块,”红”为红桃,”黑”为黑桃。

Hand类:Hand类代表手牌(一个玩家手里拿的牌),可以认为是一位牌手手里的牌,其中,cards列表变量存储牌手手中的牌。可以增加牌、清空手里的牌、把一张牌给别的牌手等操作。

Poke类:Poke类代表一副牌,我们可以将一副牌看作是有52张牌的牌手,所以继承Hand类。由于其中cards列表变量要存储52张牌,而且要进行发牌、洗牌操作,所以增加如下的方法。

主程序:主程序比较简单,因为有四个牌手,所以生成players列表存储初始化的四位牌手。生成一副牌的对象实例poke1,调用populate()方法生成有52张牌的一副牌,调用huffle()方法洗牌打乱顺序,调用deal(players,13)方法分别给每位玩家发13张牌,最后示四位牌手所有的牌。

4. 代码实现

Card类:

1>定义牌面数字及花色

2>定义初始化构造方法

3>定义牌面花色+数字拼接字符串显示方法

4>定义翻牌方法

5>定义牌的顺序号

Hand类:

1>定义初始化构造方法

2>定义牌面花色+数字拼接字符串显示方法

3>定义清空扑克牌的方法

4>定义追加扑克牌的方法

5>定义给予扑克牌的方法

Poke类:

1>定义生成一副牌的方法

2>定义洗牌的方法

3>定义发牌的方法

主程序定义:

运行结果:

完成!是不是很简单呢?自己试试看吧~

注:本文基于64位windows系统(鼠标右键点击桌面“此电脑”图标——属性可查看电脑系统版本)、python3.x(pycharm自动安装的版本, 3.0以上)。

文中代码内容所使用的工具是pycharm-community-2020.1,实践中如有碰到问题,可留言提问。

随机发牌_用Python制作4人扑克牌发牌游戏相关推荐

  1. python做一副54扑克牌发牌_用Python制作4人扑克牌发牌游戏

    扑克牌算是老少皆宜的经典款游戏之一,玩法多样,但万变不离其宗,想要编写扑克牌类游戏,首先得整理清楚发牌的逻辑. 1. 游戏介绍 4名牌手打牌,电脑随机將52张牌(不合大.小王)发给4名牌手,并在屏幕上 ...

  2. python做一副54扑克牌发牌_基于Python制作一副扑克牌过程详解

    整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王.小王之后的 52 张扑克牌,并实现随机抽牌.排序.洗牌等功能: 创建一个纸牌类 一副扑克除去大王小王之外,剩下的 52 ...

  3. python随机输出52张牌_基于Python制作一副扑克牌过程详解

    整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王.小王之后的 52 张扑克牌,并实现随机抽牌.排序.洗牌等功能: 创建一个纸牌类 一副扑克除去大王小王之外,剩下的 52 ...

  4. UE4制作多人大地型游戏的优化

    摘自https://gameinstitute.qq.com/course/detail/10131 8月11日,由腾讯游戏学院举办的第二届腾讯游戏开发者大会(TGDC)在深圳举行.大会技术论坛中,E ...

  5. Python制作当年第一款手机游戏-贪吃蛇游戏(练习)

    前言: 文章利用Python pygame做一个贪吃蛇的小游戏而且讲清楚每一段代码是用来干嘛的. 据说是贪吃蛇游戏是1976年,Gremlin公司推出的经典街机游戏,那我们今天用Python制作的这个 ...

  6. python数据写入表格生成图片_使用Python制作一个GUI界面,将随机生成的姓名存入到Excel文件中...

    前面内容,我们详细介绍了如何使用Python生成一定数量的随机姓名. 生成一些随机姓名 如何用Python生成若干个随机姓名?男女取名有方法,不能千篇一律 之前,也提到过,我们在一些项目中,需要若干个 ...

  7. python文本框清空_用Python制作mini翻译器

    来源:http://suo.im/5ZI20R 1. 实例描述 在平时编程的过程中,会经常在网上翻译一些单词,本文使用Python制作一款翻译小工具,不仅可以自己用,还可以嵌入到程序当中.运行程序,效 ...

  8. python拼图_利用python制作拼图小游戏的全过程

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块 关注公众号:Python学习指南,回复"拼图"即可获取源码 环境搭建 安装P ...

  9. python打字_使用Python制作一个打字训练小工具

    一.写在前面 说道程序员,你会想到什么呢?有人认为程序员象征着高薪,有人认为程序员都是死肥宅,还有人想到的则是996和 ICU. 别人眼中的程序员:飞快的敲击键盘.酷炫的切换屏幕.各种看不懂的字符代码 ...

最新文章

  1. java导入自定义类_导入自定义Java类
  2. sed编辑器: 非交互
  3. Object C为UILabel添加点击事件
  4. 前端利器倚天剑之sublime
  5. HDU2501_多米诺骨牌
  6. 程序员的算法课(3)-递归(recursion)算法
  7. 外贸网站建设(转自xmfish)
  8. virtualbox导致Windows7重启
  9. 关于USB-Audio(USB麦克风)设备的录音验证
  10. 网页显示无法解析服务器DNS地址,打开windows7系统下网页提示无法解析服务器的DNS地址怎么办...
  11. html移动图片广告代码,右下角弹出广告代码 控制div移动 1)div是否
  12. Ring3触发BSOD代码实现及内核逆向分析
  13. CodeForces 595A Vitaly and Night
  14. java 求矩阵的伴随矩阵_求矩阵伴随矩阵的java实现
  15. Cypress 自定义方法命令
  16. angular 架构
  17. python 学习笔记之手把手讲解如何使用原生的 urllib 发送网络请求
  18. html设置文字超过字数_CSS限制字数,超出部份显示点点点...
  19. 如何优雅的窥探别人?
  20. php键值字符串转数组,PHP数组与字符串互相转换实例

热门文章

  1. mysql用sql语句怎么做个脚本备份_mysql备份脚本
  2. LD(Levenshtein distance)莱文斯坦距离----编辑距离
  3. MSE | 阿里巴巴云原生网关三位一体的选择与实践
  4. 专有云传统HSF升级Pandora Boot开发
  5. Riot美术师经验分享:好设计是改出来的
  6. MySQL备份与恢复——基于Xtrabackup物理备份恢复
  7. 题目:JavaWeb乐购资源管理系统(附源码链接免费下载)
  8. 2021年8月Web服务器排行榜:Nginx牛市上升
  9. 程序员-真实学习之路
  10. 说下readyState属性是干嘛的,都有哪几个状态