From 94d15bf2bff0b8d342170a6beef00adecc2a1194 Mon Sep 17 00:00:00 2001 From: MrGeorgen Date: Sat, 7 Nov 2020 11:58:48 +0100 Subject: [PATCH] j2 fertig --- j2-Baulwuerfe/CMakeLists.txt | 2 +- j2-Baulwuerfe/j2 | Bin 0 -> 21920 bytes j2-Baulwuerfe/src/main.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 j2-Baulwuerfe/j2 diff --git a/j2-Baulwuerfe/CMakeLists.txt b/j2-Baulwuerfe/CMakeLists.txt index 53e3424..2f591d3 100644 --- a/j2-Baulwuerfe/CMakeLists.txt +++ b/j2-Baulwuerfe/CMakeLists.txt @@ -1,4 +1,4 @@ file(GLOB J2SOURCES "src/*.c") file(GLOB ACLSOURCES "../lib/acl/src/*.c") -add_executable(j2 ${J1SOURCES} ${ACLSOURCES}) +add_executable(j2 ${J2SOURCES} ${ACLSOURCES}) target_link_libraries(j2 PRIVATE m) diff --git a/j2-Baulwuerfe/j2 b/j2-Baulwuerfe/j2 new file mode 100755 index 0000000000000000000000000000000000000000..8a248fb955c09f8cf7f07805a6b817bfa1b576b0 GIT binary patch literal 21920 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 literal 0 HcmV?d00001 diff --git a/j2-Baulwuerfe/src/main.c b/j2-Baulwuerfe/src/main.c index 9dd7a9e..b7e7c95 100644 --- a/j2-Baulwuerfe/src/main.c +++ b/j2-Baulwuerfe/src/main.c @@ -1,4 +1,13 @@ #include +#include +#include +#include +#include +#include + +enum baulwurfhuegel{baulwurfhuegel = 'X', keinBaulwurfhuegel = ' '}; + +int width, height; void pointerCheck(void *pointer) { if(pointer == NULL) { @@ -7,8 +16,33 @@ void pointerCheck(void *pointer) { } } +bool checkRow(char *row) { + for(uint8_t i = 0; i < 4; ++i) { + if(row[i * (width + 1)] == keinBaulwurfhuegel) return false; + } + return true; +} + int main(int argc, char *argv[]) { if(argc != 2) printf("file argument required"); bool sucess; FILE *fp = fopen(argv[1], "rb"); char *input = acl_ReadTextFile(fp, &sucess); + fclose(fp); + pointerCheck(input); + char *heightText; + char *textRest; + width = strtol(input, &heightText, 10); + ++heightText; // height points does not point to \n anymore + height = strtol(heightText, &textRest, 10); + ++textRest; + printf("height: %d width: %d\n", height, width); + unsigned baulwurfhuegelCounter = 0; + for(char *i = textRest; (uintptr_t)i <= (uintptr_t)textRest + ((height - 4) * (width + 1)); i += width + 1) { + for(char *j = i; (uintptr_t)j < (uintptr_t)i + width - 1; ++j) { + baulwurfhuegelCounter += checkRow(j) && checkRow(j + 2) && j[1] == baulwurfhuegel && j[1 + 3 * (width + 1)]; + } + } + free(input); + printf("Baulwurfhuegel: %u", baulwurfhuegelCounter); +}