python中扑克牌类设计_创建扑克牌类Python

本文介绍了一个Python实现的扑克牌类,用于创建包含等级、花色和21点值的扑克牌对象。在尝试计算21点值时遇到了TypeError,问题在于尝试比较list和{}的实例。代码中定义了`bjValue()`函数来确定牌的21点值,但逻辑存在错误,导致Jack, Queen和King的21点值计算不正确。修正后的代码能正确显示扑克牌信息,但21点值的问题仍未解决。" 109058378,10178631,Python爬虫初体验:从入门到实战,"['Python', '爬虫', '网络爬虫', '数据抓取', '数据存储']
摘要由CSDN通过智能技术生成

我创建了一个扑克牌对象,它具有等级、组别和21点值的某些属性。在

21点值部分不断得到一个TypeError,它说我无法比较list和{}的实例。我不知道如何解决(如何/如果我可以比较列表的索引,然后根据其索引给它21点值)?在

if/elif块属于bjValue()函数还是init()函数中?在

我的代码是:class Card:

"""playing card object where numeric rank, suit and blackjack values are stored"""

def __init__(self, rank, suit):

self.rank = rank

self.suit = suit

self.ranks = [None, "Ace", 2, 3, 4, 5, 6, 7, 8, 9, 10, "Jack", "Queen", "King"]

self.suits = {"d": "Diamonds",

"c": "Clubs",

"h": "Hearts",

"s": "Spades"}

def getRank(self):

"""returns the rank of the card"""

return self.rank

def getSuit(self):

return self.suits.get(self.suit)

def bj

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您的问题是如何用Python实现一个交互式界面的扑克牌发牌程序。下面是一个简单的实现示例,您可以参考一下: ```python import random import tkinter as tk # 创建扑克牌的列表 suits = ['♠', '♥', '♦', '♣'] ranks = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'] deck = [rank + suit for suit in suits for rank in ranks] # 创建交互式界面 root = tk.Tk() root.title('扑克牌发牌程序') canvas = tk.Canvas(root, width=800, height=600) canvas.pack() # 创建玩家和底牌的标签 player_label = tk.Label(root, text='玩家:') player_label.place(x=50, y=50) deck_label = tk.Label(root, text='底牌:') deck_label.place(x=50, y=100) # 创建发牌按钮,点击后随机发一张牌给玩家或底牌 def deal_card(): card = random.choice(deck) deck.remove(card) if len(player_cards) < 5: player_cards.append(card) player_card_label.config(text=' '.join(player_cards)) else: deck_cards.append(card) deck_card_label.config(text=' '.join(deck_cards)) deal_button = tk.Button(root, text='发一张牌', command=deal_card) deal_button.place(x=50, y=150) # 创建玩家和底牌的显示标签 player_card_label = tk.Label(root, text='', font=('Arial', 20)) player_card_label.place(x=150, y=50) deck_card_label = tk.Label(root, text='', font=('Arial', 20)) deck_card_label.place(x=150, y=100) # 初始化玩家和底牌的牌组 player_cards = [] deck_cards = [] root.mainloop() ``` 这个程序使用了Tkinter库创建了一个交互式界面,包括一个发牌按钮和两个标签用于显示玩家和底牌的牌组。点击发牌按钮后,程序会随机从扑克牌列表选取一张牌,并将其从列表删除。如果玩家的牌组还没有满5张,则将这张牌加入玩家的牌组,并更新玩家牌组的显示标签;否则,将这张牌加入底牌的牌组,并更新底牌牌组的显示标签。 您可以根据自己的需求进行修改和扩展,比如增加计分功能、添加更多的按钮和标签等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值