编程Noob需要OOP建议

时间:2018-09-18 09:07:10

标签: python python-3.x blackjack playing-cards

我一直在用python为一个项目制作二十一点游戏,并且甚至可以制作一副纸牌(见下文)。但是我想使用对象来改善它,因为我认为我将帮助我进一步提高自己的技能。

我想知道是否有人知道如何或者在哪里可以得到一些资源来帮助我学习OOP(如果这能引起任何麻烦,请问对不起,如果我不是新手)。

import random

deck = []
hand = []

def MakeDeck(deck):
    suits = ['♠','♣','♥','♦']
    values = ['A',2,3,4,5,6,7,8,9,10,'J','Q','K']

    for suit in suits:
        for value in values:
            deck.append((value,suit))

def DrawCard(deck, hand):
    card1 = random.choice(deck)
    deck.remove(card1)
    card2 = random.choice(deck)
    deck.remove(card2)

    hand.append(card1)
    hand.append(card2)

    print("Your hand:\n", hand)


MakeDeck(deck)
DrawCard(deck, hand)

1 个答案:

答案 0 :(得分:1)

尝试一下:https://realpython.com/python3-object-oriented-programming/

然后您可以阅读python的官方文档:https://docs.python.org/3.7/tutorial/classes.html

例如,制作面向OOP的二十一点游戏的一些技巧:

  • 您的游戏需要一副纸牌,我认为Deck课是一个不错的开始。
  • 该类应包含卡片,您可以创建一个代表卡片的类。您将在某个地方实例化52个对象,并将其存储在实例化的Deck中。
  • 您可以在Deck类中创建方法来管理牌组。例如,随机播放或抓牌
  • 然后您有一个游戏,二十一点。请记住,您可以在其他游戏中重复使用Card and Deck类。因此,有关二十一点规则的所有信息(例如,您的卡的值)都应在BlackJack类中进行描述。在这里,您可以实例化52张卡牌,因为其他游戏有时会使用更少/更多。然后实施游戏规则(转弯,谁获胜....)
  • 您可能会创建一个Player类来存储有关运动员的信息。

最后的建议,在代码中避免使用特殊字符

suits = ['♠','♣','♥','♦']

这会给您带来麻烦。