export.h (1167B)
1 /* export.h - la partida como texto legible (tipo PGN del ajedrez): cabecera con 2 * jugadores y opciones, el tablero, la partida turno por turno y, al final, las 3 * movidas en el formato del juego para poder reproducirla. Lo usan el servidor (que 4 * siempre guarda <partida>/partida.txt, con todo) y el cliente (F5: lo que viste vos). */ 5 #ifndef CATAN_EXPORT_H 6 #define CATAN_EXPORT_H 7 8 #include "../core/catan.h" 9 10 typedef void (*ExportPut)(void *ctx, const char *line); 11 12 /* Cabecera y tablero de la partida g (sin movidas). code puede ser NULL. */ 13 void export_header(const Game *g, const char *code, const char *const names[MAXP], const char *kinds, 14 ExportPut put, void *ctx); 15 16 /* Partida completa: cabecera, tablero, turno por turno y movidas de maquina. hdr es la 17 * cabecera inicial (hdr_fmt) y moves las movidas resueltas en orden (con las automaticas). 18 * viewers: asientos para los que se cuenta (que carta se robo): todos = ~0u. */ 19 void export_game(const char *hdr, const char *const *moves, int nmoves, const char *code, 20 const char *const names[MAXP], const char *kinds, unsigned viewers, ExportPut put, void *ctx); 21 22 #endif