diff --git a/src/Schachbrett.c b/src/Schachbrett.c new file mode 100644 index 0000000..dad4b50 --- /dev/null +++ b/src/Schachbrett.c @@ -0,0 +1,59 @@ +#include +#include + +char** Schachbrett_erstellen() { + + int R = 8; //Reihen + int Z = 8; //zeilen + + //Dynamisch Platz zuweisen für schachbrett + char** Brett = (char**)malloc(R * sizeof(char*)); + + if (Brett == NULL) { + // Fehler bei speicherzuweißung + return NULL; + } + for (int i = 0; i < R; i++) { + Brett[i] = (char*)malloc(Z * sizeof(char)); + if (Brett[i] == NULL) { + // Speicherfehlerbehbung + for (int j = 0; j < i; j++) { + free(Brett[j]); + } + free(Brett); + return NULL; + } + } + + // Spielbrett befüllen + char Aufbau[8][8] = { + { 'R' , 'N' , 'B' , 'Q' , 'K' , 'B' , 'N' , 'R' }, + { 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' , 'P' }, + { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, + { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, + { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, + { ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' , ' ' }, + { 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' , 'p' }, + { 'r' , 'n' , 'b' , 'q' , 'k' , 'b' , 'n' , 'r' } + }; + + for (int i = 0; i < 8; i++) { + for (int j = 0; j < 8; j++) { + Brett[i][j] = Aufbau[i][j]; + } + } + + return Brett; +} + +void Schachbrettspeicher_freigeben(char** Brett, int Reihen) { + if (Brett == NULL) { + return; + } + + for (int i = 0; i < Reihen; i++) { + free(Brett[i]); + } + + free(Brett); +} diff --git a/src/Schachbrett.h b/src/Schachbrett.h new file mode 100644 index 0000000..c47ee2f --- /dev/null +++ b/src/Schachbrett.h @@ -0,0 +1,8 @@ +#ifndef SCHACHBRETT_H +#define SCHACHBRETT_H + +// Prototypen der Funktionen +char** Schachbrett_erstellen(); +void Schachbrettspeicher_freigeben(char** Brett, int Reihen); + +#endif // SCHACHBRETT_H diff --git a/test/test_Schachbrett.c b/test/test_Schachbrett.c new file mode 100644 index 0000000..3a94210 --- /dev/null +++ b/test/test_Schachbrett.c @@ -0,0 +1,26 @@ +#ifdef TEST +#include "unity.h" +#include "Schachbrett.h" + +void setUp(void) { +} + +void tearDown(void) { +} + +void test_Schachbrett_erstellen(void) { + char** brett = Schachbrett_erstellen(); + + TEST_ASSERT_NOT_NULL(brett); + + // Testen von ein Paar Positionen + TEST_ASSERT_EQUAL('R', brett[0][0]); + TEST_ASSERT_EQUAL('p', brett[6][0]); + TEST_ASSERT_EQUAL(' ', brett[4][4]); + + for (int i = 0; i < 8; i++) { + free(brett[i]); + } + free(brett); +} +#endif // TEST