如何在概念上实现暴力/树遍历?

2024-04-23 18:46:23 发布

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

作为一个初学者,我不知道如何从概念上思考暴力强迫。我的头脑真的不知道如何写代码,将尽一切可能。我的答案是递归,但正如你在下面看到的,我失败了。你知道吗

如果你需要full source

我有个问题要解决。下面是一个代码片段(还有其他函数,但没有理由在这里包含它们,它们只是做后台工作):

def initiate(seen):
        step_segment = []
        STATS = [250,0,0,0,13,0]

        if len(seen) >= 256:                    # when to escape the recursion
            return seen
        while (len(step_segment)) < 128:
            step_segment, STATS = take_step(step_segment, STATS)
            if STATS[5] == "B":                         # if there is a battle
                if STATS[0] in seen:             # if battle has been done before
                    status = seen.index(STATS[0])       # get battle status:
                    status += 1             # which is next to step_id (= G or B)
                    if seen[status] == "B":  # for seen battles, try Glitch ("G")
                        step_segment = do_glitch(step_segment, STATS)
                else:
                    step_segment, STATS = do_fight(step_segment, STATS) # fight
                seen = seen + [STATS[0],STATS[5]]

        time = get_frames(step_segment)
        print "\nTime:", time
        print seen
        return initiate(seen)

目标:我想通过一个细分市场,列出每一个可能的决定,以及需要多长时间。你知道吗

描述:

  1. 我将迈出一步(只有一个方向:前进)。每次我迈出一步,我的数据都会更新。这需要一个步骤并更新stats:step_segment, STATS = take_step(step_segment, STATS)

  2. 所采取步骤的列表以及统计信息都保存在 step_segment。这样我就可以“撤消”任意数量的 台阶,如果我想的话。要撤消步骤,请调用函数: step_segment, STATS = undo_step(step_segment, STATS)

  3. 我可以通过执行:time = frames(step_segment)来查看我当前的路线已经走了多长时间。

  4. 总有一天,我会卷入一场战斗。当我开始战斗的时候 STATS[5] == "B"

  5. 当有一场战斗我必须做出决定时,我只有两个选择:我。与敌人战斗 战斗(B),或,ii.逃跑故障(G)。

  6. 如果我想战斗,我会:step_segment = do_fight(step_segment, STATS)。这也记录了我在step_segment中选择的战斗以及统计数据。(如果我想的话,我可以撤销它)。

  7. 如果我想摆脱故障,我会:step_segment = do_glitch(step_segment,STATS)

我想看到每一个可能的故障和战斗的组合(只有两个选择,当我到达战斗)。你知道吗

目前,我的代码非常糟糕,没有尝试所有的可能性。我真的不知道如何编码所有的可能性。你知道吗

所以,这就是我来这里的原因。当我面对一个决定时,我如何实现一种尝试所有可能性的方法?你知道吗

我知道这个问题的可能性是指数级的,但谢天谢地,最大值非常小(<;1024)。你知道吗

我读过关于树遍历的文章,但我不知道如何将我的问题转化为这种格式。例如,我不知道在我的问题中“节点”是什么。我真的不知道会发生什么。。。所以我才这么问。你知道吗


Tags: 代码iftimestatsstepstatussegment步骤