文件“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用来切换棋手,并更新棋盘信息。