python实现五子棋游戏(控制台版)

2025-10-27 09:11:16

1、  根据游戏需要,新建类“Settings”,用来定义一些必须的基本属性和初始值:

  1.number设置棋盘格数;

  2.game_active为True则开始游戏,False则结束;

  3.chess_player值1为*棋手,-1为o棋手;

  4.win_number用来累计下棋步数。

python实现五子棋游戏(控制台版)

2、  新建类“Checkerboard”,主要是利用二维列表(数组)存放棋盘数据,棋子位置都用“-”表示,代码如下图:

python实现五子棋游戏(控制台版)

1、  文件“game_functions.py”存放跟游戏有关的所有业务逻辑函数(分析重点代码),代码如下图:

  1.函数printed_board用来打印棋盘,包括标题、横竖参考坐标等:

    1)使用“\033[显示方式;前景色;背景色m”设置打印字体和背景色格式,使页面美观;使用“\033[0m”可关闭属性,前面设置的格式不影响下面的数据;

    2)print默认换行,使用end=''设置不换行;    

  2.函数win_condition用来判断是否5子连线,参数line_checkerboard分别为当前下棋子四个方向的数组,只要有一个方向存在连续5个元素的5-1==4(x or y)则判断5子连线;连线成功则打印获胜方并设置游戏结束;

  3.函数check_stats用来循环四个方向,获取当前下子四个方向的数据,并把值line_checkerboard传给函数win_condition;该函数判断情况比较多,特别是斜线和反斜线,可用实际坐标替换上去理解;

  4.函数check_input用来校验输入数据情况:

    1)当空输入时(len(inputStr) == 0),按回车键提示“请输入坐标(例如A1)!”;

    2)当输入exit(inputStr == 'exit'),按回车键退出程序;

    3)第二位非数字情况(not inputStr[1].isdigit()),按回车键提示“您输入的坐标不正确,请重新输入(例如A1)!”;

    4)当前面校验通过,获取输入的数据转化为下标(i, j),坐标未溢出且未有棋子,则在该坐标显示棋子;

  5.函数update_board用来切换棋手,并更新棋盘信息。

python实现五子棋游戏(控制台版)

python实现五子棋游戏(控制台版)

python实现五子棋游戏(控制台版)

python实现五子棋游戏(控制台版)

python实现五子棋游戏(控制台版)

1、  主函数用来初始化程序,并同步更新程序的信息,代码如下图(分析重点代码):

  1.namedtuple创建类似于元组的数据类型,除了可以用索引访问,能够迭代,还能用属性名访问数据,后面就是利用属性进行访问;

  2.设置“while ck_settings.game_active”让程序一直运行,持续更新棋盘信息;

  3.gf.printed_board(checkerboard)用来打印棋盘信息;

  4.gf.update_board(ck_settings, checkerboard, position)用来更新棋盘信息。

python实现五子棋游戏(控制台版)

1、  如下图环境下(gobang.py文件路径下),执行语句“python gobang.py”,则打印棋盘,并可对其操作游玩。

python实现五子棋游戏(控制台版)

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢