实现功能很简单:

初始时 1到10 以及 jkq各 4张,大小王 共两张

只要输入相应的牌号:1到10,例如 >>1     J、K、Q :例如>>j     >>大小王

此时相应的牌的数目会减少1

由此可以看出斗地主时候别人手里的牌还剩哪些。

上原始代码,没有做GUI,这个只是一个演示的demo:

  1. #有1——10、J、Q、K各四张以及大小王,现在初始除了大小王以外均为4张,每次输入一个就会减少一。
  2.  
  3. def init(num,j,k,q,king):
  4. num.append(0)
  5. for i in range(10):
  6. num.append(4)
  7. king = 2
  8. j = k = q = 4
  9. return (num,j,k,q,king)
  10.  
  11. def judge_num(instruct,num,j,k,q,king):
  12. if instruct == '':
  13. num[1] = num[1] - 1
  14. if instruct == '':
  15. num[2] = num[2] - 1
  16. if instruct == '':
  17. num[3] = num[3] - 1
  18. if instruct == '':
  19. num[4] = num[4] - 1
  20. if instruct == '':
  21. num[5] = num[5] - 1
  22. if instruct == '':
  23. num[6] = num[6] - 1
  24. if instruct == '':
  25. num[7] = num[7] - 1
  26. if instruct == '':
  27. num[8] = num[8] - 1
  28. if instruct == '':
  29. num[9] = num[9] - 1
  30. if instruct == '':
  31. num[10] = num[10] - 1
  32. if instruct == 'j' or instruct == 'J':
  33. j = j - 1
  34. if instruct == 'k' or instruct == 'K':
  35. k = k - 1
  36. if instruct == 'q' or instruct == 'Q':
  37. q = q - 1
  38. if instruct == '大小王':
  39. king =king - 1
  40. if instruct == '复位' or instruct == '重新开始' or instruct == '重启':
  41. (num,j,k,q,king) = init(num,j,k,q,king)
  42. return (num,j,k,q,king)
  43.  
  44. print('此时【牌1】的数目为【%d】\n此时【牌2】的数目为【%d】\n此时【牌3】的数目为【%d】\n此时【牌4】的数目为【%d】\n此时【牌5】的数目为【%d】\n此时【牌6】的数目为【%d】\n此时【牌7】的数目为【%d】\n此时【牌8】的数目为【%d】\n此时【牌9】的数目为【%d】\n此时【牌10】的数目为【%d】\n' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
  45. print('此时【牌J】的数目为【%d】\n此时【牌Q】的数目为【%d】\n此时【牌K】的数目为【%d】\n此时【大小王】的数目为【%d】\n' %(j,q,k,king))
  46.  
  47. '''
  48. def main():
  49. print('请按以下格式输入:\n')
  50. print('如果需要对某张牌进行减法计数,就输入对应的牌数:\n格式为:\n1】牌010就输入数字010\n2】大小王请输入"大小王",大小王一块计数\n3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"')
  51. print('此时【牌1】的数目为【%d\n此时【牌2】的数目为【%d\n此时【牌3】的数目为【%d\n此时【牌4】的数目为【%d\n此时【牌5】的数目为【%d\n此时【牌6】的数目为【%d\n此时【牌7】的数目为【%d\n此时【牌8】的数目为【%d\n此时【牌9】的数目为【%d\n此时【牌10】的数目为【%d\n' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
  52. print('此时【牌J】的数目为【%d\n此时【牌Q】的数目为【%d\n此时【牌K】的数目为【%d\n此时【大小王】的数目为【%d\n' %(j,q,k,king))
  53. instruct = input('请输入对面已经出过的牌数:')
  54. (num,num_dict)= judge_num(instruct,num,num_dict)
  55. '''
  56.  
  57. if __name__ == '__main__':
  58. num = list()
  59. j = k = q = king = 0
  60. (num,j,k,q,king) = init(num,j,k,q,king)
  61. while True:
  62. print('请按以下格式输入:\n')
  63. print('如果需要对某张牌进行减法计数,就输入对应的牌数:\n格式为:\n【1】牌0到10就输入数字0到10\n【2】大小王请输入"大小王",大小王一块计数\n【3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"。')
  64. print('此时【牌1】的数目为【%d】\n此时【牌2】的数目为【%d】\n此时【牌3】的数目为【%d】\n此时【牌4】的数目为【%d】\n此时【牌5】的数目为【%d】\n此时【牌6】的数目为【%d】\n此时【牌7】的数目为【%d】\n此时【牌8】的数目为【%d】\n此时【牌9】的数目为【%d】\n此时【牌10】的数目为【%d】\n' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
  65. print('此时【牌J】的数目为【%d】\n此时【牌Q】的数目为【%d】\n此时【牌K】的数目为【%d】\n此时【大小王】的数目为【%d】\n' %(j,q,k,king))
  66. instruct = input('请输入对面已经出过的牌数:')
  67. (num,j,k,q,king)= judge_num(instruct,num,j,k,q,king)

演示demo的效果:

这个只是一时兴起写的,很简陋的实现记牌数的功能,以后有空可以将其做成界面好看一点的web应用。

接下来真的匿了,专心期末了。

用python实现的简易记牌器的demo的更多相关文章

  1. python调用百度语音(语音识别-斗地主语音记牌器)

    一.概述 本篇简要介绍百度语音语音识别的基本使用(其实是斗地主时想弄个记牌器又没money,抓包什么的又不会,只好搞语音识别的了) 二.创建应用 打开百度语音官网,产品与使用->语音识别-> ...

  2. [视觉] 基于YoloV3的实时摄像头记牌器

    基于YoloV3的实时摄像头记牌器 github:https://github.com/aoru45/cards_recognition_recorder_pytorch 最终效果 数据准备 数据获取 ...

  3. [麻雀虽小]记 简易Markdown阅读器 开发全过程

    [麻雀虽小]记 简易Markdown阅读器 开发全过程 [TOC] 序言 项目地址: https://github.com/didikee/MDReader 测试文章地址: 2017 Android ...

  4. c 算牌器代码

    int main() { // 算牌器 ]; ; do { printf("请输入牌名: \n"); scanf("%2s",char_name); ; ]) ...

  5. Python实战:美女图片下载器,海量图片任你下载

    Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...

  6. 简学Python第四章__装饰器、迭代器、列表生成式

    Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...

  7. 初学 Python(十五)——装饰器

    初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...

  8. Python全栈开发之---装饰器

    1.装饰器的形成过程 import time def func1(): print('in func1') def timer(func): def inner(): start = time.tim ...

  9. 十一. Python基础(11)—补充: 作用域 & 装饰器

    十一. Python基础(11)-补充: 作用域 & 装饰器 1 ● Python的作用域补遗 在C/C++等语言中, if语句等控制结构(control structure)会产生新的作用域 ...

随机推荐

  1. Memcache与Redis有什么区别?

    Redis 和 Memcache 都是基于内存的数据存储系统.Memcached是高性能分布式内存缓存服务,其本质上就是一个内存key-value数据库.Redis是一个开源的key-value存储系 ...

  2. java学习要想精炼掌握应运的必备知识(博文来源于网络)

    一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的数据结构和算法基础还是要有的.下面几篇文章从思想到实现,为你梳理出常用的数据结构和经典算法. 1-1 常用数 ...

  3. 深度学习之卷积神经网络CNN及tensorflow代码实现示例

    深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习   版权声明 ...

  4. 如何使用classnames模块库为react动态添加class类样式

    摘要 在react中添加动态的css时,传统的方式较为繁琐,今天刚好学习到一个模块库可以便捷的解决这个问题.对的,它就是“classnames”. classnames模块库 npm安装 npm in ...

  5. 图片样式加hover特效

    之前有个尴尬的事情发生,我不知道如何将文字放在图片右边,我想了个麻烦且愚蠢的办法,后来才知道只需要将图片居左就可以达到效果.....不说了看下面 需要实现的效果: 很简单, <img src=& ...

  6. 微信小程序上传图片更新图像

    解决思路: 1. 调用wx.chooseImage 选择图片 2.wx.uploadFile 上传图片 3.调用后台接口进行修改操作 修改原来的头像 wx.chooseImage({ success: ...

  7. List集合复制

    方法一: public static void main(String[] args) { // TODO Auto-generated method stub List<String> ...

  8. 【leetcode】296.Best Meeting Point

    原题 A group of two or more people wants to meet and minimize the total travel distance. You are given ...

  9. Xshell连接阿里云服务被拒绝

    问题描述:突然的Xshell连接阿里云服务被拒绝了(如图)网上众多的方案都不行例如:https://www.cnblogs.com/wanglle/p/11416987.html(参考博文,本人这个问 ...

  10. Linux下批量修改文件编码

    假设需要将所有afish目录下的php文件,编码从gb2312转到utf8 cd afish find ./ -type f -name “*.php”|while read line;do echo ...