Python-100-days 面向对象编程-简单想法学习写21点游戏(一)

本文记录作者作为Python初学者,通过实践面向对象编程来实现21点游戏的过程。作者首先介绍了对类和方法的理解,将其比喻为角色扮演游戏中的角色属性和技能,并分享了初步的代码实现思路,包括创建牌组、洗牌、发牌等功能。同时,作者发现了现有代码的一些问题,如无法支持多人游戏、无牌结束提示等,并计划改进。最后,作者揭示了`cards_str`方法中涉及的类方法和装饰器概念。
摘要由CSDN通过智能技术生成

简单想法学习写21点游戏(一)

  • (以此记录学习体会)
    年已半百,仅初中时学过点Basic,高数、英语早已丢给大学老师,看着这部分面向对象编程,经常有种感受:眼睛,会了!;脑,不会!。什么对象啊,类方法啊,静态方法啊,装饰器啊,都像传说中的东西。本着实践出真知的精神,那还是先搞一下吧,写写这个21点游戏练练,教程里起码有部分代码示范。依惯例,先CTRL+C,CTRL+V。
import random
class Card(object):
    """一张牌"""
    def __init__(self, suite, face):
        self._suite = suite
        self._face = face

    @property
    def face(self):
        return self._face

    @property
    def suite(self):
        return self._suite

    def __str__(self):
        if self._face == 1:
            face_str = 'A'
        elif self._face == 11:
            face_str = 'J'
        elif self._face == 12:
            face_str = 'Q'
        elif self._face == 13:
            face_str = 'K'
        else:
            face_str = str(self._face)
        return '%s%s' % (self._suite, face_str)
    
    def __repr__(self):
        return self.__str__()


class Poker(object):
    """一副牌"""+
    def __init__(self):
        self._cards = [Card(suite, face) 
                       for suite in '♠♥♣♦'
                       for face in range(1, 14)]
        self._current = 0

    @property
    def cards(self):
        return self._cards

    def shuffle(self):
        """洗牌(随机乱序)"""
        self
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值