如何检查多个列表索引(制作游戏)?

时间:2015-03-23 00:31:27

标签: python indexing console

我是编程新手,我试图在控制台(Python)中连续四场比赛。我想知道如何检查有四条线。

我使用列表来制作电路板。例如:

def tablero(colum,filas):
tablero=[]    

for x in range(1,filas+1):
    tablero.append([" "]*colum)

for x in tablero:
    x.insert(0,"")
    x.insert(len(x), "")

for x in tablero:    
    print ("_|_".join(x))

return tablero

tablero(7,7)

现在,让我们说玩家选择董事会第1列添加ficha。我的程序必须检查第一行中是否有东西,依此类推,找出ficha在哪一行。这是我尚未意识到该怎么做的一件事。

第二件事是,在每个玩家转动之后,程序必须检查是否有一个连续4个并且我还没有意识到这一点。例如我的董事会是:

_|_ _|_ _|_ _|_ _|_
_|_ _|_ _|_ _|_ _|_
_|_ _|_ _|_ _|_ _|_
_|_ _|_ _|_ _|_ _|_

玩家一玩后:

_|_ _|_ _|_ _|_ _|_
_|_ _|_ _|_ _|_ _|_
_|_ _|_ _|_ _|_ _|_
_|_X_|_ _|_ _|_ _|_

现在程序必须检查我的X是否是连续四个的一部分,这对我来说非常困难。

如果你能帮助我,我会非常感激。感谢。

PD:对不起,如果我的英语不太好。

1 个答案:

答案 0 :(得分:0)

您需要考虑4个插槽排队的所有可能方式;它们是:从左到右,从上到下,从左上到右下,从右上到左下。所以你要做的是遍历table中的每个槽,然后检查每个可能的方法,使四个相似的符号成为一行。它可能会像:

def checkForWin():
    for y in range(0, len(table)):
        for x in range(0, len(table[y])):
            if table[y][x] != " ":
                # left to right check
                if table[y][x] == table[y][x] and table[y][x + 1] == table[y][x] and table[y][x + 2] == table[y][x] and table[y][x + 3] == table[y][x]:
                    return table[y][x]

                # more checks

我希望这会有所帮助。 - = M0DEM = -