繁体   English   中英

Python Connect 4横向获胜

[英]Python Connect 4 Horizontal win

所以基本上我是在尝试为在python中连接4个游戏的水平获胜条件编写代码,我想出了在python中连接4个筹码的方法是

for x in range(cols - 3):
    for y in range(rows):
if board[x][y] == color and board[x+1][y] == color and board[x+2][y] ==color and   board[x+3]==color:    
            return True

但是问题是我需要与此类似的东西来操作由用户确定的获奖连接筹码,可能是四个或用户想要的数量。

for x in range(col - 3):
  for y in range(row):
        for z in range (0, required_connected_chips):
                 if board_values[x + z][y] == color:

必需的_Connecting_chips是用户在编写此文件后确定的获奖连接芯片,我基本上会坚持下一步该做什么,并且会就如何解决我的问题提出任何建议或反馈,对于某些方面的缩进错误,我感到抱歉编码。

您可以添加一个布尔值来保存board_values[x + z][y] == color: 如果在循环结束之前一直保持True,则返回True。 喜欢:

b = True
for z in range (0, required_connected_chips):
    b &= board_values[x + z][y] == color
if b:
    return True

编辑:对于不检查每个字段,在设置它后您可能会在循环中检查b,因此它看起来像:

b = True
for z in range (0, required_connected_chips):
    if not board_values[x + z][y] == color:
        b = False
        break
if b:
    return True

Edit2:在第二个代码示例中删除了多余的“&”

Edit3:将第二个代码示例更进一步地改变了对我的感觉

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM