实现功能很简单:
初始时 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应用。
接下来真的匿了,专心期末了。
时间: 2024-10-09 20:29:12