字母汤他们给我一个网格的方向,我必须返回这个方向的整个字母(Python)

2024-09-27 22:33:39 发布

您现在位置:Python中文网/ 问答频道 /正文

字母表中的单词可以是水平的、垂直的或对角线的image that explains

我必须创建一个名为gera\u cadeia\u fila的函数,其中有3个参数:网格、初始位置和方向。 我必须按照给定的方向,从起始位置到结束位置给出字母。 我是个乞丐,我很困惑。我甚至不知道如何归还它,在while循环中中断就不起作用了。 这就是我目前所拥有的。我知道也许离我该做的还不远。 其他功能我必须保持这样,这是家庭作业的一部分。只有杰拉·卡迪亚·菲拉的功能不起作用。这就是我需要帮助的地方。 有人能帮我或建议最好的方法做这件事吗?谢谢

grelha1= ["PIGATOS", 
          "ANRBKFD", 
          "TMCAOXA", 
          "OOBBYQU", 
          "MACOUIV", 
          "EEJMIWL"]


def proxima_pos(pos, dire):
    return (pos[0] + dire[0], pos[1] + dire[1]) #sums position and direction, eg. >>> proxima_pos((1, 2), (1, 0)) >>> (2,2)

def dimensions_grelha(grelha):
    return (len(grelha), len(grelha[0])) #gives me the dimension of line and column of grelha1

def gera_cadeia_fila(grelha, pos_start, dire): #grelha1, position where the word strats, directions it must follow

    new= ()

    dimensions = dimensions_grelha(grelha) 

    dimension_max_line= dimensions[0]
    dimension_max_column= dimensions[1]

    position_inicial_line= pos_start[0]
    position_inicial_column= pos_strat[1] 

    while position_inicial_line <= dimension_max_line and position_inicial_column <= dimension_max_column:

        new= (proxima_pos(pos_start, dire))

        if (new[0] > dimension_max_line or new[1] > dimension_max_colum):
        break

    return ???

#example of what the function must do:
>>> gera_cadeia_fila(grelha1, (1, 0), (0, 1))
’ANRBKFD’
>>> gera_cadeia_fila(grelha1, (0, 5), (1, 0))
’OFXQIW’
>>> gera_cadeia_fila(grelha1, (2, 0), (1, 1))
’TOCM’

Tags: posnewlinepositioncolumnmaxdimensionsdimension
1条回答
网友
1楼 · 发布于 2024-09-27 22:33:39

你基本上拥有了所有你需要的机制,你只需要部署它。您缺少的两个部分是在矩阵中移动时收集信件,以及通过更新功能更新当前位置:

grelha1 = [
    "PIGATOS",
    "ANRBKFD",
    "TMCAOXA",
    "OOBBYQU",
    "MACOUIV",
    "EEJMIWL"
]

def proxima_pos(pos, dire):
    """ sums position and direction, eg. >>> proxima_pos((1, 2), (1, 0)) >>> (2, 2) """

    return pos[0] + dire[0], pos[1] + dire[1]

def dimensions_grelha(grelha):
    """ gives the dimension of line and column of grelha """

    return len(grelha), len(grelha[0])

def gera_cadeia_fila(grelha, pos_start, dire):

    letters = ""

    dimension_max_line, dimension_max_column = dimensions_grelha(grelha)

    position_line, position_column = pos_start

    while position_line < dimension_max_line and position_column < dimension_max_column:

        letters += grelha1[position_line][position_column]

        position_line, position_column = proxima_pos((position_line, position_column), dire)

    return letters

print(gera_cadeia_fila(grelha1, (1, 0), (0, 1)))  # ’ANRBKFD’
print(gera_cadeia_fila(grelha1, (0, 5), (1, 0)))  # ’OFXQIW’
print(gera_cadeia_fila(grelha1, (2, 0), (1, 1)))  # ’TOCM’

相关问题 更多 >

    热门问题