def compute_power_score(s): assert s.lower() == s, s result = 0 for p in POWER_PHRASES: reps = utils.count_substrings(s, p) power_bonus = 300 if reps > 0 else 0 result += 2 * len(p) * reps + power_bonus return result
def solve(problem_instance, tag_prefix='NOVELTY2 '): bsg = big_step_game.BigStepGame.from_json( problem_instance.json_data, problem_instance.seed) # print(bsg) end_bsg, locking_placements = bronze.phase_one(bsg) # print(locking_placements) _, commands = dummy_phase_two(bsg, locking_placements) print(end_bsg) for phrase in interfaces.POWER_PHRASES: if phrase in commands: print('{:>5} {}'.format( utils.count_substrings(commands, phrase), phrase)) return utils.gen_output_raw( id=problem_instance.json_data['id'], seed=problem_instance.seed, commands=commands, move_score=end_bsg.move_score, power_score=interfaces.compute_power_score(commands), tag_prefix=tag_prefix)