zoukankan      html  css  js  c++  java
  • 用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 == '1':
            num[1] = num[1] - 1
        if instruct == '2':
            num[2] = num[2] - 1
        if instruct == '3':
            num[3] = num[3] - 1
        if instruct == '4':
            num[4] = num[4] - 1
        if instruct == '5':
            num[5] = num[5] - 1
        if instruct == '6':
            num[6] = num[6] - 1
        if instruct == '7':
            num[7] = num[7] - 1
        if instruct == '8':
            num[8] = num[8] - 1
        if instruct == '9':
            num[9] = num[9] - 1
        if instruct == '10':
            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】
    此时【牌2】的数目为【%d】
    此时【牌3】的数目为【%d】
    此时【牌4】的数目为【%d】
    此时【牌5】的数目为【%d】
    此时【牌6】的数目为【%d】
    此时【牌7】的数目为【%d】
    此时【牌8】的数目为【%d】
    此时【牌9】的数目为【%d】
    此时【牌10】的数目为【%d】
    ' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
        print('此时【牌J】的数目为【%d】
    此时【牌Q】的数目为【%d】
    此时【牌K】的数目为【%d】
    此时【大小王】的数目为【%d】
    ' %(j,q,k,king))
    
          
    '''    
    def main():
        print('请按以下格式输入:
    ')
        print('如果需要对某张牌进行减法计数,就输入对应的牌数:
    格式为:
    【1】牌0到10就输入数字0到10
    【2】大小王请输入"大小王",大小王一块计数
    【3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"。')
        print('此时【牌1】的数目为【%d】
    此时【牌2】的数目为【%d】
    此时【牌3】的数目为【%d】
    此时【牌4】的数目为【%d】
    此时【牌5】的数目为【%d】
    此时【牌6】的数目为【%d】
    此时【牌7】的数目为【%d】
    此时【牌8】的数目为【%d】
    此时【牌9】的数目为【%d】
    此时【牌10】的数目为【%d】
    ' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
        print('此时【牌J】的数目为【%d】
    此时【牌Q】的数目为【%d】
    此时【牌K】的数目为【%d】
    此时【大小王】的数目为【%d】
    ' %(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('请按以下格式输入:
    ')
            print('如果需要对某张牌进行减法计数,就输入对应的牌数:
    格式为:
    【1】牌0到10就输入数字0到10
    【2】大小王请输入"大小王",大小王一块计数
    【3】如果需要重新开始,请输入"复位"或者"重新开始"或者"重启"。')
            print('此时【牌1】的数目为【%d】
    此时【牌2】的数目为【%d】
    此时【牌3】的数目为【%d】
    此时【牌4】的数目为【%d】
    此时【牌5】的数目为【%d】
    此时【牌6】的数目为【%d】
    此时【牌7】的数目为【%d】
    此时【牌8】的数目为【%d】
    此时【牌9】的数目为【%d】
    此时【牌10】的数目为【%d】
    ' %(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[8],num[9],num[10]))
            print('此时【牌J】的数目为【%d】
    此时【牌Q】的数目为【%d】
    此时【牌K】的数目为【%d】
    此时【大小王】的数目为【%d】
    ' %(j,q,k,king))
            instruct = input('请输入对面已经出过的牌数:')
            (num,j,k,q,king)= judge_num(instruct,num,j,k,q,king)
    
        

    演示demo的效果:

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

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

  • 相关阅读:
    搭建高可用mongodb集群—— 副本集
    搭建高可用mongodb集群(一)——mongodb配置主从模式
    单线程异步回调机制的缺陷与node的解决方案
    js实现接口的几种方式
    访问者模式和php实现
    策略模式和php实现
    状态模式和php实现
    观察者模式和php实现
    C语言之一般树
    电子相册之bitmap
  • 原文地址:https://www.cnblogs.com/jeavenwong/p/7082983.html
Copyright © 2011-2022 走看看