public void Run() { string line; while ((line = this.Reader.ReadLine()) != null) { var tokens = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // if empty line, skip. if (tokens.Length == 0) { continue; } line = line.Trim(); #if !DEBUG try { #endif switch (tokens[0]) { case "opponent_moves": OpponentMoves(OpponentMovesInstruction.Detokenize(tokens)); break; case "pick_starting_regions": ParsePickStartingRegions(line, tokens); break; case "settings": ParseSettings(line, tokens); break; case "update_map": UpdateMap(UpdateMapInstruction.Detokenize(tokens)); break; case "go": ParseGo(line, tokens); break; case "setup_map": ParseSetupMap(line, tokens); break; // skip these tokens. case "Round": case "null": break; default: ParseByTokenOne(line, tokens); break; } #if !DEBUG } catch (Exception x) { Console.Error.WriteLine(line); Console.Error.WriteLine(x); } #endif } }
public abstract void OpponentMoves(OpponentMovesInstruction instruction);