3. 胜负的决定时刻【使用Python语言和Pygame库,一步步打造自己的五子棋游戏!】在五子棋中,任意五个连续的同色棋子意味着一方的胜利 。因此,is_win方法是至关重要的 。它通过扫描每一行、每一列和两个斜线方向,检查是否存在五个连续的同色棋子 。
# 定义函数,传入当前棋盘上的棋子列表,输出结果,不管黑棋白棋胜 , 都是传回False,未出结果则为Truedef is_win(board): for n in range(15): # 判断垂直方向胜利 flag = 0 # flag是一个标签 , 表示是否有连续以上五个相同颜色的棋子 for b in board._board: if b[n] == 1: flag += 1 if flag == 5: print('黑棋胜') return False else: # else表示此时没有连续相同的棋子,标签flag重置为0 flag = 0 flag = 0 for b in board._board: if b[n] == 2: flag += 1 if flag == 5: print('白棋胜') return False else: flag = 0 # 判断水平方向胜利 flag = 0 for b in board._board[n]: if b == 1: flag += 1 if flag == 5: print('黑棋胜') return False else: flag = 0 flag = 0 for b in board._board[n]: if b == 2: flag += 1 if flag == 5: print('白棋胜') return False else: flag = 0 # 判断正斜方向胜利 for x in range(4, 25): flag = 0 for i,b in enumerate(board._board): if 14 >= x - i >= 0 and b[x - i] == 1: flag += 1 if flag == 5: print('黑棋胜') return False else: flag = 0 for x in range(4, 25): flag = 0 for i,b in enumerate(board._board): if 14 >= x - i >= 0 and b[x - i] == 2: flag += 1 if flag == 5: print('白棋胜') return False else: flag = 0 #判断反斜方向胜利 for x in range(11, -11, -1): flag = 0 for i,b in enumerate(board._board): if 0 <= x + i <= 14 and b[x + i] == 1: flag += 1 if flag == 5: print('黑棋胜') return False else: flag = 0 for x in range(11, -11, -1): flag = 0 for i,b in enumerate(board._board): if 0 <= x + i <= 14 and b[x + i] == 2: flag += 1 if flag == 5: print('白棋胜') return False else: flag = 0 return True
推荐阅读
- 用Python画出小猪佩奇
- 何猷君录制综艺全程带笑,和奚梦瑶并排走,吴千语施伯雄像闹矛盾
- 初三拜年祝福语 初三拜年祝福语兔年
- 2022新年祝福语朋友圈 2022的新年祝福语
- 新年祝福语有什么词语 新年祝福语有什么
- 葡萄保鲜乳怎么用 葡萄保鲜剂的使用方法
- 虎年公司贺词 虎年的公司祝福语
- 新年祝福语朋友圈简单 平安喜乐 新年祝福语朋友圈简单
- 虎年的祝福语句 虎年的祝福语句成语
- 含虎年特征的吉祥语