大家好,这篇博客主要分享一下我用python写的五子棋项目。
首先简单地讲一下,这个项目主要是为了能够进一步地巩固列表、熟练条件判断、布尔值判断、循环判断等相关的python基础语法知识,感兴趣的同学不妨看一下。(不过是没有ui设计的)
项目的设计流程
1、这个项目的设计主要面对对象来进行编译,因此我们在这里设计三个模块,分别为主模块、棋盘类模块以及棋子类模块
2、针对这三个模块需要的功能进行分析
主模块
定义一个下棋的函数playChess,只要对的棋子的颜色获取和位置做一个接口和对棋子的相关参数做一个限制。
棋盘模块
创建一个棋盘类ChessBoard
1、初始化棋盘的大小,样式设计
2、定义一个setchess函数,实现根据棋子的位置来改变棋盘位置的颜色的功能
3、定义一个getchess函数根据棋子位置获取棋子颜色
4、定义一个isEmpyty函数来判断落子时棋盘该位置是否为空
5、定义一个isWin 函数来判断输赢
棋子模块
创建一个棋子类ChessMAN
1、定义一个函数设置棋子的颜色
2、定义一个函数获取棋子的颜色
3、定义一个函数设置棋子的位置
4、定义一个函数获取棋子的位置
3、根据简便程度,我们的代码过程先从棋子类到棋盘类再到主模块。
话不多说直接上编码。
首先时棋子模块
class ChessMan:
#在这里初始化棋子的的颜色和位置
def __init__(self):
self.color = 'x'
self.pos = (0,0)
#设置棋子颜色
def set_color(self,color):
self.color = color
#获取棋子颜色
def get_color(self):
return self.color
#设置棋子位置
def set_pos(self,pos):
self.pos = pos
#获取棋子位置
def get_pos(self):
return self.pos
接着就是棋盘类,棋盘类相对比较复杂一点,我这里会详细写一下
#我们在这里到入棋子模块,并实例化一个对象chessMan
from Chessman import ChessMan
chessMan = ChessMan()
class ChessBoard:
#棋盘的规格15*15,并且起始序号为1,编程的起始序号为0,所以我们可以先分配十六个位置,而我们可以直
#利用1~15的位置,这样就不会引起一个混乱
def __init__(self):
self.BOARD_SIZE = 15
self.board = []
#通过双层遍历创建二位列表,先分配16*16的空间
for i in range(self.BOARD_SIZE+1):
stm = []