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

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

用python实现的简易记牌器的demo

评论关闭