用python實現的簡易記牌器的demo

2022-07-12 11:30:16 字數 3538 閱讀 7154

實現功能很簡單:

初始時 1到10 以及 jkq各 4張,大小王 共兩張

只要輸入相應的牌號:1到10,例如 >>1     j、k、q :例如》j     >>大小王 

此時相應的牌的數目會減少1

由此可以看出鬥地主時候別人手裡的牌還剩哪些。

上原始**,沒有做gui,這個只是乙個演示的demo:

#

有1——10、j、q、k各四張以及大小王,現在初始除了大小王以外均為4張,每次輸入乙個就會減少一。

definit(num,j,k,q,king):

for i in range(10):

king = 2j = k = q = 4

return

(num,j,k,q,king)

defjudge_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牌0到10就輸入數字0到10\n大小王請輸入"大小王",大小王一塊計數\n如果需要重新開始,請輸入"復位"或者"重新開始"或者"重啟"。')

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牌0到10就輸入數字0到10\n大小王請輸入"大小王",大小王一塊計數\n如果需要重新開始,請輸入"復位"或者"重新開始"或者"重啟"。')

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簡易實現k means

用dist存放所有資料到中心的距離,有n行 n組資料 k 1列 前k列分別存放到第i個類中心的距離,最後一列存放分到了第幾類 usr bin env python coding utf 8 import numpy as np n 100 x np.arange 100 y np.arange 20...

Python實現簡易Socket

客戶端 向服務端傳送資訊和接收服務端返回的資訊 import socket flag true client socket.socket client.connect localhost 8080 連線服務埠 while flag msg input strip 獲取要傳送的資訊 if len ms...

簡易區塊鏈的python實現

import hashlib import datetime class ttblockcoin def init self,index,索引 timestamp,時間戳 data,交易資料 lasthash 上乙個塊的hash值 self.index index self.timestamp ti...