Пример #1
0
int main(int argc, char *argv[]) {
	int action = -1;

	struct game_info Info;
	struct game_state Game;
	Info.map = 0;

	Game.my_ants = 0;
	Game.enemy_ants = 0;
	Game.food = 0;
	Game.dead_ants = 0;
	Game.hill = 0;

	while (42) {
		int initial_buffer = 100000;

		char *data = malloc(initial_buffer);
		memset(data, 0, initial_buffer);

		*data = '\n';

		char *ins_data = data + 1;

		int i = 0;

		while (1 > 0) {
			++i;

			if (i >= initial_buffer) {
				initial_buffer *= 2;
				data = realloc(data, initial_buffer);
				ins_data = data + i;
				memset(ins_data, 0, initial_buffer - i);
			}

			*ins_data = getchar();

			if (*ins_data == '\n') {
				char *backup = ins_data;

				while (*(backup - 1) != '\n') {
					--backup;
				}

				char *test_cmd = get_line(backup);

				if (strcmp(test_cmd, "go") == 0) {
					action = 0; 
					free(test_cmd);
					break;
				}
				else if (strcmp(test_cmd, "ready") == 0) {
					action = 1;
					free(test_cmd);
					break;
				}
				free(test_cmd);
			}

			++ins_data;
		}

		if (action == 0) {
			char *skip_line = data + 1;
			while (*++skip_line != '\n');
			++skip_line;

			_init_map(skip_line, &Info);
			_init_game(&Info, &Game);
			do_turn(&Game, &Info);
			fprintf(stdout, "go\n");
			fflush(stdout);
		}
		else if (action == 1) {
			_init_ants(data + 1, &Info);

			Game.my_ant_index = -1;

			do_init(&Game, &Info);
			fprintf(stdout, "go\n");
			fflush(stdout);
		}

		free(data);
	}
}
Пример #2
0
//int main(int argc, char *argv[]) {
int main()
{
    int action = -1;
    struct game_info Info;
    struct game_state Game;
    struct odor_map odor_map;

    Info.map = 0;
    Game.my_ants = 0;
    Game.enemy_ants = 0;
    Game.my_hives = 0;
    Game.enemy_hives = 0;
    Game.food = 0;
//    Game.dead_ants = 0;

    odor_map.ant_freq = 0;
    odor_map.perma = 0;
//    srand ( time(NULL) );

    while (1) {
        int initial_buffer = 100000;
        char *data = calloc(1, initial_buffer);

        *data = '\n';

        char *ins_data = data + 1;
        int i = 0;

        while (++i) {

            if (i > initial_buffer) {
                initial_buffer *= 2;
                data = realloc(data, initial_buffer);
                memset(ins_data, 0, initial_buffer/2);
            }

            *ins_data = getchar();

            if (*ins_data == '\n') {
                char *backup = ins_data;

                while (*(backup - 1) != '\n') {
                    --backup;
                }

                char *test_cmd = get_line(backup);

                if (strcmp(test_cmd, "go") == 0) {
                    action = 0;
                    free(test_cmd);
                    break;
                }
                else if (strcmp(test_cmd, "ready") == 0) {
                    action = 1;
                    free(test_cmd);
                    break;
                }
                free(test_cmd);
            }

            ++ins_data;
        }

        if (action == 0) {
            char *skip_line = data + 1;
            while (*++skip_line != '\n');
            ++skip_line;

            _init_map(skip_line, &Info, &odor_map);
            _init_game(&Info, &Game);
            do_turn(&Game, &Info, &odor_map);
            fprintf(stdout, "go\n");
            fflush(stdout);
        }
        else if (action == 1) {
            _init_ants(data + 1, &Info);

            Game.my_ant_index = -1;

            fprintf(stdout, "go\n");
            fflush(stdout);
        }

        free(data);
    }
}
Пример #3
0
Файл: MyBot.c Проект: bol/Ants
int main() {
    int action = -1;

    Info = calloc(1, sizeof(struct game_info));
    Game = calloc(1, sizeof(struct game_state));
    Game->map = 0;

    Game->my_ants = 0;
    Game->enemy_ants = 0;
    Game->food = 0;
    Game->dead_ants = 0;

#ifdef DEBUG
	init_log();
#endif

    while (42) {
        int initial_buffer = 100000;

        char *data = malloc(initial_buffer);
        memset(data, 0, initial_buffer);

        *data = '\n';

        char *ins_data = data + 1;

        int i = 0;

        while (1 > 0) {
            ++i;

            if (i > initial_buffer) {
                initial_buffer *= 2;
                data = realloc(data, initial_buffer);
                memset(ins_data, 0, initial_buffer/2);
            }

            *ins_data = getchar();

            if (*ins_data == '\n') {
                char *backup = ins_data;

                while (*(backup - 1) != '\n') {
                    --backup;
                }

                char *test_cmd = get_line(backup);

                if (strcmp(test_cmd, "go") == 0) {
                    action = 0; 
                    free(test_cmd);
                    break;
                }
                else if (strcmp(test_cmd, "ready") == 0) {
                    action = 1;
                    free(test_cmd);
                    break;
                }
                free(test_cmd);
            }
            
            ++ins_data;
        }

        if (action == 0) {
			Log("Playing turn %d\n", Game->turn);
            char *skip_line = data + 1;
            while (*++skip_line != '\n');
            ++skip_line;

			init_lists();
            _init_map(skip_line);
            do_turn();
            fprintf(stdout, "go\n");
            fflush(stdout);
        }
        else if (action == 1) {
			Log("Read game start data\n");
            _init_ants(data + 1);
            Game->my_ant_index = -1;
			Log("Initializing memory\n");
			allocate_map();
			allocate_lists();
			Game->turn = 1;
			Log("Ready to play, signaling engine\n");
            fprintf(stdout, "go\n");
            fflush(stdout);
        }

        free(data);
    }
}