/*********************************************************************** * Write the entire state of the universe to 'filename' * */ int Universe_WriteAscii(UNIVERSE *u, const char *filename, char *errbuf) { FILE *fp; ASSERT( u != NULL ); ASSERT( filename != NULL ); ASSERT( errbuf != NULL ); fp = fopen(filename, "w"); if( fp == NULL ) { sprintf(errbuf, "%s: %s", filename, strerror(errno)); return 0; } write_prolog(fp); write_universe(fp, u); write_evolve_random(fp, u->er); write_kforth_mutate_options(fp, u->kfmo); write_barriers(fp, u); write_keylist(fp, u); write_organic(fp, u); write_spores(fp, u); write_organisms(fp, u); write_player(fp, u); fclose(fp); return 1; }
void write_all_ply() { HFINDFILE hff; char filename[256]; creature *ply; FILE *fp; fp = fopen( player_file, "w"); if ( fp != NULL ) { hff = find_first_file(get_player_path(), filename, 256); if ( hff ) { do { if ( filename[0] != '.') { if (load_ply_from_file(filename, &ply)) printf("Unable to read binary player %s.\n", filename); else { write_player(fp, filename, ply); free_crt(ply); } } } while( find_next_file( hff, filename, 256 )); close_find_file(hff); } fclose(fp); } return; }
static void multi_win(t_vm *vm, char **players, int w_exist) { #ifdef BONUS if (vm->flags & BONBON) aff_result(vm, players, w_exist, 1); else #endif { w_exist = 0; write(STDOUT_FILENO, "Le joueur", 9); write_player(vm, players); write(STDOUT_FILENO, " a gagne.\n", 10); } }
static void one_win(t_vm*vm, char **players, int w_exist) { int i; #ifdef BONUS if (vm->flags & BONBON) aff_result(vm, players, w_exist, 2); else #endif { write(STDOUT_FILENO, "Egalite entre les joueurs", 25); for (i = 0; i < w_exist; i++) write_player(vm, players); write(STDOUT_FILENO, "\n", 1); } }
int main(int argc, char **argv) { struct delta delta; struct player players[MAX_PLAYERS]; unsigned i; load_config(); if (argc != 1) { fprintf(stderr, "usage: %s\n", argv[0]); return EXIT_FAILURE; } while (scan_delta(&delta)) { unsigned length = 0; /* Load player (ignore fail) */ for (i = 0; i < delta.length; i++) { if (!read_player(&players[length], delta.players[i].name)) continue; merge_delta(&players[length], &delta.players[i]); length++; } /* Compute their new elos */ if (make_sens_to_rank(delta.elapsed, players, length)) update_elos(players, length); /* Write the result only if something changed */ for (i = 0; i < length; i++) { if (players[i].is_modified) { if (!write_player(&players[i])) continue; if (players[i].is_modified & IS_MODIFIED_CLAN) { printf("%s %s %s\n", players[i].name, players[i].delta->clan, players[i].clan); } } } } return EXIT_SUCCESS; }