예제 #1
0
void update_all(int * trace, Graph * graph, 
                tuple * base, int * popularity, 
                int depth, int start_point, 
                int * satur_degree) {

  // Actualizamos todos los vértices desde el nivel 
  // de más profundo del árbol (depth) donde se detuvo 
  // el procedimiento forwards.
  int i = depth;
  while(i >= start_point) {
    // Actualizamos color_around de vértices adyacentes
    // al decolorear vértice que está en trace[i]
    uncolor(graph, trace[i], graph[trace[i]].color);

    //Actualización de tabla de popularidad
    popularity[graph[trace[i]].color]--;

    // Decoloreamos el vértice
    graph[trace[i]].color = -1;    
    
    // Bajamos grado de saturación a los vecinos
    // y restablecemos el grado de saturación a 0 
    // para el vértice decoloreado.
    uncolor_satur(satur_degree, graph, trace[i]);
    
    // Se actualiza la base que apunta al arreglo de 
    // vértice-grado (deg_vert)
    //    update_base(trace, trace[i], base);
    i--;
  }
}
예제 #2
0
파일: ircmgx.c 프로젝트: hettoo/chatsow
static void cmd_mirror() {
    char *text = trap->cmd_argv(1);
    if (partial_match("made a new MGX record", text)) {
        int c = trap->cmd_client();
        cs_t *cs = trap->client_cs(c);
        sprintf(message, "[%s @ %s] %s", trap->get_level(c), cs_get(cs, CS_HOSTNAME), text);
        trap->irc_say(NULL, "%s\n", uncolor(message));
    }
    if (query) {
        if (partial_match("No highscores found yet!", text)) {
            trap->irc_say(target, "%s\n", uncolor(text));
            query = 0;
        }
        if (partial_match("Top 3 players on", text)) {
            char *result = uncolor(text);
            result = strchr(result, '\n') + 1;
            char *end = strchr(result, '\n');
            if (end)
                *end = '\0';
            trap->irc_say(target, "%s\n", result);
            query = 0;
        }
    }
}