Browse Source

Hinzufügen von Spielbrett

(erstellen und speicherbereinigung) + Test, Anton Lohrey
remotes/origin/Läufer-fertig,-Hendrik-Voß
fdai7492 11 months ago
parent
commit
fd60c506a6
  1. 59
      src/Schachbrett.c
  2. 8
      src/Schachbrett.h
  3. 26
      test/test_Schachbrett.c

59
src/Schachbrett.c

@ -0,0 +1,59 @@
#include <stdio.h>
#include <stdlib.h>
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);
}

8
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

26
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
Loading…
Cancel
Save