欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python編寫扎金花小程序的實例代碼

 更新時間:2021年02月23日 15:12:24   作者:派大星..  
這篇文章主要介紹了python編寫扎金花小程序的實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

游戲規(guī)則:

一付撲克牌,去掉大小王,每個玩家發(fā)3張牌,最后比大小,看誰贏。

有以下幾種牌:

豹子:三張一樣的牌,如3張6.

順金:又稱同花順,即3張同樣花色的順子, 如紅桃 5、6、7

順子:又稱拖拉機,花色不同,但是順子,如紅桃5、方片6、黑桃7,組成的順子

對子:2張牌一樣

單張:單張最大的是A

這幾種牌的大小順序為, 豹子>順金>順子>對子>單張

程序需要實現(xiàn)的點:

  1. 先生成一付完整的撲克牌
  2. 給5個玩家隨機發(fā)牌
  3. 統(tǒng)一開牌,比大小,輸出贏家是誰

主要思路:

 把各種牌用積分來計算,最后加上三張牌的基礎(chǔ)積分。即:最終積分=基礎(chǔ)積分+牌型積分。最后比較最紅積分,誰的積分大,誰排名就靠前。 附上源碼:

# -*- 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 = {'2': 0, '3': 1, '4': 2, '5': 3, '6': 4, '7': 5, '8': 6, '9': 7, '10': 8, 'J': 9, 'Q': 10, 'K': 11, 'A': 12,
      '對子': 15, '順子': 30, '順金': 60, '豹子': 100}
count_new_list = [] # 存儲玩家分?jǐn)?shù)和排序后排名
count_dic = {} # 存儲玩家分?jǐn)?shù)
# 準(zhǔn)備52張撲克
for hua in hua_list:
  for num in num_list:
    a = hua + num
    puke.append(a)
player_dic = {'玩家1': [], '玩家2': [], '玩家3': [], '玩家4': [], '玩家5': []}
# 隨機給五個玩家發(fā)牌
# 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)

# 獲取玩家的牌型
def paixing(list1):
  num = []
  huase = []
  for i in list1:
    a = i[2:]
    b = i[:2]
    num.append(a)
    huase.append(b)
  return num, huase


# 對數(shù)字的牌型進行排序
def sotr(num):
  new_num = []
  sort_list2 = []
  list1 = []
  for i in num:
    new_num.append(sotr_dic[i])
  new_num = sorted(new_num)
  for new in new_num:
    sort_list2.append([k for k, v in sotr_dic.items() if v == new])
  for m in sort_list2:
    for n in m:
      list1.append(n)
  return list1


# 對玩家的牌形統(tǒng)計分?jǐn)?shù)
def count(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


# 對存儲玩家分?jǐn)?shù)的字典進行排序
def compare(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] + "第五名")

到此這篇關(guān)于python編寫扎金花小程序的文章就介紹到這了,更多相關(guān)pytho扎金花小程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Python編寫簡單的定時器的方法

    用Python編寫簡單的定時器的方法

    這篇文章主要介紹了用Python編寫簡單的定時器的方法,主要用到了Python中的threading模塊,需要的朋友可以參考下
    2015-05-05
  • 在Ubuntu系統(tǒng)中運行python代碼的幾個步驟

    在Ubuntu系統(tǒng)中運行python代碼的幾個步驟

    項目中需要在Linux上運行自己寫的python腳本,特此記錄一下操作流程,整個流程比較簡單,下面這篇文章主要給大家介紹了關(guān)于在Ubuntu系統(tǒng)中運行python代碼的幾個步驟,需要的朋友可以參考下
    2023-12-12
  • python3.6實現(xiàn)學(xué)生信息管理系統(tǒng)

    python3.6實現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python3.6實現(xiàn)學(xué)生信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • python基于BeautifulSoup實現(xiàn)抓取網(wǎng)頁指定內(nèi)容的方法

    python基于BeautifulSoup實現(xiàn)抓取網(wǎng)頁指定內(nèi)容的方法

    這篇文章主要介紹了python基于BeautifulSoup實現(xiàn)抓取網(wǎng)頁指定內(nèi)容的方法,涉及Python使用BeautifulSoup模塊解析html網(wǎng)頁的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Python中的Pydantic序列化詳解

    Python中的Pydantic序列化詳解

    這篇文章主要介紹了Python中的Pydantic序列化詳解,Pydantic 是 Python 中一個高性能的數(shù)據(jù)驗證和序列化庫,它提供了一個簡單而強大的方式來定義結(jié)構(gòu)化的數(shù)據(jù),并在應(yīng)用程序的各個層次中使用這些數(shù)據(jù),需要的朋友可以參考下
    2023-10-10
  • 用python將word文檔合并實例代碼

    用python將word文檔合并實例代碼

    大家好,本篇文章主要講的是用python將word文檔合并實例代碼,感興趣的同學(xué)趕快老看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python+Xlwings 刪除Excel的行和列

    Python+Xlwings 刪除Excel的行和列

    這篇文章主要介紹了Python+Xlwings 刪除Excel的行和列的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 從零學(xué)Python之入門(四)運算

    從零學(xué)Python之入門(四)運算

    最近2天,各種不順利,還被一個油門當(dāng)剎車的憨貨給追尾了,所以本系列發(fā)的比較少,本文是系列的第四篇,講述的是Python的運算
    2014-05-05
  • matplotlib在python上繪制3D散點圖實例詳解

    matplotlib在python上繪制3D散點圖實例詳解

    這篇文章主要介紹了matplotlib在python上繪制3D散點圖實例詳解,首先介紹了官網(wǎng)的實例,然后分享了本文簡單代碼示例,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • 如何使用python自帶IDLE的幾種方法

    如何使用python自帶IDLE的幾種方法

    這篇文章主要介紹了如何使用python自帶IDLE的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評論