一付撲克牌,去掉大小王,每個玩家發3張牌,最後比大小,看誰贏。
有以下幾種牌:
豹子:三張一樣的牌,如3張6.
順金:又稱同花順,即3張同樣花色的順子, 如紅桃 5、6、7
順子:又稱拖拉機,花色不同,但是順子,如紅桃5、方片6、黑桃7,組成的順子
對子:2張牌一樣
單張:單張最大的是a
這幾種牌的大小順序為,豹子》順金》順子》對子》單張
先生成一付完整的撲克牌
給5個玩家隨機發牌
統一開牌,比大小,輸出贏家是誰
# -*- coding: utf-8 -*-
"""# @time : 2021-01-07 14:55
# @author : jianwei
# @software : pycharm
"""import random
import operator
puke =
# 儲存撲克牌
num_list =
['2'
,'3'
,'4'
,'5'
,'6'
,'7'
,'8'
,'9'
,'10'
,'j'
,'q'
,'k'
,'a'
]hua_list =
['梅花'
,'紅桃'
,'黑桃'
,'方塊'
]sotr_dic =
count_new_list =
# 儲存玩家分數和排序後排名
count_dic =
# 儲存玩家分數
# 準備52張撲克
for hua in hua_list:
for num in num_list:
a = hua + num
player_dic =
# 隨機給五個玩家發牌
# print(len(puke))
for key, value in player_dic.items():
for i in
range(3
):plate = random.sample(puke,3)
player_dic[key]
= plate
for i in plate:
puke.remove(i)
# print(player_dic)
# 獲取玩家的牌型
defpaixing
(list1)
: num =
huase =
for i in list1:
a = i[2:
] b = i[:2
]return num, huase
# 對數字的牌型進行排序
defsotr
(num)
: new_num =
sort_list2 =
list1 =
for i in num:
) new_num =
sorted
(new_num)
for new in new_num:
[k for k, v in sotr_dic.items(
)if v == new]
)for m in sort_list2:
for n in m:
return list1
# 對玩家的牌形統計分數
defcount
(num, huase)
: a =
0 base_count = sotr_dic[num[0]
]+ sotr_dic[num[1]
]+ sotr_dic[num[2]
]if num[0]
== num[1]
and num[1]
== num[2]
: paixing =
'豹子'
a = base_count + sotr_dic[paixing]
# print(paixing, a)
elif
(sotr_dic[num[0]
]+1== sotr_dic[num[1]
]and sotr_dic[num[2]
]-1== sotr_dic[num[1]
])and(huase[0]
== huase[1]
and huase[1]
== huase[2]
):paixing =
'順金'
a = base_count + sotr_dic[paixing]
# print(paixing, a)
elif
(sotr_dic[num[0]
]+1== sotr_dic[num[1]
])and(sotr_dic[num[2]
]-1== sotr_dic[num[1]
])and(
huase[0]
!= huase[1]
or huase[1]
!= huase[2]
):paixing =
'順子'
a = base_count + sotr_dic[paixing]
# print(paixing, a)
elif
(num[0]
== num[1]
and num[1]
!= num[2]
)or(num[1]
== num[2]
and num[0]
!= num[1]
)or( num[0]
== num[2]
and num[1]
!= num[0]
):paixing =
'對子'
a = base_count + sotr_dic[paixing]
# print(paixing, a)
else
: a = base_count
return a
# 對儲存玩家分數的字典進行排序
defcompare
(count_dic)
: d =
list
(zip
(count_dic.values(
), count_dic.keys())
)return
sorted
(d, reverse=
true
)for key, value in player_dic.items():
# print(key,value)
num, huase = paixing(value)
# print(num,huase)
num = sotr(num)
# print(num, huase)
count1 = count(num, huase)
# print(count1)
count_dic[key]
= count1
print
(key +
"的牌為:"
+str
(value)
) count_new_list = compare(count_dic)
# print(count_new_list)
print
('最終排名:'
+"\t"
+ count_new_list[0]
[1]+
"第一名"
+"\t"
+ count_new_list[1]
[1]+
"第二名"
+"\t"
+ count_new_list[2]
[1]+
"第三名"
+"\t"
+ count_new_list[3]
[1]+
"第四名"
+"\t"
+ count_new_list[4]
[1]+
"第五名"
)
如果對你有幫助,記得點讚加關注,謝謝!!! 用python編寫愛心小程式
這幾天剛剛接觸python,學習之餘寫了乙個愛心demo,如下 import math words input 請輸入內容 為了了解相關運算的特性,對 進一步精簡,最終如下 print n join join love x y len love if 64 pow x,2 pow y pow pow...
Python編寫簡單的剪刀石頭布小程式
1 提示使用者選擇石頭剪刀布 2 計算機隨機選擇石頭剪刀布 3 判斷使用者輸贏 4 列印結果 import random 電腦人隨機出拳 computer random.randint 1,3 user int input 請出拳 1.拳頭,2.剪刀,3.布 if computer 1 comput...
python編寫定時關機程式
import os,sys,time from pyqt5 import qtcore,qtwidgets,qtgui class guanji object defpageshow self,page 設定視窗的位置和大小 page.setgeometry 400,400,400,200 設定視窗...