python編寫扎金花小程式

2021-10-16 22:57:08 字數 4143 閱讀 4750

一付撲克牌,去掉大小王,每個玩家發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 設定視窗...