diff options
| author | la-ninpre <leobrekalini@gmail.com> | 2021-05-31 23:22:36 +0000 |
|---|---|---|
| committer | la-ninpre <leobrekalini@gmail.com> | 2021-05-31 23:22:36 +0000 |
| commit | 57f683f181495b802761d23e36b6d7ff75863613 (patch) | |
| tree | a0a8777e21cdce16a6e10d49a8e6440bd38f7518 /nimisewi.c | |
| parent | cc2975038177e2738ea9d75100d534a0296fa260 (diff) | |
| download | nimisewi_c-57f683f181495b802761d23e36b6d7ff75863613.tar.gz nimisewi_c-57f683f181495b802761d23e36b6d7ff75863613.zip | |
added initial filesv0.0.1
FossilOrigin-Name: ec9a2c52b6452b8e2ad9d1e6e692c3288c28c0dde71fb72371885b7750ce08c8
Diffstat (limited to 'nimisewi.c')
| -rw-r--r-- | nimisewi.c | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/nimisewi.c b/nimisewi.c new file mode 100644 index 0000000..34623d0 --- /dev/null +++ b/nimisewi.c @@ -0,0 +1,104 @@ +#include <err.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include <sys/types.h> +#include <sys/time.h> + +#include "nimisewi.h" +#include "nimitoki.h" /* nimi_toki, suli_pi_nimi_toki */ + +void +open_e_nanpa_sewi() { + pid_t pid; + struct timeval time; + + gettimeofday(&time, NULL); + pid = getpid(); + srand(pid * time.tv_usec * time.tv_sec); +} + +const char +*pana_e_nimi(const char *nimi_mute[], + const int suli_pi_nimi_mute, + const int nanpa_nimi) +{ + if (nanpa_nimi > suli_pi_nimi_mute) { + err(EXIT_FAILURE, "index out of bounds"); + } else if (nanpa_nimi == -1) { + return "pi"; + } else { + return nimi_mute[nanpa_nimi]; + } +} + +void +pana_e_nanpa_nimi(struct nanpa_nimi *nn) +{ + nn->pi_li_lon = 0; + nn->nanpa_pi = -1; + nn->nanpa_nimi = (rand() % 6); + + if (nn->nanpa_nimi == 2) { + nn->pi_li_lon = rand() % 2; + } else if (nn->nanpa_nimi > 2) { + nn->pi_li_lon = 1; + } + if (nn->pi_li_lon) { + nn->nanpa_nimi++; + nn->nanpa_pi = (nn->nanpa_nimi / 2); + } +} + +void +pana_e_nanpa_pi_nimi_sewi(int *nanpa_sewi_mute, + const int suli_nimi, + struct nanpa_nimi *nn) +{ + int i; + + for (i = 0; i <= nn->nanpa_nimi; i++) { + nanpa_sewi_mute[i] = rand() % suli_nimi; + } + + if (nn->pi_li_lon) { + nanpa_sewi_mute[nn->nanpa_pi] = -1; + } +} + +int +main(void) +{ + int *nanpa_sewi_nimi; + int i; + struct nanpa_nimi nn; + +#ifdef __OpenBSD__ + if (pledge("stdio", NULL) == -1) { + err(EXIT_FAILURE, "pledge"); + } +#endif + open_e_nanpa_sewi(); + + pana_e_nanpa_nimi(&nn); + + nanpa_sewi_nimi = (int *) calloc(nn.nanpa_nimi + 1, sizeof(int)); + if (nanpa_sewi_nimi == NULL) { + err(EXIT_FAILURE, "calloc"); + } + + pana_e_nanpa_pi_nimi_sewi(nanpa_sewi_nimi, suli_pi_nimi_toki, &nn); + + for (i = 0; i < nn.nanpa_nimi; i++) { + printf("%s ", + pana_e_nimi(nimi_toki, suli_pi_nimi_toki, nanpa_sewi_nimi[i])); + } + printf("%s", pana_e_nimi(nimi_toki, suli_pi_nimi_toki, nanpa_sewi_nimi[i])); + printf("\n"); + + free(nanpa_sewi_nimi); + + return 0; +} + |
