void run_go(int argc, char **argv) { //boards_go(); if(argc < 4){ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]); return; } char *cfg = argv[3]; char *weights = (argc > 4) ? argv[4] : 0; char *c2 = (argc > 5) ? argv[5] : 0; char *w2 = (argc > 6) ? argv[6] : 0; int multi = find_arg(argc, argv, "-multi"); if(0==strcmp(argv[2], "train")) train_go(cfg, weights); else if(0==strcmp(argv[2], "valid")) valid_go(cfg, weights, multi); else if(0==strcmp(argv[2], "self")) self_go(cfg, weights, c2, w2, multi); else if(0==strcmp(argv[2], "test")) test_go(cfg, weights, multi); else if(0==strcmp(argv[2], "engine")) engine_go(cfg, weights, multi); }
int main() { char input[16]; int done = 0, state; if (!engine_init()) return 1; init_states(); while (!done) { state = read_keyword(input, sizeof(input)); if (state == 0) break; if (state == STATE_ERROR) continue; //fprintf(stderr, "cmd %s state %d\n", input, state); switch (state) { case STATE_BLACK: engine_set_color(BLACK); break; case STATE_WHITE: engine_set_color(WHITE); break; case STATE_CGCBOARD: write_string("\n"); break; case STATE_DRAW: engine_offer_draw(); break; case STATE_FORCE: engine_set_go(0); break; case STATE_GO: engine_set_go(1); break; case STATE_NEW: engine_new(); break; case STATE_RANDOM: engine_set_random(!engine_get_random()); break; case STATE_RESULT: if (!handle_result()) done = 1; break; case STATE_REMOVE: engine_undo(); engine_undo(); break; case STATE_QUIT: write_string("bye\n"); done = 1; break; case STATE_SD: if (!handle_sd()) done = 1; break; case STATE_UNDO: engine_undo(); break; case STATE_MOVE: engine_move(str_to_move(input)); break; case STATE_PLAY: engine_go(); break; } } engine_destroy(); return 0; }