]> gitweb.ps.run Git - iftint/commitdiff
list of words type beat
authorPatrick <patrick.schoenberger@posteo.de>
Fri, 21 Jul 2023 22:44:40 +0000 (00:44 +0200)
committerPatrick <patrick.schoenberger@posteo.de>
Fri, 21 Jul 2023 22:44:40 +0000 (00:44 +0200)
main.c

diff --git a/main.c b/main.c
index ae6c646f3c8c67e9a73f6deeeefa15c6ccfb51fe..aa65fe518e083fc330252b62d04bced72c459098 100644 (file)
--- a/main.c
+++ b/main.c
@@ -12,43 +12,79 @@ int main() {
 \r
     int level = 1;\r
 \r
-    char words[10][128];\r
+    struct Word {\r
+        char str[128];\r
+        int len;\r
+    };\r
+    struct Word words[128];\r
     int numWords = 1;\r
-    words[0][0] = '(';\r
+    words[0].str[0] = '(';\r
+    words[0].len = 1;\r
 \r
     while (true) {\r
+        move(0, 0);\r
+        clear();\r
+        refresh();\r
+\r
+        for (int i = 0; i < numWords; i++) {\r
+            printw("%.*s\n", words[i].len, words[i].str);\r
+        }\r
+\r
+\r
         int key = getch();\r
 \r
         /**/ if (key == ' ') {\r
             if (index == 0) {\r
                 if (level > 0) {\r
                     // end list\r
-                    printw(")");\r
+                    words[numWords].str[0] = ')';\r
+                    words[numWords].len = 1;\r
+                    numWords++;\r
                     level--;\r
                 }\r
             }\r
             else {\r
                 // add to list\r
-                printw("%.*s ", index, word);\r
+                // for (int i = 0; i < index; i++) {\r
+                //     words[numWords].str[i] = word[i];\r
+                // }\r
+                // words[numWords].len = index;\r
                 index = 0;\r
+                // numWords++;\r
             }\r
         }\r
         else if (key == '\n') {\r
-            if (index == 0) {\r
-                // add to list\r
-                printw("%.*s ", index, word);\r
-                index = 0;\r
+            // if (index == 0) {\r
+                // // add to list\r
+                // for (int i = 0; i < index; i++) {\r
+                //     words[numWords].str[i] = word[i];\r
+                // }\r
+                // words[numWords].len = index;\r
+                // index = 0;\r
+                // numWords++;\r
                 \r
                 // add list\r
-                printw("\n");\r
-                for (int i = 0; i < level; i++)\r
-                    printw(" ");\r
-                printw("(");\r
+                words[numWords].str[0] = '(';\r
+                words[numWords].len = 1;\r
+                numWords++;\r
                 level++;\r
+            // }\r
+            index = 0;\r
+        }\r
+        else if (key == 8) {\r
+            if (numWords > 0) {\r
+                if (words[numWords-1].len == 1 && words[numWords-1].str[0] == '(') level--;\r
+                if (words[numWords-1].len == 1 && words[numWords-1].str[0] == ')') level++;\r
+                numWords--;\r
             }\r
         }\r
         else {\r
-            word[index++] = (char)key;\r
+            if (index == 0) {\r
+                numWords++;\r
+                words[numWords-1].len = 0;\r
+            }\r
+            words[numWords-1].str[index++] = (char)key;\r
+            words[numWords-1].len++;\r
         }\r
     }\r
 \r