def test_code(data): test_data = data test_dir = os.getcwd() # os.path.join(os.getcwd(), 'match') extension = { '': '', 'C': '.c', 'C++': '.cpp', 'PYTHON': '.py', 'JAVA': '.java' } update_url = 'http://203.246.112.32:8000/api/v1/code/' + str( test_data['challenger_code_id']) + '/' # code_filename = 'challenger{0}'.format(extension[test_data['challenger_language']]) code_filename = 'challenger.py' # code_path = os.path.join(test_dir, code_filename) # code = test_data['challenger_code'] # with open(code_path, 'w') as f: # f.write(code) challenger = UserProgram('challenger', test_data['challenger'], test_data['challenger_language'], test_dir, code_filename) game_manager = GameManager(challenger=challenger, oppositer=challenger, placement_rule=test_data['placement'], action_rule=test_data['action'], ending_rule=test_data['ending'], board_size=test_data['board_size'], board_info=test_data['board_info'], obj_num=test_data['obj_num'], problem=test_data['problem']) _, _, _, result, _ = game_manager.play_game() print('result :', result) available = False if result == 'finish': available = True
def match(match_data): match_dir = os.getcwd() # os.path.join(os.getcwd(), 'match') extension = { '': '', 'C': '.c', 'C++': '.cpp', 'PYTHON': '.py', 'JAVA': '.java' } # update_url = 'http://127.0.0.1:8000/api/v1/game/' + match_data['match_id'] challenger_code_filename = 'challenger{0}'.format( extension[match_data['challenger_language']]) oppositer_code_filename = 'oppositer{0}'.format( extension[match_data['oppositer_language']]) challenger_code_path = os.path.join(match_dir, challenger_code_filename) oppositer_code_path = os.path.join(match_dir, oppositer_code_filename) # challenger_code = select_code(match_data['challenger'], match_data['problem']) # oppositer_code = select_code(match_data['oppositer'], match_data['problem']) challenger_code = match_data['challenger_code'] oppositer_code = match_data['oppositer_code'] with open(challenger_code_path, 'w') as f: f.write(challenger_code) with open(oppositer_code_path, 'w') as f: f.write(oppositer_code) challenger = UserProgram(match_data['challenger'], match_data['challenger_language'], match_dir, challenger_code_filename) oppositer = UserProgram(match_data['oppositer'], match_data['oppositer_language'], match_dir, oppositer_code_filename) game_manager = GameManager(challenger=challenger, oppositer=oppositer, placement_rule=match_data['placement'], action_rule=match_data['action'], ending_rule=match_data['ending'], turn=match_data['turn'], board_size=match_data['board_size'], board_info=match_data['board_info'], obj_num=match_data['obj_num']) match_result, board_record, placement_record = game_manager.play_game() req = requests.put(update_url, data={ 'match_result': match_result, 'board_record': board_record, 'placement_record': placement_record }) # with open('result.txt', 'w') as f: # f.write(match_result) # with open('result.txt', 'a') as f: # f.write(board_record) # with open('result.txt', 'a') as f: # f.write(placement_record) # update match data update_match_data(match_result, board_record, placement_record)
def match(data): match_data = data match_dir = os.getcwd() # os.path.join(os.getcwd(), 'match') extension = { '': '', 'C': '.c', 'C++': '.cpp', 'PYTHON': '.py', 'JAVA': '.java' } update_url = 'http://203.246.112.32:8000/api/v1/game/' + str( match_data['match_id']) + '/' challenger_code_filename = 'challenger{0}'.format( extension[match_data['challenger_language']]) oppositer_code_filename = 'oppositer{0}'.format( extension[match_data['opposite_language']]) challenger_code_path = os.path.join(match_dir, challenger_code_filename) oppositer_code_path = os.path.join(match_dir, oppositer_code_filename) challenger_code = match_data['challenger_code'] oppositer_code = match_data['opposite_code'] with open(challenger_code_path, 'w') as f: f.write(challenger_code) with open(oppositer_code_path, 'w') as f: f.write(oppositer_code) challenger = UserProgram('challenger', match_data['challenger'], match_data['challenger_language'], match_dir, challenger_code_filename) oppositer = UserProgram('opposite', match_data['opposite'], match_data['opposite_language'], match_dir, oppositer_code_filename) game_manager = GameManager(challenger=challenger, oppositer=oppositer, placement_rule=match_data['placement'], action_rule=match_data['action'], ending_rule=match_data['ending'], board_size=match_data['board_size'], board_info=match_data['board_info'], obj_num=match_data['obj_num'], problem=match_data['problem']) winner, board_record, placement_record, result, error_msg = game_manager.play_game( ) # with open('result.txt', 'w') as f: # f.write(match_result) # with open('result.txt', 'a') as f: # f.write(board_record) # with open('result.txt', 'a') as f: # f.write(placement_record) data = { "winner": winner, "record": board_record, "placement_record": placement_record, "result": result, "error_msg": error_msg } data2 = { "winner": winner, "placement_record": placement_record, "result": result, "error_msg": error_msg } print(data2) r = requests.patch(update_url, data=data) print('request ok')