用python实现的简易记牌器的demo
实现功能很简单:
初始时 1到10 以及 jkq各 4张,大小王 共两张
只要输入相应的牌号:1到10,例如 >>1 J、K、Q :例如>>j >>大小王
此时相应的牌的数目会减少1
由此可以看出斗地主时候别人手里的牌还剩哪些。
上原始代码,没有做GUI,这个只是一个演示的demo:
#有1——10、J、Q、K各四张以及大小王,现在初始除了大小王以外均为4张,每次输入一个就会减少一。 def init(num,j,k,q,king):
num.append(0)
for i in range(10):
num.append(4)
king = 2
j = k = q = 4
return (num,j,k,q,king) def judge_num(instruct,num,j,k,q,king):
if instruct == '':
num[1] = num[1] - 1
if instruct == '':
num[2] = num[2] - 1
if instruct == '':
num[3] = num[3] - 1
if instruct == '':
num[4] = num[4] - 1
if instruct == '':
num[5] = num[5] - 1
if instruct == '':
num[6] = num[6] - 1
if instruct == '':
num[7] = num[7] - 1
if instruct == '':
num[8] = num[8] - 1
if instruct == '':
num[9] = num[9] - 1
if instruct == '':
num[10] = num[10] - 1
if instruct == 'j' or instruct == 'J':
j = j - 1
if instruct == 'k' or instruct == 'K':
k = k - 1
if instruct == 'q' or instruct == 'Q':
q = q - 1
if instruct == '大小王':
king =king - 1
if instruct == '复位' or instruct == '重新开始' or instruct == '重启':
(num,j,k,q,king) = init(num,j,k,q,king)
return (num,j,k,q,king) 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]))
print('此时【牌J】的数目为【%d】\n此时【牌Q】的数目为【%d】\n此时【牌K】的数目为【%d】\n此时【大小王】的数目为【%d】\n' %(j,q,k,king)) '''
def main():
print('请按以下格式输入:\n')
print('如果需要对某张牌进行减法计数,就输入对应的牌数:\n格式为:\n【1】牌0到10就输入数字0到10\n【2】大小王请输入"大小王",大小王一块计数\n【3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"。')
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]))
print('此时【牌J】的数目为【%d】\n此时【牌Q】的数目为【%d】\n此时【牌K】的数目为【%d】\n此时【大小王】的数目为【%d】\n' %(j,q,k,king))
instruct = input('请输入对面已经出过的牌数:')
(num,num_dict)= judge_num(instruct,num,num_dict)
''' if __name__ == '__main__':
num = list()
j = k = q = king = 0
(num,j,k,q,king) = init(num,j,k,q,king)
while True:
print('请按以下格式输入:\n')
print('如果需要对某张牌进行减法计数,就输入对应的牌数:\n格式为:\n【1】牌0到10就输入数字0到10\n【2】大小王请输入"大小王",大小王一块计数\n【3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"。')
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]))
print('此时【牌J】的数目为【%d】\n此时【牌Q】的数目为【%d】\n此时【牌K】的数目为【%d】\n此时【大小王】的数目为【%d】\n' %(j,q,k,king))
instruct = input('请输入对面已经出过的牌数:')
(num,j,k,q,king)= judge_num(instruct,num,j,k,q,king)
演示demo的效果:

这个只是一时兴起写的,很简陋的实现记牌数的功能,以后有空可以将其做成界面好看一点的web应用。
接下来真的匿了,专心期末了。
用python实现的简易记牌器的demo的更多相关文章
- python调用百度语音(语音识别-斗地主语音记牌器)
一.概述 本篇简要介绍百度语音语音识别的基本使用(其实是斗地主时想弄个记牌器又没money,抓包什么的又不会,只好搞语音识别的了) 二.创建应用 打开百度语音官网,产品与使用->语音识别-> ...
- [视觉] 基于YoloV3的实时摄像头记牌器
基于YoloV3的实时摄像头记牌器 github:https://github.com/aoru45/cards_recognition_recorder_pytorch 最终效果 数据准备 数据获取 ...
- [麻雀虽小]记 简易Markdown阅读器 开发全过程
[麻雀虽小]记 简易Markdown阅读器 开发全过程 [TOC] 序言 项目地址: https://github.com/didikee/MDReader 测试文章地址: 2017 Android ...
- c 算牌器代码
int main() { // 算牌器 ]; ; do { printf("请输入牌名: \n"); scanf("%2s",char_name); ; ]) ...
- Python实战:美女图片下载器,海量图片任你下载
Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习 ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- 初学 Python(十五)——装饰器
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...
- Python全栈开发之---装饰器
1.装饰器的形成过程 import time def func1(): print('in func1') def timer(func): def inner(): start = time.tim ...
- 十一. Python基础(11)—补充: 作用域 & 装饰器
十一. Python基础(11)-补充: 作用域 & 装饰器 1 ● Python的作用域补遗 在C/C++等语言中, if语句等控制结构(control structure)会产生新的作用域 ...
随机推荐
- mysqlpump原理及实战
MySQL5.7之后多了一个备份工具:mysqlpump.它是mysqldump的一个衍生,mysqldump就不多说明了,现在看看mysqlpump到底有了哪些提升,可以查看官方文档,这里针对如何使 ...
- 15.Ansible安装与配置简单版
Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...
- 怎样理解第三方Cookie
1. Cookie往往是用来存储用户信息的, 但有些恶意站点设法伪造了带有正确Cookie的HTTP请求, 这时就会产生安全问题( CSRF 攻击 ). 这里恶意网站获取cookie的行为就是第三方c ...
- wrbstrom使用
使用webstrom时遇到Firefox浏览器打不开问题,是webstrom未找到你Firefox的安装路径下面为大家提供解决方法: 文件--->设置--->工具--->web浏览器 ...
- Python算法题(三)——经典函数题
题目一(统计字符串中指定类型字符的个数): 假设所有字符分为三类:字母,数字及其他字符. ...
- 华为机试题:仿LISP
package com.nowcoder.huawei; import java.util.*; public class LISP { // 只通过80% // (+ (* 2 3) (^ 4)) ...
- 小程序wxs是作用
wxs weixin script,小程序的脚本语言:可以结合wxml构建页面结构: 说白了 就是在小程序里面写函数表达式的地方: wxml里面直接使用wxs,有错误再次刷新就能解决 <wxs ...
- Navicat for MySQL 设置定时任务(事件)
1.查询界面输入命令,查看定时任务是否开启,未开始时OFF: show variables like '%event_scheduler%'; 2. 查询界面输入命令,开启定时任务: set glob ...
- java 日期。时间
友情链接: https://www.cnblogs.com/wanson/articles/10818955.html
- 【Git】一、安装、配置和仓库创建
之前一直使用图形界面的git,只会一些最常用的操作,并没有说深入学习git的全部功能 开发这么久了,觉得是时候学习一下指令操作,更快捷也更bigger ------------------------ ...