【python游戏开发入门】《PYTHON游戏编程入门》第一章挑战题

这篇博客主要介绍了《PYTHON游戏编程入门》第一章的挑战题,包括创建Ellipse类,为Rectangle类添加CalcArea()方法,以及为Circle类添加CalcCircum()方法,详细展示了代码实现和结果验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

书籍:《PYTHON游戏编程入门》(More Python Programming for the Absolute Beginner)
本文为第一章后面的挑战题,欢迎交流

题目

在这里插入图片描述

第一题

题目

打开GeometryDemo.py程序,并且创建一个继承自Point 的新类,名为Ellipse。它有一个水平半径和垂直半径,而不是像Circle那样只有一个半径。

代码

# ch1 Question 1
# python 3.8.0
# pygame 1.9.6

#第一个基类,Point
                        #   这里的object是一切类的基类,也可不写,像Size类一样
class Point(object):
    x = 0.0 
    y = 0.0
                        #   这里的变量需要赋初始值,否则会报错

    def __init__(self, x=0.0 , y=0.0):
                        #   可以给参数设置初始值,但是变量定义那里的赋初值不可省
        self.x = x
        self.y = y
                        #   为了区分原本的成员和传入的参数,这里面使用self来标记
        print('Point Constructor')

    def ToString(self):
        return "{X:" + str(self.x) + ",Y:" + str(self.y) + "}"
                        #   返回一个string

#第二个基类:Size
class Size():
    width = 0.0
    height = 0.0

    def __init__(self, w, h):
        self.width = w
        self.height = h
                        #   如果原本的成员和传入的参数不同名,也需要用self来标记,否则就是新变量
        print("Size Constructor")

    def ToString(self):
        return "{WIDTH=" + str(self.width) + \
               ",HEIGHT=" + str(self.height) + "}"
    

#子类Circle,继承自Point
class Circle(Point):
                        #   继承自Point类
    radius = 0.0

    def __init__(self, x, y, r):
        super().__init__(x, y)
                        #   调用父类的构造函数,只有一个父类的情况下可以使用super()表示父类
        #Point.__init__(self, x, y)
                        #   如果使用父类名字的话,则需要将self参数传进去
                        #   这里不能使用Point().__init__(x, y),因为它会生成一个新的Point对象
        self.radius = r
        print('Circle Constructor')

    def ToString(self):
        return super().ToString() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值