aboutsummaryrefslogtreecommitdiff
path: root/src/modes.c
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-06-15 11:35:44 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-06-15 11:35:44 +0530
commit42567a5ac86b20f2a591195e6ec389d5d2cc7ce7 (patch)
treef5c234be59b93b8a0554a19b187d1ca340a28c01 /src/modes.c
parent799fbacdf0fb018f279de5f4f55a22c601bffc46 (diff)
seperated in different files
Diffstat (limited to 'src/modes.c')
-rw-r--r--src/modes.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/modes.c b/src/modes.c
new file mode 100644
index 0000000..9b63431
--- /dev/null
+++ b/src/modes.c
@@ -0,0 +1,38 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "modes.h"
+#include "words.c"
+
+int word_mode(int length, bool newline, bool capitalize) {
+ for (int i = 0; i < length; i++) {
+ int index = rand() % WORDS_COUNT;
+ char word[1024];
+ strncpy(word, words[index], 1024);
+ if (i == 0 && capitalize) word[0] += 'A' - 'a';
+ if (i == length - 1) printf("%s", word);
+ else printf("%s ", word);
+ }
+ if (newline) printf("\n");
+ return 0;
+}
+
+int sentence_mode(int length, bool newline) {
+ for (int i = 0; i < length; i++) {
+ int size = 10 + rand() % 20;
+ word_mode(size, false, true);
+ printf(". ");
+ if (newline) printf("\n");
+ }
+ return 0;
+}
+
+int paragraph_mode(int length, bool newline) {
+ for (int i = 0; i < length; i++) {
+ int size = 6 + rand() % 10;
+ sentence_mode(size, false);
+ if (newline) printf("\n\n");
+ }
+ return 0;
+}