Python中的扑克牌

2025年1月5日 | 阅读6分钟

一副传统的扑克牌总共有 52 张,分为 4 种花色。每种花色有两种颜色,红色和黑色,以及十三种点数。四种花色如下:

  • 红桃(红色)
  • A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K
  • 方块(红色)
  • A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K
  • 梅花(黑色)
  • A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K
  • 黑桃(黑色)
  • A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K

每种花色除了数字牌外,还有三种人头牌:J、Q 和 K。根据游戏规则,A 可以当作 1 或 11。

标准牌组常用于许多纸牌游戏,例如扑克、二十一点、桥牌等。有时用作万能牌或在某些游戏中用于附加规则的鬼牌(Jokers),也可能出现在牌组中。牌组中的鬼牌数量可能不同;有些没有,有些有一张或两张。

Python Deck of Cards

让我们来看一下打印扑克牌牌组的程序。

程序 1

输出

2 of Hearts                    2 of Diamonds                  2 of Clubs                     2 of Spades                    
3 of Hearts                    3 of Diamonds                  3 of Clubs                     3 of Spades                    
4 of Hearts                    4 of Diamonds                  4 of Clubs                     4 of Spades                    
5 of Hearts                    5 of Diamonds                  5 of Clubs                     5 of Spades                    
6 of Hearts                    6 of Diamonds                  6 of Clubs                     6 of Spades                    
7 of Hearts                    7 of Diamonds                  7 of Clubs                     7 of Spades                    
8 of Hearts                    8 of Diamonds                  8 of Clubs                     8 of Spades                    
9 of Hearts                    9 of Diamonds                  9 of Clubs                     9 of Spades                    
10 of Hearts                 10 of Diamonds                10 of Clubs                   10 of Spades                   
Jack of Hearts               Jack of Diamonds            Jack of Clubs                Jack of Spades                 
Queen of Hearts          Queen of Diamonds        Queen of Clubs           Queen of Spades                
King of Hearts               King of Diamonds            King of Clubs               King of Spades                 
Ace of Hearts                Ace of Diamonds              Ace of Clubs               Ace of Spades    

说明

我们使用 for 循环打印了带有花色的点数。

程序 2

输出

Python Deck of Cards

说明

我们定义了两个字典,一个用于表示 Unicode 值的符号,另一个用于表示数字。然后,我们通过 for 循环遍历符号来打印所有点数。

程序 3

输出

Python Deck of Cards

说明

此程序与前一个相同,但我们将花色字典使用符号而不是 Unicode 值进行了定义。然后,我们使用 for 循环打印了带有花色的点数。

程序 4

让我们考虑一个简单的扑克牌牌组程序。

输出

[['Club', '1'], ['Club', '2'], ['Club', '3'], ['Club', '4'], ['Club', '5'], ['Club', '6'], ['Club', '7'], ['Club', '8'], ['Club', '9'], ['Club', 'J'], ['Club', 'Q'], ['Club', 'K'], ['Club', 'A'], ['Diamond', '1'], ['Diamond', '2'], ['Diamond', '3'], ['Diamond', '4'], ['Diamond', '5'], ['Diamond', '6'], ['Diamond', '7'], ['Diamond', '8'], ['Diamond', '9'], ['Diamond', 'J'], ['Diamond', 'Q'], ['Diamond', 'K'], ['Diamond', 'A'], ['Heart', '1'], ['Heart', '2'], ['Heart', '3'], ['Heart', '4'], ['Heart', '5'], ['Heart', '6'], ['Heart', '7'], ['Heart', '8'], ['Heart', '9'], ['Heart', 'J'], ['Heart', 'Q'], ['Heart', 'K'], ['Heart', 'A'], ['Spade', '1'], ['Spade', '2'], ['Spade', '3'], ['Spade', '4'], ['Spade', '5'], ['Spade', '6'], ['Spade', '7'], ['Spade', '8'], ['Spade', '9'], ['Spade', 'J'], ['Spade', 'Q'], ['Spade', 'K'], ['Spade', 'A']]

说明

上面的程序只有 5 行代码。对于想要理解它的初学者来说非常简单。至于程序代码,我们只是创建了一个带有牌型和牌值的空列表,然后使用 for 循环将每种牌型与牌值配对,然后扩展了名为 deck 的空列表并打印了扑克牌牌组。

洗牌

让我们看一个关于洗牌的程序,该程序以混合顺序创建一副扑克牌。

程序 5

输出

Shuffled Deck:
8 of Diamonds
4 of Spades
K of Hearts
Q of Spades
Q of Hearts
4 of Clubs
10 of Diamonds
9 of Clubs
K of Spades
2 of Clubs
4 of Hearts
7 of Hearts
J of Spades
2 of Hearts
K of Diamonds
6 of Spades
10 of Hearts
5 of Hearts
7 of Clubs
3 of Spades
J of Diamonds
3 of Hearts
A of Hearts
Q of Diamonds
A of Diamonds
9 of Spades
8 of Clubs
3 of Clubs
2 of Spades
5 of Spades
A of Clubs
9 of Hearts
A of Spades
K of Clubs
4 of Diamonds
J of Clubs
2 of Diamonds
6 of Clubs
10 of Clubs
J of Hearts
5 of Diamonds
3 of Diamonds
5 of Clubs
Q of Clubs
8 of Spades
9 of Diamonds
8 of Hearts
6 of Diamonds
7 of Spades
10 of Spades
7 of Diamonds
6 of Hearts

说明

首先,我们创建了两个列表:一个包含点数,另一个包含花色。我们使用 for 循环将 13 种点数与 4 种花色配对。

之后,我们使用了 random.shuffle() 方法,该方法接受列表作为输入并产生列表的混合顺序。这样我们最终得到了洗好的扑克牌牌组。

结论

这个 Python 程序是创建、洗牌和打印虚拟扑克牌牌组的基本演示。它旨在向初学者介绍 Python 的概念,如列表、字典、函数和外部模块。

Python 类允许模拟标准的扑克牌牌组并执行各种与扑克牌相关的操作。这使得它特别适用于开发纸牌游戏或涉及操作纸牌牌组的应用程序。Python 的灵活性使得创建自定义牌型、游戏规则和计分系统成为可能,使其成为基于扑克牌的编程的通用工具。

Python 的可读性和广泛的库使其成为所有级别对游戏开发感兴趣的开发者的绝佳选择。Python 拥有支持您踏入游戏开发之旅的必要工具和资源。