作为一个初学者,我不知道如何从概念上思考暴力强迫。我的头脑真的不知道如何写代码,将尽一切可能。我的答案是递归,但正如你在下面看到的,我失败了。你知道吗
如果你需要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)
目标:我想通过一个细分市场,列出每一个可能的决定,以及需要多长时间。你知道吗
描述:
我将迈出一步(只有一个方向:前进)。每次我迈出一步,我的数据都会更新。这需要一个步骤并更新stats:step_segment, STATS = take_step(step_segment, STATS)
所采取步骤的列表以及统计信息都保存在
step_segment
。这样我就可以“撤消”任意数量的
台阶,如果我想的话。要撤消步骤,请调用函数:
step_segment, STATS = undo_step(step_segment, STATS)
我可以通过执行:time = frames(step_segment)
来查看我当前的路线已经走了多长时间。
总有一天,我会卷入一场战斗。当我开始战斗的时候
STATS[5] == "B"
当有一场战斗我必须做出决定时,我只有两个选择:我。与敌人战斗 战斗(B),或,ii.逃跑故障(G)。
如果我想战斗,我会:step_segment = do_fight(step_segment, STATS)
。这也记录了我在step_segment
中选择的战斗以及统计数据。(如果我想的话,我可以撤销它)。
如果我想摆脱故障,我会:step_segment = do_glitch(step_segment,STATS)
。
我想看到每一个可能的故障和战斗的组合(只有两个选择,当我到达战斗)。你知道吗
目前,我的代码非常糟糕,没有尝试所有的可能性。我真的不知道如何编码所有的可能性。你知道吗
所以,这就是我来这里的原因。当我面对一个决定时,我如何实现一种尝试所有可能性的方法?你知道吗
我知道这个问题的可能性是指数级的,但谢天谢地,最大值非常小(<;1024)。你知道吗
我读过关于树遍历的文章,但我不知道如何将我的问题转化为这种格式。例如,我不知道在我的问题中“节点”是什么。我真的不知道会发生什么。。。所以我才这么问。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐