将棋盘封装为对象

1.1 面向过程OR面向对象?

在进行后续的编码操作之前,我们先要想清楚一件事情,即“用面向过程的方式还是面向对象的方式进行接下来的编程”

那你会用哪种方式进行呢?

实话说:如果代码量比较小(例如预计不到100行),完全可以用面向过程,即用普通的函数+局部变量+全局变量等就能搞定;但如果代码量较大(例如有几百甚至上千行),此时应该考虑用面向对象的方式,究其原因是因为用面向对象的方式编程,它的封装性更好,直白点说就是“可以将用到的数据(变量)以及功能(函数)打包成一个整体,调用的时候非常方便”

综上所述,中国象棋项目在接下来的编程中,是使用的面向对象的方式实现的,所以从本节开始,就需要将“棋子”、“棋盘”等信息开始封装为“对象”

1.2 本节目标

将在main函数中创建的棋盘图片以及显示棋盘图片的功能,封装到ChessBoard实例对象中,只要创建ChessBoard对象就立刻创建图片,只要调用ChessBoard实例对象的show方法就显示图片

1.3 实现代码

class ChessBoard(object):
    """
    棋盘类
    """

    def __init__(self, screen):
        """初始化"""
        self.screen = screen
        self.image = pygame.image.load("images/bg.png")
        self.topleft = (50, 50)

    def show(self):
        # 显示棋盘
        self.screen.blit(self.image, self.topleft)

image-20210821180834247

    # 创建棋盘对象
    chessboard = ChessBoard(screen)

image-20210821181755486

chessboard.show()

image-20210821181911871

1.4 运行效果

img

Copyright © itprojects.cn 2021 all right reserved,著作权归itprojects.cn所有,由王铭东编写该文件修订时间: 2021-08-21 20:32:16