|

楼主 |
发表于 2022-4-4 19:07:06
|
显示全部楼层
本帖最后由 yangbaowen 于 2022-4-4 19:09 编辑
- order = 1 #代表牌的排列顺序
- Player_Num = 3 #代表玩家数目
- N = 54
- times = 1
- leftover = 3 #代表给地主留的底牌数目
- import random
- card0 = list(range(0,N))
- card0 = card0*times
- #print(card0)
- schar = '♠♥♣♦🃏🃏'
- card1 = []
- left = N*times
- for i in range(N*times):
- rdi = random.randint(0,left-1)
- card1.append(card0[rdi])
- card0.pop(rdi)
- left-=1
- if left==0:
- break
- #print(card1)
- Player = []
- for i in range (Player_Num):
- Player.append([])
- for i in range (N*times - leftover):
- Player[i%Player_Num].append(card1[i])
- Player.append([])
- for i in range (N*times-leftover,N*times):
- Player[Player_Num].append(card1[i])
- for i in range(Player_Num + 1):
- #print(Player[i])
- card_output = []
- for i in range (Player_Num + 1):
- card_output.append([])
- for i in range(Player_Num + 1):
- for j in range(len(Player[i])):
- if Player[i][j] == 53 or Player[i][j] == 52:
- card_output[i].append(str(schar[Player[i][j]%2 + 4]).rjust(3))
- else:
- cardnumber = (Player[i][j] // 4 + 2)%13 + 1
- cardflower =3-Player[i][j] % 4
- if cardnumber == 1:
- card_output[i].append('A'.rjust(2)+str(schar[cardflower]))
- elif cardnumber == 11:
- card_output[i].append('J'.rjust(2)+str(schar[cardflower]))
- elif cardnumber == 12:
- card_output[i].append('Q'.rjust(2)+str(schar[cardflower]))
- elif cardnumber == 13:
- card_output[i].append('K'.rjust(2)+str(schar[cardflower]))
- else:
- card_output[i].append(str(cardnumber).rjust(2)+str(schar[cardflower]))
- #print(card_output)
- for i in range (Player_Num):
- print('玩家{:>2}的手牌为:'.format(i+1),''.join(card_output[i]))
- print('剩余的{}张底牌为:'.format(leftover),''.join(card_output[Player_Num]))
复制代码 |
|