Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <math.h>
- #include <time.h>
- #include <stdio.h>
- #define MAX_TRIALS 1024
- typedef struct {
- int cas;
- double aa;
- int cas_killed;
- } stats_t;
- int simulate_aa(stats_t *stats);
- int main(const int argc, const char **argv) {
- if (argc < 3) exit(-1);
- srand(time(NULL));
- register stats_t *stats = malloc(sizeof(stats_t));
- stats->aa = atof(argv[2]);
- int sim_total_kc = 0;
- for (int i = 0; i < MAX_TRIALS; ++i) {
- stats->cas = atoi(argv[1]);
- stats->cas_killed = 0;
- int cas_attacks = 0;
- int aa_attacks = 0;
- while (cas_attacks < 10) { // modifiable trial condition.
- printf("Day %d, %d:00 | Total kills: %d.\n", cas_attacks / 3, 8 * (cas_attacks % 3), stats->cas_killed);
- ++cas_attacks;
- if (rand() % 100 <= 6) {
- ++aa_attacks;
- // simulate_aa(stats);
- printf("Day %d, %d:00 | Shot down %d planes.\n", cas_attacks / 3, 8 * (cas_attacks % 3), simulate_aa(stats));
- }
- }
- sim_total_kc += stats->cas_killed;
- }
- printf("Finished. avg. %d CAS shot down with %f air attack.\n\n", sim_total_kc / MAX_TRIALS, stats->aa);
- free(stats);
- return 0;
- }
- int simulate_aa(stats_t *stats) {
- int aa_kills = stats->cas * (fmod(rand(), 5 * stats->aa + 1) / 1000);
- int kills = aa_kills >= 1 ? aa_kills : 1;
- stats->cas_killed += kills;
- stats->cas -= kills;
- return kills;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement