public void run() { try { remoteProcessClient.WriteToken(token); int teamSize = remoteProcessClient.ReadTeamSize(); remoteProcessClient.WriteProtocolVersion(); Game game = remoteProcessClient.readGameContext(); IStrategy[] strategies = new IStrategy[teamSize]; for (int strategyIndex = 0; strategyIndex < teamSize; ++strategyIndex) { strategies[strategyIndex] = new MyStrategy(); } PlayerContext playerContext; while ((playerContext = remoteProcessClient.ReadPlayerContext()) != null) { Trooper playerTrooper = playerContext.Trooper; Move move = new Move(); strategies[playerTrooper.TeammateIndex].Move(playerTrooper, playerContext.World, game, move); remoteProcessClient.WriteMove(move); } } finally { remoteProcessClient.Close(); } }