import random
li = []
typeList = ['♠','♥','♣','♦','K','Q','J','A']
# 生成牌
def createPai(typeList,j):
if j == 4 :
return None
else:
k = len(typeList) -1
for i in range(1,14):
tmp = str(i)
if i == 1 or i >= 11 :
tmp = typeList[k]
k -= 1
item = typeList[j]+tmp
li.append([i,item])
createPai(typeList, j + 1)
# 洗牌
def xipai(li):
li.append([99,'小王'])
li.append([100,'大王'])
random.shuffle(li)
# 打印原牌
def printOriPai(li):
tmp = []
for i in range(len(li)):
tmp.append(li[i][1])
print('原牌:',tmp)
# 分牌
def fenpai(li):
p = []
for i in range(3):
start = i * 17
end = 17 * (i + 1)
tmp = li[start:end]
p.append(tmp)
dipai = li[51:len(li)]
li.clear()
return dipai,p
#打印底牌
def printBottomPai(dipai):
tmp = []
for i in range(len(dipai)):
tmp.append(dipai[i][1])
print('底牌:',tmp)
return tmp
#叫地主
def jiao(p,dipai):
tmp = random.randint(0,3)
for i in range(3):
p[tmp].append(dipai[i])
# 排序
def select_sort(li):
for i in range(len(li) - 1): # n-1 趟 最后一趟只有一个数 不要比较了
min_loc = i
for j in range(i + 1, len(li)): # 找出最小值位置
if li[j][0] < li[min_loc][0]: # 找出最小值位置 li[min_loc]一定是这一行的最小值
min_loc = j
if min_loc != i: # min_loc == i 表示最小值就是在i位置交换没有意义,同一个位置赋值同一个值
li[i], li[min_loc] = li[min_loc], li[i]
tmp = []
for i in range(len(li)):
tmp.append(li[i][1])
li.clear()
return tmp
if __name__ == '__main__':
createPai(typeList,0)
xipai(li)
printOriPai(li)
dipai,p = fenpai(li)
printBottomPai(dipai)
jiao(p,dipai)
print(f"{'-' * 3}排序{'-' * 3}")
print('张三',select_sort(p[0]))
print('李四',select_sort(p[1]))
print('王五',select_sort(p[2]))