【问题标题】:How to check multiple lists indexes (making a game)?如何检查多个列表索引(制作游戏)?
【发布时间】:2015-03-23 00:31:27
【问题描述】:

我是编程新手,我正在尝试在控制台 (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:对不起,如果我的英语不是那么好。

【问题讨论】:

    标签: python indexing console


    【解决方案1】:

    你需要想出所有可能的方式让 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=-

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      • 2021-04-09
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多