def possibleid(a): mv = [] if type(a) == str: mv = convert_class_to_letters.convert_back_letter_to_classes(a) else: mv = a for gameid in range(25): gamedata = data.datas[gameid] bm = data_structures.BoardManager(handlejson.parse_to_dictionary(gamedata)) for seedid in range(len(bm.queued_units)): score = bm.calc_board_state(bm.get_initial_board(seedid),mv).move_score if score >= 0: #print gameid,seedid return (gameid,seedid) return None
def firstpart(inputstring): inputstring_mv = convert_class_to_letters.convert_back_letter_to_classes(inputstring) a = check_word.possibleid(inputstring_mv) if a == None: return None g,s = a bm = data_structures.BoardManager(handlejson.parse_to_dictionary(data.datas[g])) score = bm.calc_board_state(bm.get_initial_board(s),inputstring_mv).move_score if score <0: return None handlejson.send_response(g,[allseeds[g][s]],inputstring,'qwe') return (g,s,inputstring,score)
def main(): print "ICFP 2015" map_number = 0 if not os.path.exists('Movements'): os.makedirs('Movements') datalist = [data0, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, data23, data24] for gid in reversed(range(3,4)): # test JSON parser problem_dict = handlejson.parse_to_dictionary(datalist[gid]) powerwords = ['ei!', 'tsathoggua', 'yuggoth', 'necronomicon', 'ia! ia!', "r'lyeh", "in his house at r'lyeh dead cthulhu waits dreaming."] mvlists = main2(problem_dict, powerwords, 0, 0, 0) print mvlists
def fake(): map_number = 2 s = map_number p = 0 if not os.path.exists('Movements'): os.makedirs('Movements') datalist = [data0, data1, data2, data3, data4, data5, data6, data7, data8, data9, data10, data11, data12, data13, data14, data15, data16, data17, data18, data19, data20, data21, data22, data23, data24] # test JSON parser problem_dict = handlejson.parse_to_dictionary(datalist[map_number]) # create a boardmanager boardmanager = BoardManager(problem_dict) # boardmanager.path_generation(p) r = boardmanager.calc_board_state(boardmanager.get_initial_board(s), sys.argv[1])
parser.add_argument('-f', type=list, nargs='+', action='append') parser.add_argument('-t', type=int) parser.add_argument('-m', type=int) parser.add_argument('-c', type=int) parser.add_argument('-p', type=list, nargs='+', action='append') args = parser.parse_args() f = [ "".join(i[0]) for i in args.f ] t = args.t m = args.m c = args.c p = [ "".join(i[0]) for i in args.p ] j = [ handlejson.parse_to_dictionary(open(i).read()) for i in f ] for singlejson in j: # do something l_mv=main.main2(singlejson, p, t, m, c) for i,seed in enumerate(singlejson['sourceSeeds']): current_mv = l_mv[i] conv = convert_class_to_letters.convert_greedy(current_mv,p) # handlejson.send_response(singlejson['id'],[seed],conv,'test') arr_tuple_pid_seednr_tag_sol = [] for singlejson in j: for i,seed in enumerate(singlejson['sourceSeeds']): current_mv = l_mv[i]
#print pop, pop_mov for nr in range(1,6): print nr #allmoves = list(itertools.product(pop,repeat=2)) #nr=6 allmoves = list(itertools.permutations(range(len(pop)),nr)) #print allmoves bestmoves=[] for gameid in range(25): gamedata = data.datas[gameid] bm = data_structures.BoardManager(handlejson.parse_to_dictionary(gamedata)) for seedid in range(len(bm.queued_units)): for currentmove in allmoves: testmove = [ b for a in currentmove for b in pop_mov[a] ] score = bm.calc_board_state(bm.get_initial_board(seedid),testmove).move_score if score >= 0: print ".", #print gameid, seedid,'the move',currentmove,'=',testmove,'yields',score,'points' bestmoves.append((gameid,seedid,currentmove,testmove,score)) break #print bestmoves f = open('bestmoves_'+str(nr)+'.txt','w') f.write(str(bestmoves))