需要帮助来自2013年的过去的acsl计划

时间:2016-02-06 23:42:05

标签: python acsl

我的老师正在让我们做一个旧的ACSL计划进行练习,他说我们可以使用我们想要的任何资源。该计划从2013年开始。链接到这里:https://s3.amazonaws.com/iedu-attachments-question/5a989d787772b7fd88c063aff8393d34_1bee2d300c35eec13edf0a3af515a5a5.pdf

我们启动了这个程序,但是我们碰到了一堵墙,我们不知道该怎么办:

board = [
    [ 1,  2,  3,  4,  5],
    [ 6,  7,  8,  9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
    [21, 22, 23, 24, 25]
]

for i in range(1, 6):
    pieces = input("%d. "%(i)).split(",")
    white = []
    black = []

    black_start = int(pieces[0])+1

    for j in range(1, black_start):
        white.append(int(pieces[j]))

    for k in range(black_start+1, len(pieces)):
        black.append(int(pieces[k]))

    print(white)
    print(black)

    for pair in board:

任何人都可以给我们一些提示吗?我们用Python编写。

1 个答案:

答案 0 :(得分:0)

我认为board实际上没有任何目的。

用于解析输入到黑白片段位置的代码看起来不错,应该可以制作成函数。

对于调试,有一个功能可以获取黑白片段位置并打印电路板 - 例如使用字符#表示黑色,O表示白色,以及{ {1}}为空。这将帮助您了解您的计划正在做什么。

对于每个方向,你应该有一个函数(即.)返回下一个位置(如果它在板的边缘,则为left)和另一个(None })返回该方向上的连续位置列表。因此left_lst返回left(17)16返回left(16)None返回left_lst(19)。提示:如何根据[18, 17, 16]

实施left_lst

然后:对于每个白色部分,通过将移向每个方向或远离每个方向来检查可捕获的内容。你知道应该只有一个解决方案,所以只要你找到它就可以退货;如果您没有找到,请返回left

希望有所帮助!

为了娱乐和兴趣,我提出了解决方案。希望你学到很多东西!

None