示例#1
0
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);
}
示例#2
0
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;
}