用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】\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应用。

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

 

posted @ 2017-06-26 23:36  jeavenwong  阅读(3767)  评论(0编辑  收藏  举报