From: Patrick Date: Fri, 21 Jul 2023 22:44:40 +0000 (+0200) Subject: list of words type beat X-Git-Url: https://gitweb.ps.run/iftint/commitdiff_plain/d9f59bd177128b0d5f5bef34f86cbc1ec345af70 list of words type beat --- diff --git a/main.c b/main.c index ae6c646..aa65fe5 100644 --- a/main.c +++ b/main.c @@ -12,43 +12,79 @@ int main() { int level = 1; - char words[10][128]; + struct Word { + char str[128]; + int len; + }; + struct Word words[128]; int numWords = 1; - words[0][0] = '('; + words[0].str[0] = '('; + words[0].len = 1; while (true) { + move(0, 0); + clear(); + refresh(); + + for (int i = 0; i < numWords; i++) { + printw("%.*s\n", words[i].len, words[i].str); + } + + int key = getch(); /**/ if (key == ' ') { if (index == 0) { if (level > 0) { // end list - printw(")"); + words[numWords].str[0] = ')'; + words[numWords].len = 1; + numWords++; level--; } } else { // add to list - printw("%.*s ", index, word); + // for (int i = 0; i < index; i++) { + // words[numWords].str[i] = word[i]; + // } + // words[numWords].len = index; index = 0; + // numWords++; } } else if (key == '\n') { - if (index == 0) { - // add to list - printw("%.*s ", index, word); - index = 0; + // if (index == 0) { + // // add to list + // for (int i = 0; i < index; i++) { + // words[numWords].str[i] = word[i]; + // } + // words[numWords].len = index; + // index = 0; + // numWords++; // add list - printw("\n"); - for (int i = 0; i < level; i++) - printw(" "); - printw("("); + words[numWords].str[0] = '('; + words[numWords].len = 1; + numWords++; level++; + // } + index = 0; + } + else if (key == 8) { + if (numWords > 0) { + if (words[numWords-1].len == 1 && words[numWords-1].str[0] == '(') level--; + if (words[numWords-1].len == 1 && words[numWords-1].str[0] == ')') level++; + numWords--; } } else { - word[index++] = (char)key; + if (index == 0) { + numWords++; + words[numWords-1].len = 0; + } + words[numWords-1].str[index++] = (char)key; + words[numWords-1].len++; } }