使用python实现简单五子棋游戏

  

用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下

  

第一次写博客,我尽力把它写好。

  

最近在初学python,今天就用自己的一些粗浅理解,来记录一下这几天的python简单人机五子棋游戏的练习,下面是实现过程的理解(是在cmd中运行的):

  

<强>主要流程:强*重点内容*

  

——首先是模块及类的划分
  ——棋子类和棋盘类的方法
  ——对策略类里的功能进行细分,调用棋子类和棋盘类
  ——写出判断输赢的方法
  ——用主要函数进行整个游戏进度的控制

  

<强>模块及类的划分

  

类的划分涉及到了面向对象的内容,根据五子棋游戏的设定,人和机器依次在一个棋盘里下的棋,一方五子连线为赢,初步分为<强>策略类强,每个类单独放一个模块,加上主要模块一共四个模块。

  
      <李>棋子类包含棋子的坐标和棋子颜色(阵营),及相关,设置方法   <李>棋盘类包含了棋盘的大小和棋盘的状态,及相关,设置方法   <李>棋盘类的功能:接收要放入的棋子,清空棋盘,打印(显示)棋盘,给出对应位置的状态李   <李>策略类:一个策略类对应一个棋盘类,在构造器里导入一个棋盘类李   <李>策略类的功能:人把棋子放入棋盘,机器把棋子放入棋盘,判断棋局的输赢
      李   
  

<强>棋子类和棋盘类

  

比较简单,在棋子的角度,只要接收位置和颜色(阵营),传出位置和颜色(阵营)即可,其中位置用元组打包传递

        类棋子(对象):   #初始化   def __init__(自我):   通过      def set_pos(自我,pos):   自我。pos=pos      def get_pos(自我):   返回self.pos      def set_color(自我、颜色):   自我。颜色=颜色      def get_color(自我):   返回self.color      

需要用到棋子类,在这之前,先要进行棋盘的设定
  在这里棋盘是用列表来构建,分为两层,实现x, y的位置,棋盘大小设为类属性

        #类属性   board_size=15   #初始化棋盘   def __init__(自我):   自我。__board=[[0我的范围(0,Chessboard.board_size + 1)]的j范围(0,Chessboard.board_size + 1)]      

清空棋盘类似

        #清空棋盘,“+”为棋盘的样子   def init_board(自我):   #忽略第0行   我的范围(1,Chessboard.board_size + 1):   j的范围(1,Chessboard.board_size + 1):   自我。__board[我][j]=' + '      

打印也差不多,注意在坐标轴旁放上序列号,这里纵坐标为1 - 15,横坐标为光学

        #打印棋盘   def print_board(自我):   #打印列号   打印(“=?   我的范围(1,Chessboard.board_size + 1):   c=科(奥德(a) +张)#奥德字母转ASCLL码   打印(c,结束=")   print ()   #棋盘   我的范围(1,Chessboard.board_size + 1):   如果1 & lt;=我& lt;=9:   打印(“=?   打印(我,结束=")   j的范围(1,Chessboard.board_size + 1):   print(自我。__board[我][j],结束=")   print ()      

效果为如下

  

使用python实现简单五子棋游戏

  

接下来是棋子的放入:

  

这个可分为两个方法,一个根据传入的位置放置传入的颜色,另一个接收一个棋子类的实例对象,获取该实例的位置和颜色,调用第一个方法并传入数值,一定要注意在传参的时候验证

        #写入对应位置的颜色   def set_chess(自我、pos、颜色):   如果不是isinstance (pos,元组):   提高RuntimeError(“第一个参数必须为元组”)   如果pos [0] & lt;=0或pos[0]比;Chessboard.board_size:   提高RuntimeError(“行下标越界”)   如果pos [1] & lt;=0或pos[1]比;Chessboard.board_size:   提高RuntimeError(“纵下标越界”)   自我。pos __board [pos[0]][[1]]=颜色      #把棋子对象摆放到棋盘上   def set_chessman(自我,棋子):   如果不是isinstance(棋子,棋子):   提高RuntimeError(“类型不对,第一个参数应为棋子对象”)   pos=chessman.get_pos ()   颜色=chessman.get_color ()   self.set_chess (pos、颜色)      之前      

接下来的根据棋盘位置获取棋子颜色的方法主要是为了策略类的判定输赢准备的

使用python实现简单五子棋游戏