Advertisement
Guest User

Div. AA. simulator.

a guest
Jun 12th, 2021
1,354
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.40 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <math.h>
  3. #include <time.h>
  4. #include <stdio.h>
  5.  
  6. #define MAX_TRIALS 1024
  7.  
  8. typedef struct {
  9.   int cas;
  10.   double aa;
  11.   int cas_killed;
  12. } stats_t;
  13.  
  14. int simulate_aa(stats_t *stats);
  15.  
  16. int main(const int argc, const char **argv) {
  17.  
  18.   if (argc < 3) exit(-1);
  19.   srand(time(NULL));
  20.  
  21.   register stats_t *stats = malloc(sizeof(stats_t));
  22.   stats->aa = atof(argv[2]);
  23.   int sim_total_kc = 0;
  24.  
  25.   for (int i = 0; i < MAX_TRIALS; ++i) {
  26.     stats->cas = atoi(argv[1]);
  27.     stats->cas_killed = 0;
  28.  
  29.     int cas_attacks = 0;
  30.     int aa_attacks = 0;
  31.  
  32.     while (cas_attacks < 10) { // modifiable trial condition.
  33.       printf("Day %d, %d:00 | Total kills: %d.\n", cas_attacks / 3, 8 * (cas_attacks % 3), stats->cas_killed);
  34.       ++cas_attacks;
  35.       if (rand() % 100 <= 6) {
  36.         ++aa_attacks;
  37.         // simulate_aa(stats);
  38.         printf("Day %d, %d:00 | Shot down %d planes.\n", cas_attacks / 3, 8 * (cas_attacks % 3), simulate_aa(stats));
  39.       }
  40.     }
  41.     sim_total_kc += stats->cas_killed;
  42.   }
  43.  
  44.   printf("Finished.  avg. %d CAS shot down with %f air attack.\n\n", sim_total_kc / MAX_TRIALS, stats->aa);
  45.   free(stats);
  46.   return 0;
  47. }
  48.  
  49. int simulate_aa(stats_t *stats) {
  50.  
  51.   int aa_kills = stats->cas * (fmod(rand(), 5 * stats->aa + 1) / 1000);
  52.   int kills = aa_kills >= 1 ? aa_kills : 1;
  53.   stats->cas_killed += kills;
  54.   stats->cas -= kills;
  55.   return kills;
  56. }
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement