int main(int argc, char* argv[]) { if (argc != 3) { printf("%s config-file node_id\n", argv[0]); exit(EXIT_FAILURE); } Config *conf = parse_conf(argv[1]); struct application *app = malloc(sizeof(struct application)); app->server_id = atoi(argv[2]); app->sock = create_socket(); app->conf = conf; LearnerCtx *learner_ctx = make_learner(conf); set_app_ctx(learner_ctx, app); register_deliver_cb(learner_ctx, deliver); event_base_dispatch(learner_ctx->base); free_learner(learner_ctx); free(conf); free(app); return (EXIT_SUCCESS); }
/* * Initialize AI. */ static void ai_initialize(game *g, int who) { char fname[1024], buf[1024]; /* Create neural net */ make_learner(&learner[who], NET_INPUT, HIDDEN_NODES, 2); /* Set learning rate */ learner[who].alpha = 0.0001; /* learner[who].alpha = 0.0; printf("WARNING: alpha is 0\n"); */ /* Create network filename */ sprintf(fname, DATADIR "/networks/bluemoon.net.%s.%s", g->p[who].p_ptr->name, g->p[!who].p_ptr->name); /* Attempt to load net weights from disk */ if (load_net(&learner[who], fname)) { /* Create warning message */ sprintf(buf, _("WARNING: Couldn't open %s, expect random play!\n"), fname); /* Send message */ message_add(buf); } /* Evaluate starting position */ eval_game(g, who); /* Message */ if (verbose >= 1) { /* Print win probabilities of starting state */ printf("%s Start prob: %f %f\n", g->p[who].p_ptr->name, learner[who].win_prob[0], learner[who].win_prob[1]); } }